Initial import NDC_1C
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import asdict, dataclass
|
||||
from typing import Any
|
||||
|
||||
from router.query_classifier import RouteDecisionFlags
|
||||
from router.route_selector import RouteSelectionResult
|
||||
from router.store_sufficiency import StoreSufficiencyResult
|
||||
|
||||
|
||||
@dataclass
|
||||
class RouteDecisionLog:
|
||||
question_id: str
|
||||
question_text: str
|
||||
parsed_class: str
|
||||
decision_flags: dict[str, Any]
|
||||
sufficiency_snapshot: dict[str, Any]
|
||||
candidate_routes: list[str]
|
||||
rejected_routes: dict[str, str]
|
||||
chosen_route: str
|
||||
execution_mode: str
|
||||
batch_job_id: str | None
|
||||
|
||||
def to_dict(self) -> dict[str, Any]:
|
||||
return asdict(self)
|
||||
|
||||
|
||||
def build_route_decision_log(
|
||||
*,
|
||||
question_id: str,
|
||||
question_text: str,
|
||||
parsed_class: str,
|
||||
flags: RouteDecisionFlags,
|
||||
suff: StoreSufficiencyResult,
|
||||
selection: RouteSelectionResult,
|
||||
execution_mode: str,
|
||||
batch_job_id: str | None,
|
||||
) -> RouteDecisionLog:
|
||||
return RouteDecisionLog(
|
||||
question_id=question_id,
|
||||
question_text=question_text,
|
||||
parsed_class=parsed_class,
|
||||
decision_flags=flags.to_dict(),
|
||||
sufficiency_snapshot=suff.to_dict(),
|
||||
candidate_routes=selection.candidate_routes,
|
||||
rejected_routes=selection.rejected_routes,
|
||||
chosen_route=selection.chosen_route,
|
||||
execution_mode=execution_mode,
|
||||
batch_job_id=batch_job_id,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user