Fix SSE route dependency and align architecture docs
This commit is contained in:
79
backend/app/api/models/agent.py
Normal file
79
backend/app/api/models/agent.py
Normal file
@@ -0,0 +1,79 @@
|
||||
"""Define API models for agent endpoints."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Dict, List, Optional
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
# Group agent transport schemas together so route modules stay focused on HTTP flow.
|
||||
|
||||
|
||||
class AskRequest(BaseModel):
|
||||
"""Define the Ask Request API model."""
|
||||
|
||||
query: str = Field(..., min_length=1, max_length=2000)
|
||||
filters: Optional[str] = None
|
||||
provider: Optional[str] = None
|
||||
model: Optional[str] = None
|
||||
top_k: Optional[int] = Field(default=None, ge=1, le=20)
|
||||
prompt_template: Optional[str] = None
|
||||
|
||||
|
||||
class AskResponse(BaseModel):
|
||||
"""Define the Ask Response API model."""
|
||||
|
||||
answer: str
|
||||
sources: List[Dict] = Field(default_factory=list)
|
||||
model: str = ""
|
||||
latency_ms: int = 0
|
||||
retrieved_count: int = 0
|
||||
context_tokens: int = 0
|
||||
truncated: bool = False
|
||||
error: Optional[str] = None
|
||||
|
||||
|
||||
class ChatRequest(BaseModel):
|
||||
"""Define the Chat Request API model."""
|
||||
|
||||
query: str = Field(..., min_length=1, max_length=2000)
|
||||
session_id: Optional[str] = None
|
||||
filters: Optional[str] = None
|
||||
provider: Optional[str] = None
|
||||
model: Optional[str] = None
|
||||
top_k: Optional[int] = Field(default=None, ge=1, le=20)
|
||||
|
||||
|
||||
class ChatResponse(BaseModel):
|
||||
"""Define the Chat Response API model."""
|
||||
|
||||
session_id: str
|
||||
answer: str
|
||||
sources: List[Dict] = Field(default_factory=list)
|
||||
model: str = ""
|
||||
latency_ms: int = 0
|
||||
message_count: int = 0
|
||||
|
||||
|
||||
class SessionInfo(BaseModel):
|
||||
"""Define the Session Info API model."""
|
||||
|
||||
session_id: str
|
||||
message_count: int
|
||||
created_at: int
|
||||
updated_at: int
|
||||
|
||||
|
||||
class FeedbackRequest(BaseModel):
|
||||
"""Define the Feedback Request API model."""
|
||||
|
||||
session_id: str
|
||||
message_index: int
|
||||
rating: int = Field(..., ge=1, le=5)
|
||||
comment: Optional[str] = None
|
||||
|
||||
|
||||
class TemplateListResponse(BaseModel):
|
||||
"""Define the Template List Response API model."""
|
||||
|
||||
templates: Dict[str, str]
|
||||
Reference in New Issue
Block a user