feat(rag): add temporary chat attachments

This commit is contained in:
wren
2026-05-25 15:37:37 +08:00
parent 0f385c9839
commit 75c077da77
16 changed files with 2257 additions and 16 deletions
@@ -5,6 +5,8 @@ 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):
@@ -0,0 +1,19 @@
from pydantic import BaseModel, Field
class RagChatAttachmentVO(BaseModel):
attachmentId: str = Field(..., description="临时附件ID")
conversationId: str = Field(..., description="会话ID")
fileName: str = Field(..., description="原始文件名")
contentType: str = Field("", description="文件 MIME 类型")
fileSize: int = Field(0, description="文件大小")
indexingStatus: str = Field("waiting", description="索引状态")
indexingError: str | None = Field(None, description="索引错误")
chunkCount: int = Field(0, description="分段数量")
collectionName: str = Field("", description="临时向量集合名")
expiresAt: int = Field(0, description="过期时间戳")
createdAt: int = Field(0, description="创建时间戳")
class RagChatAttachmentDeleteVO(BaseModel):
result: str = Field("success")
@@ -36,6 +36,7 @@ class RagMessageItemVO(BaseModel):
conversationId: str = Field(...)
query: str = Field(...)
answer: str = Field(...)
messageFiles: list[dict] = Field(default_factory=list)
feedback: dict | None = Field(None)
retrieverResources: list[dict] | None = Field(None)
suggestedQuestions: list[str] = Field(default_factory=list)