From 84df3a766b38d2674b335c42dcb803d63bf15f69 Mon Sep 17 00:00:00 2001 From: A Vertex SDK engineer Date: Tue, 3 Nov 2026 13:29:15 -0800 Subject: [PATCH] feat: GenAI SDK client(evals) - Support StepBasedLLMMetric in create_evaluation_metric. PiperOrigin-RevId: 1013252461 --- agentplatform/_genai/_transformers.py | 6 ++++++ tests/unit/agentplatform/genai/test_evals.py | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/agentplatform/_genai/_transformers.py b/agentplatform/_genai/_transformers.py index 1f26582a38..201144c805 100644 --- a/agentplatform/_genai/_transformers.py +++ b/agentplatform/_genai/_transformers.py @@ -263,6 +263,12 @@ def t_metric_for_registry( "evaluation_function": metric.custom_function } + # Step-based LLM metric + elif getv(metric, ["steps"]): + metric_payload_item["step_based_llm_metric_spec"] = _step_based_llm_metric_spec( + metric + ) + # LLM-based metric elif (hasattr(metric, "prompt_template") and metric.prompt_template) or ( hasattr(metric, "rubric_group_name") and metric.rubric_group_name diff --git a/tests/unit/agentplatform/genai/test_evals.py b/tests/unit/agentplatform/genai/test_evals.py index 220031eae2..d2e76cf756 100644 --- a/tests/unit/agentplatform/genai/test_evals.py +++ b/tests/unit/agentplatform/genai/test_evals.py @@ -12350,6 +12350,17 @@ def test_t_metrics_code_preprocessor(self): assert spec["preprocessor"] == {"code_config": {"code": self._PREPROCESS_CODE}} assert "autorater_config" not in spec["steps"][0] + def test_t_metric_for_registry_builds_step_based_spec(self): + metric = self._metric() + + payload = _transformers.t_metric_for_registry(metric) + + assert payload == { + "step_based_llm_metric_spec": _transformers.t_metrics([metric])[0][ + "step_based_llm_metric_spec" + ] + } + @pytest.mark.parametrize( "steps,error", [