test2 / app /api /schemas.py
joedown11's picture
feat: implement full rating system - empty stars, hover preview, per-thread storage, admin badge
a27005b
Raw
History Blame Contribute Delete
1.29 kB
from typing import List, Dict, Any
from pydantic import BaseModel, Field
class ChatRequest(BaseModel):
message: str = Field(..., min_length=1)
history: List[Dict[str, str]] = Field(default_factory=list)
session_id: str | None = Field(default=None, description="Unique session identifier for chat persistence")
class ChatResponse(BaseModel):
reply: str
retrieved_chunks: List[Dict[str, Any]] = Field(default_factory=list)
class HealthResponse(BaseModel):
status: str
docs_loaded: bool
index_ready: bool
chunk_count: int
index_path: str
class SessionUpdateNameRequest(BaseModel):
session_id: str
user_name: str
class SessionInitRequest(BaseModel):
session_id: str
user_name: str | None = Field(default=None, description="User name to associate with the session at creation time")
class RateRequest(BaseModel):
session_id: str
rating: int = Field(..., ge=1, le=5)
chat_id: int | None = Field(default=None, description="Chat thread to rate; resolved server-side if omitted")
class PollRequest(BaseModel):
session_id: str
last_id: int = Field(default=0)
class ResetRequest(BaseModel):
session_id: str
class DeleteChatRequest(BaseModel):
session_id: str