62 lines
1.4 KiB
Python
62 lines
1.4 KiB
Python
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from datetime import datetime
|
||
|
|
from typing import Any
|
||
|
|
|
||
|
|
from pydantic import BaseModel, ConfigDict, Field
|
||
|
|
|
||
|
|
|
||
|
|
class AgentToolCallRead(BaseModel):
|
||
|
|
model_config = ConfigDict(from_attributes=True)
|
||
|
|
|
||
|
|
id: str
|
||
|
|
run_id: str
|
||
|
|
tool_type: str
|
||
|
|
tool_name: str
|
||
|
|
request_json: dict[str, Any]
|
||
|
|
response_json: dict[str, Any]
|
||
|
|
status: str
|
||
|
|
duration_ms: int
|
||
|
|
error_message: str | None
|
||
|
|
created_at: datetime
|
||
|
|
|
||
|
|
|
||
|
|
class SemanticParseRead(BaseModel):
|
||
|
|
model_config = ConfigDict(from_attributes=True)
|
||
|
|
|
||
|
|
id: str
|
||
|
|
run_id: str
|
||
|
|
user_id: str | None
|
||
|
|
raw_query: str
|
||
|
|
scenario: str
|
||
|
|
intent: str
|
||
|
|
entities_json: list[Any]
|
||
|
|
time_range_json: dict[str, Any]
|
||
|
|
metrics_json: list[Any]
|
||
|
|
constraints_json: list[Any]
|
||
|
|
risk_flags_json: list[Any]
|
||
|
|
permission_json: dict[str, Any]
|
||
|
|
confidence: float
|
||
|
|
created_at: datetime
|
||
|
|
|
||
|
|
|
||
|
|
class AgentRunRead(BaseModel):
|
||
|
|
model_config = ConfigDict(from_attributes=True)
|
||
|
|
|
||
|
|
id: str
|
||
|
|
run_id: str
|
||
|
|
agent: str
|
||
|
|
source: str
|
||
|
|
user_id: str | None
|
||
|
|
task_id: str | None
|
||
|
|
ontology_json: dict[str, Any]
|
||
|
|
route_json: dict[str, Any]
|
||
|
|
permission_level: str
|
||
|
|
status: str
|
||
|
|
result_summary: str | None
|
||
|
|
error_message: str | None
|
||
|
|
started_at: datetime
|
||
|
|
finished_at: datetime | None
|
||
|
|
tool_calls: list[AgentToolCallRead] = Field(default_factory=list)
|
||
|
|
semantic_parse: SemanticParseRead | None = None
|