| from pydantic import BaseModel, Field | |
| class QueryRequest(BaseModel): | |
| query: str | |
| client: str | |
| class MetricResult(BaseModel): | |
| passed: bool | |
| score: float = Field(ge=0.0, le=1.0) | |
| detail: str | |
| class EvaluationResult(BaseModel): | |
| overall_pass: bool | |
| metrics: dict[str, MetricResult] | |
| class Source(BaseModel): | |
| id: str | |
| title: str | |
| score: float = Field(ge=0.0, le=1.0) | |
| class QueryResponse(BaseModel): | |
| query: str | |
| client: str | |
| client_display: str | |
| answer: str | |
| sources: list[Source] | |
| evaluation: EvaluationResult | |
| class ClientInfo(BaseModel): | |
| id: str | |
| display: str | |
| class ConfigResponse(BaseModel): | |
| domains: dict[str, list[ClientInfo]] | |