2026-04-03 14:44:46 +08:00
|
|
|
"""ORM → API schema 映射(供 REST / SSE 共用)。"""
|
|
|
|
|
|
|
|
|
|
from __future__ import annotations
|
|
|
|
|
|
|
|
|
|
from app.features.evaluation.schemas import CaseOut, EvalRunOut, RunTurnOut
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def case_out(row) -> CaseOut:
|
|
|
|
|
return CaseOut.model_validate(row)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def run_out(row, turns: list) -> EvalRunOut:
|
|
|
|
|
return EvalRunOut(
|
|
|
|
|
id=row.id,
|
|
|
|
|
experiment_id=row.experiment_id,
|
|
|
|
|
case_id=row.case_id,
|
|
|
|
|
side=row.side,
|
|
|
|
|
status=row.status,
|
|
|
|
|
error_message=row.error_message,
|
|
|
|
|
memoir_markdown=row.memoir_markdown,
|
|
|
|
|
conversation_score_total=row.conversation_score_total,
|
|
|
|
|
memoir_score_total=row.memoir_score_total,
|
|
|
|
|
composite_score=row.composite_score,
|
2026-04-06 13:45:04 +08:00
|
|
|
judge_bundle_json=row.judge_bundle_json,
|
2026-04-03 14:44:46 +08:00
|
|
|
turns=[RunTurnOut.model_validate(t) for t in turns],
|
|
|
|
|
)
|