Skip to content

Commit 52cd3cb

Browse files
jsonbaileyclaude
andcommitted
refactor: update Judge to use Runner protocol and RunnerResult
- Judge now accepts Runner instead of ModelRunner - evaluate() calls runner.run(output_type=...) instead of invoke_structured_model - response.parsed replaces StructuredResponse.data; None guard added - evaluate_messages() accepts RunnerResult instead of ModelResponse - Tests updated to use RunnerResult and mock_runner.run Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 2aa1491 commit 52cd3cb

2 files changed

Lines changed: 3 additions & 3 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ def _create_judge_instance(
339339
if not provider:
340340
return None
341341

342-
return Judge(judge_config, provider, sample_rate=sample_rate) # type: ignore[arg-type]
342+
return Judge(judge_config, provider, sample_rate=sample_rate)
343343
except Exception as error:
344344
return None
345345

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ async def test_evaluate_uses_instance_sample_rate_when_arg_omitted(
333333

334334
assert isinstance(result, JudgeResult)
335335
assert result.sampled is False
336-
mock_runner.invoke_structured_model.assert_not_called()
336+
mock_runner.run.assert_not_called()
337337

338338
@pytest.mark.asyncio
339339
async def test_evaluate_arg_overrides_instance_sample_rate(
@@ -346,7 +346,7 @@ async def test_evaluate_arg_overrides_instance_sample_rate(
346346

347347
assert isinstance(result, JudgeResult)
348348
assert result.sampled is False
349-
mock_runner.invoke_structured_model.assert_not_called()
349+
mock_runner.run.assert_not_called()
350350

351351

352352
class TestJudgeEvaluateMessages:

0 commit comments

Comments
 (0)