Skip to content

Commit 89d0ad7

Browse files
committed
refactor: type RunnerFactory.create_model/agent returns as Optional[Runner]
The factory's downstream consumers (ManagedModel, ManagedAgent) now take Runner; aligning the factory's return types lets us drop the type: ignore comments at the ManagedModel/ManagedAgent call sites. Provider package PRs will update their concrete implementations to match. Judge still takes ModelRunner, so its call site picks up the type: ignore[arg-type] in its place — that's resolved later in the cleanup PR when Judge migrates to Runner.
1 parent d75467f commit 89d0ad7

2 files changed

Lines changed: 8 additions & 9 deletions

File tree

packages/sdk/server-ai/src/ldai/client.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ def create_judge(
329329
if not provider:
330330
return None
331331

332-
return Judge(judge_config, provider)
332+
return Judge(judge_config, provider) # type: ignore[arg-type]
333333
except Exception as error:
334334
return None
335335

@@ -443,7 +443,7 @@ async def create_model(
443443
if not runner:
444444
return None
445445

446-
return ManagedModel(config, runner) # type: ignore[arg-type]
446+
return ManagedModel(config, runner)
447447

448448
async def create_chat(
449449
self,
@@ -517,7 +517,7 @@ async def create_agent(
517517
if not runner:
518518
return None
519519

520-
return ManagedAgent(config, runner) # type: ignore[arg-type]
520+
return ManagedAgent(config, runner)
521521

522522
def agent_config(
523523
self,

packages/sdk/server-ai/src/ldai/providers/runner_factory.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@
44
from ldai import log
55
from ldai.models import AIConfigKind
66
from ldai.providers.agent_graph_runner import AgentGraphRunner
7-
from ldai.providers.agent_runner import AgentRunner
87
from ldai.providers.ai_provider import AIProvider
9-
from ldai.providers.model_runner import ModelRunner
8+
from ldai.providers.runner import Runner
109

1110
T = TypeVar('T')
1211

@@ -118,13 +117,13 @@ def _get_providers_to_try(
118117
def create_model(
119118
config: AIConfigKind,
120119
default_ai_provider: Optional[str] = None,
121-
) -> Optional[ModelRunner]:
120+
) -> Optional[Runner]:
122121
"""
123122
Create a model executor for the given AI completion config.
124123
125124
:param config: LaunchDarkly AI config (completion or judge)
126125
:param default_ai_provider: Optional provider override ('openai', 'langchain', …)
127-
:return: Configured ModelRunner ready to invoke the model, or None
126+
:return: Configured Runner ready to invoke the model, or None
128127
"""
129128
provider_name = config.provider.name.lower() if config.provider else None
130129
providers = RunnerFactory._get_providers_to_try(default_ai_provider, provider_name)
@@ -135,7 +134,7 @@ def create_agent(
135134
config: Any,
136135
tools: Any,
137136
default_ai_provider: Optional[str] = None,
138-
) -> Optional[AgentRunner]:
137+
) -> Optional[Runner]:
139138
"""
140139
CAUTION:
141140
This feature is experimental and should NOT be considered ready for production use.
@@ -147,7 +146,7 @@ def create_agent(
147146
:param config: LaunchDarkly AI agent config
148147
:param tools: Tool registry mapping tool names to callables
149148
:param default_ai_provider: Optional provider override
150-
:return: AgentRunner instance, or None
149+
:return: Runner instance, or None
151150
"""
152151
provider_name = config.provider.name.lower() if config.provider else None
153152
providers = RunnerFactory._get_providers_to_try(default_ai_provider, provider_name)

0 commit comments

Comments
 (0)