from pydantic import BaseModel, Field class RagChatSendMessageDTO(BaseModel): query: str = Field(..., min_length=1, description="用户问题") conversationId: str | None = Field(None, description="会话ID") appId: int | None = Field(None, description="聊天应用ID") attachmentId: str | None = Field(None, description="临时聊天附件ID") attachmentIds: list[str] = Field(default_factory=list, description="临时聊天附件ID列表") class RagConversationRenameDTO(BaseModel): name: str = Field(..., min_length=1, max_length=500, description="新会话名称") class RagMessageFeedbackDTO(BaseModel): rating: str | None = Field(None, description="反馈: like/dislike/None") class RagStopMessageDTO(BaseModel): taskId: str | None = Field(None, description="流式任务ID")