""" 对话相关的Pydantic模型 """ from datetime import datetime from typing import Optional, Dict, Any from pydantic import BaseModel, Field class ChatMessage(BaseModel): """聊天消息""" role: str = Field(..., description="角色:user或assistant") content: str = Field(..., description="消息内容") metadata: Optional[Dict[str, Any]] = Field(None, description="元数据") class ChatRequest(BaseModel): """聊天请求""" message: str = Field(..., description="用户消息", min_length=1) session_id: Optional[str] = Field(None, description="会话ID") user_id: Optional[str] = Field(None, description="用户ID") class ChatResponse(BaseModel): """聊天响应""" message: str = Field(..., description="助手回复") session_id: str = Field(..., description="会话ID") metadata: Optional[Dict[str, Any]] = Field(None, description="元数据") class ConversationHistory(BaseModel): """对话历史""" session_id: str messages: list[ChatMessage] created_at: datetime class Config: from_attributes = True