report.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334
  1. """
  2. 报告相关数据模型
  3. """
  4. from pydantic import BaseModel, Field
  5. from typing import Optional
  6. class ReportCompleteFlowRequest(BaseModel):
  7. """完整报告生成流程请求"""
  8. user_question: str = Field(..., description="用户问题")
  9. user_id: Optional[int] = Field(default=None, description="用户ID")
  10. window_size: int = Field(default=5, description="窗口大小")
  11. n_results: int = Field(default=5, description="结果数量")
  12. ai_conversation_id: Optional[int] = Field(default=None, description="AI对话ID")
  13. is_network_search_enabled: bool = Field(default=False, description="是否启用联网搜索")
  14. enable_online_model: bool = Field(default=False, description="是否启用在线模型")
  15. class UpdateAIMessageRequest(BaseModel):
  16. """更新AI消息请求"""
  17. ai_message_id: int = Field(..., description="AI消息ID")
  18. content: str = Field(..., description="消息内容")
  19. class StopSSERequest(BaseModel):
  20. """停止SSE请求"""
  21. ai_conversation_id: int = Field(..., description="AI对话ID")
  22. class StreamChatRequest(BaseModel):
  23. """流式聊天请求(用于降级)"""
  24. message: str = Field(..., description="用户消息")
  25. ai_conversation_id: Optional[int] = Field(default=None, description="AI对话ID")
  26. business_type: int = Field(default=0, description="业务类型")