feat: enrich ai run audit traces

This commit is contained in:
2026-06-23 00:09:48 +08:00
parent 27894cc713
commit c75f0b646a
13 changed files with 287 additions and 10 deletions
@@ -193,6 +193,10 @@ class AiRunAudit(BaseModel):
operation: str
provider_config_id: str | None = None
prompt_template_id: str | None = None
provider: str | None = None
model: str | None = None
provider_status: str | None = None
provider_error: str | None = None
question: str | None = None
answer: str | None = None
citations_count: int = 0
@@ -200,6 +204,10 @@ class AiRunAudit(BaseModel):
retrieval_strategy: str | None = None
retrieved_chunk_ids: list[str] = Field(default_factory=list)
retrieved_sources: list[RetrievalSource] = Field(default_factory=list)
prompt_tokens: int = 0
completion_tokens: int = 0
total_tokens: int = 0
estimated_cost: float = 0.0
latency_ms: int = 0
status: str
created_at: str
@@ -349,6 +349,10 @@ def test_ai_platform_client_covers_admin_data_endpoints() -> None:
"operation": "legal_qa",
"provider_config_id": "provider-1",
"prompt_template_id": "prompt-1",
"provider": "deepseek",
"model": "deepseek-chat",
"provider_status": "succeeded",
"provider_error": None,
"question": "How should lease deposit refund be handled?",
"answer": "The contract should clearly state deposit refund conditions.",
"citations_count": 1,
@@ -372,6 +376,10 @@ def test_ai_platform_client_covers_admin_data_endpoints() -> None:
"matched_terms": ["lease"],
}
],
"prompt_tokens": 12,
"completion_tokens": 8,
"total_tokens": 20,
"estimated_cost": 0.00028,
"latency_ms": 12,
"status": "succeeded",
"created_at": "2026-06-22T00:00:00Z",
@@ -431,6 +439,14 @@ def test_ai_platform_client_covers_admin_data_endpoints() -> None:
assert explain.results[0].rank == 1
audit = client.list_ai_run_audits(limit=5)[0]
assert audit.operation == "legal_qa"
assert audit.provider == "deepseek"
assert audit.model == "deepseek-chat"
assert audit.provider_status == "succeeded"
assert audit.provider_error is None
assert audit.prompt_tokens == 12
assert audit.completion_tokens == 8
assert audit.total_tokens == 20
assert audit.estimated_cost == 0.00028
assert audit.retrieved_chunk_ids == ["chunk-1"]
assert audit.retrieved_sources[0].reference == "Article 703"
assert "/api/v1/audit/ai-runs" in seen_paths