diff --git a/packages/gooddata-eval/src/gooddata_eval/core/agentic/conversation.py b/packages/gooddata-eval/src/gooddata_eval/core/agentic/conversation.py index a87338df3..f409593a9 100644 --- a/packages/gooddata-eval/src/gooddata_eval/core/agentic/conversation.py +++ b/packages/gooddata-eval/src/gooddata_eval/core/agentic/conversation.py @@ -70,6 +70,17 @@ class TurnResult(BaseModel): def skill_success(self) -> bool: return self.skill_routing and self.output_present and self.no_error + def detail(self) -> dict: + """The subset of this result reported in detail["turns"] for one conversation turn.""" + return { + "turn_id": self.turn_id, + "expected_skill": self.expected_skill, + "skill_routing": self.skill_routing, + "output_present": self.output_present, + "output_correct": self.output_correct, + "activated_skills": self.activated_skills, + } + def _resolve_refs( expected_output: dict | None, @@ -430,17 +441,7 @@ def _conversation_detail(result: ConversationResult) -> dict: return { "full_skill_coverage": result.full_skill_coverage, "total_clarification_turns": result.total_clarification_turns, - "turns": [ - { - "turn_id": tr.turn_id, - "expected_skill": tr.expected_skill, - "skill_routing": tr.skill_routing, - "output_present": tr.output_present, - "output_correct": tr.output_correct, - "activated_skills": tr.activated_skills, - } - for tr in result.turn_results - ], + "turns": [tr.detail() for tr in result.turn_results], "latency_breakdown": build_latency_breakdown(result.tool_call_events, result.reasoning_step_events), }