Spaces:
Sleeping
Sleeping
| """Pydantic models for API request/response validation.""" | |
| from pydantic import BaseModel | |
| from datetime import datetime | |
| class TaskIDRequest(BaseModel): | |
| """Request model for task-based endpoints.""" | |
| task_id: int | |
| class SuggestGroupsResponse(BaseModel): | |
| """Response model for group suggestion endpoint.""" | |
| suggested_groups: list[str] | |
| class ChatMessage(BaseModel): | |
| """Model for individual chat messages.""" | |
| role: str # 'user', 'ai', 'system' | |
| content: str | |
| created_at: datetime | None = None | |
| class ChatRequest(BaseModel): | |
| """Request model for chat endpoint.""" | |
| message: str | |
| task_id: int | |
| project_title: str | |
| current_stage: str | |
| output_mode: str = "standard" | |
| prompt_group_config: dict | None = None | |
| custom_system_prompt: str | None = None | |
| conversation_id: str | None = None # Optional conversation ID for persistence | |
| current_group_name: str | None = None | |
| selected_standards: list[dict] | None = None | |
| current_alignment_work: str | None = None | |
| message_history: list[ChatMessage] | None = None # Sliding window of recent messages | |
| class ChatResponse(BaseModel): | |
| """Response model for chat endpoint.""" | |
| response: str | |
| conversation_id: str | None = None # Return conversation ID for tracking | |
| class ConversationSummary(BaseModel): | |
| """Summary model for conversation list.""" | |
| id: str | |
| title: str | None | |
| project_id: str | None | |
| created_at: datetime | |
| updated_at: datetime | |
| class ConversationListResponse(BaseModel): | |
| """Response model for listing conversations.""" | |
| conversations: list[ConversationSummary] | |
| class ConversationMessagesResponse(BaseModel): | |
| """Response model for fetching conversation messages.""" | |
| conversation_id: str | |
| messages: list[ChatMessage] | |
| class GenerateRubricRequest(BaseModel): | |
| """Request model for rubric generation endpoint.""" | |
| task_id: int | |
| prompt_groups: dict | |
| class GenerateRubricResponse(BaseModel): | |
| """Response model for rubric generation endpoint.""" | |
| rubric: dict | |
| message: str | |