Raise HTTPException when running evals in fast_api if google-adk[eval] is not installed.

PiperOrigin-RevId: 764798561
This commit is contained in:
Google Team Member 2025-05-29 10:56:23 -07:00 committed by Copybara-Service
parent 7e637d3fa0
commit 1de5c340d8

View File

@ -501,34 +501,38 @@ def get_fast_api_app(
root_agent = agent_loader.load_agent(app_name) root_agent = agent_loader.load_agent(app_name)
run_eval_results = [] run_eval_results = []
eval_case_results = [] eval_case_results = []
async for eval_case_result in run_evals( try:
eval_set_to_evals, async for eval_case_result in run_evals(
root_agent, eval_set_to_evals,
getattr(root_agent, "reset_data", None), root_agent,
req.eval_metrics, getattr(root_agent, "reset_data", None),
session_service=session_service, req.eval_metrics,
artifact_service=artifact_service, session_service=session_service,
): artifact_service=artifact_service,
run_eval_results.append( ):
RunEvalResult( run_eval_results.append(
app_name=app_name, RunEvalResult(
eval_set_file=eval_case_result.eval_set_file, app_name=app_name,
eval_set_id=eval_set_id, eval_set_file=eval_case_result.eval_set_file,
eval_id=eval_case_result.eval_id, eval_set_id=eval_set_id,
final_eval_status=eval_case_result.final_eval_status, eval_id=eval_case_result.eval_id,
eval_metric_results=eval_case_result.eval_metric_results, final_eval_status=eval_case_result.final_eval_status,
overall_eval_metric_results=eval_case_result.overall_eval_metric_results, eval_metric_results=eval_case_result.eval_metric_results,
eval_metric_result_per_invocation=eval_case_result.eval_metric_result_per_invocation, overall_eval_metric_results=eval_case_result.overall_eval_metric_results,
user_id=eval_case_result.user_id, eval_metric_result_per_invocation=eval_case_result.eval_metric_result_per_invocation,
session_id=eval_case_result.session_id, user_id=eval_case_result.user_id,
) session_id=eval_case_result.session_id,
) )
eval_case_result.session_details = await session_service.get_session( )
app_name=app_name, eval_case_result.session_details = await session_service.get_session(
user_id=eval_case_result.user_id, app_name=app_name,
session_id=eval_case_result.session_id, user_id=eval_case_result.user_id,
) session_id=eval_case_result.session_id,
eval_case_results.append(eval_case_result) )
eval_case_results.append(eval_case_result)
except ModuleNotFoundError as e:
logger.exception("%s", e)
raise HTTPException(status_code=400, detail=str(e)) from e
eval_set_results_manager.save_eval_set_result( eval_set_results_manager.save_eval_set_result(
app_name, eval_set_id, eval_case_results app_name, eval_set_id, eval_case_results