From 5b1a0aaeef86a55b8b14579719300380c10ec412 Mon Sep 17 00:00:00 2001 From: A Vertex SDK engineer Date: Thu, 30 Jul 2026 15:10:48 -0700 Subject: [PATCH] feat: GenAI Client(evals) - Support show() for EvaluationDataset built from eval_cases PiperOrigin-RevId: 956758649 --- agentplatform/_genai/_evals_common.py | 10 ++++++++++ agentplatform/_genai/_evals_visualization.py | 18 +++++++++++------- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/agentplatform/_genai/_evals_common.py b/agentplatform/_genai/_evals_common.py index 8020658bd0..c6eb338c04 100644 --- a/agentplatform/_genai/_evals_common.py +++ b/agentplatform/_genai/_evals_common.py @@ -357,6 +357,16 @@ def _eval_cases_to_dataframe( case.user_scenario.conversation_plan ) + if case.interactions_data_source: + row["interaction"] = getattr( + case.interactions_data_source, "interaction", None + ) + gemini_cfg = getattr( + case.interactions_data_source, "gemini_agent_config", None + ) + if gemini_cfg: + row["gemini_agent"] = getattr(gemini_cfg, "gemini_agent", None) + rows.append(row) return pd.DataFrame(rows) diff --git a/agentplatform/_genai/_evals_visualization.py b/agentplatform/_genai/_evals_visualization.py index dc0ab0e7a1..b6d335e7c5 100644 --- a/agentplatform/_genai/_evals_visualization.py +++ b/agentplatform/_genai/_evals_visualization.py @@ -25,6 +25,7 @@ import pandas as pd from pydantic import errors +from . import _evals_common from . import types @@ -1552,15 +1553,18 @@ def display_evaluation_dataset(eval_dataset_obj: types.EvaluationDataset) -> Non else: from IPython import display - if ( - eval_dataset_obj.eval_dataset_df is None - or eval_dataset_obj.eval_dataset_df.empty - ): - logger.warning("No inference data to display.") - return + df = eval_dataset_obj.eval_dataset_df + + # Fall back to eval_cases when eval_dataset_df is not populated (e.g. + # when the dataset was constructed manually with eval_cases). + if df is None or df.empty: + if eval_dataset_obj.eval_cases: + df = _evals_common._eval_cases_to_dataframe(eval_dataset_obj.eval_cases) + if df is None or df.empty: + logger.warning("No inference data to display.") + return processed_rows = [] - df = eval_dataset_obj.eval_dataset_df for _, row in df.iterrows(): processed_row = {}