Skip to content

Commit d75467f

Browse files
committed
refactor: remove deprecated ManagedModel.invoke()
Drop the deprecated invoke() method from the managed layer along with its dedicated test class and the warnings/LDAIMetrics/ModelResponse imports that were only needed by it. Type definitions in providers/ remain so downstream provider packages keep building.
1 parent ff871bf commit d75467f

2 files changed

Lines changed: 1 addition & 50 deletions

File tree

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

Lines changed: 1 addition & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
import asyncio
2-
import warnings
32
from typing import List
43

54
from ldai import log
65
from ldai.models import AICompletionConfig, LDMessage
76
from ldai.providers.runner import Runner
8-
from ldai.providers.types import JudgeResult, LDAIMetrics, ManagedResult, ModelResponse
7+
from ldai.providers.types import JudgeResult, ManagedResult
98
from ldai.tracker import LDAIConfigTracker
109

1110

@@ -68,32 +67,6 @@ async def run(self, prompt: str) -> ManagedResult:
6867
evaluations=evaluations_task,
6968
)
7069

71-
async def invoke(self, prompt: str) -> ModelResponse:
72-
"""
73-
Invoke the model with a prompt string.
74-
75-
.. deprecated::
76-
Use :meth:`run` instead. This method will be removed in a future
77-
release once the migration to :class:`ManagedResult` is complete.
78-
79-
:param prompt: The user prompt to send to the model
80-
:return: ModelResponse containing the model's response and metrics
81-
"""
82-
warnings.warn(
83-
"ManagedModel.invoke() is deprecated. Use run() instead.",
84-
DeprecationWarning,
85-
stacklevel=2,
86-
)
87-
result = await self.run(prompt)
88-
return ModelResponse(
89-
message=LDMessage(role='assistant', content=result.content),
90-
metrics=LDAIMetrics(
91-
success=bool(result.metrics.success),
92-
usage=result.metrics.usage,
93-
),
94-
evaluations=result.evaluations,
95-
)
96-
9770
def _track_judge_results(
9871
self,
9972
tracker: LDAIConfigTracker,

packages/sdk/server-ai/tests/test_managed_model.py

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -222,27 +222,5 @@ async def test_noop_evaluator_returns_empty_list(self):
222222
assert results == []
223223

224224

225-
class TestManagedModelInvokeDeprecated:
226-
"""The deprecated invoke() method continues to work and emits a DeprecationWarning."""
227-
228-
@pytest.mark.asyncio
229-
async def test_invoke_emits_deprecation_warning(self):
230-
"""invoke() should emit a DeprecationWarning."""
231-
evaluator = Evaluator.noop()
232-
mock_runner = MagicMock()
233-
mock_runner.run = AsyncMock(return_value=_make_runner_result())
234-
235-
config, _mock_tracker = _make_config_with_tracker(evaluator)
236-
model = ManagedModel(config, mock_runner)
237-
238-
with pytest.warns(DeprecationWarning, match=r"ManagedModel\.invoke\(\) is deprecated"):
239-
response = await model.invoke('Hello')
240-
241-
assert response is not None
242-
# invoke() still wires the evaluations chain on the response.
243-
if response.evaluations is not None:
244-
await response.evaluations
245-
246-
247225
async def _empty_eval() -> List[JudgeResult]:
248226
return []

0 commit comments

Comments
 (0)