From ebe298b71d2de722c987e339b5e5c75636f2021f Mon Sep 17 00:00:00 2001 From: Eternity <1533512157@qq.com> Date: Wed, 8 Apr 2026 10:10:16 +0800 Subject: [PATCH] fix(app_chat_service): modify file handling in message construction --- api/app/schemas/conversation_schema.py | 2 +- api/app/services/app_chat_service.py | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/api/app/schemas/conversation_schema.py b/api/app/schemas/conversation_schema.py index b2f565ef..fd1be5d9 100644 --- a/api/app/schemas/conversation_schema.py +++ b/api/app/schemas/conversation_schema.py @@ -32,7 +32,7 @@ class ChatRequest(BaseModel): web_search: bool = Field(default=False, description="是否启用网络搜索") memory: bool = Field(default=True, description="是否启用记忆功能") thinking: bool = Field(default=False, description="是否启用深度思考(需Agent配置支持)") - files: Optional[List[FileInput]] = Field(default=None, description="附件列表(支持多文件)") + files: List[FileInput] = Field(default_factory=list, description="附件列表(支持多文件)") # ---------- Output Schemas ---------- diff --git a/api/app/services/app_chat_service.py b/api/app/services/app_chat_service.py index 53ac577a..61a906d2 100644 --- a/api/app/services/app_chat_service.py +++ b/api/app/services/app_chat_service.py @@ -231,8 +231,13 @@ class AppChatService: if memory_flag: connected_config = get_end_user_connected_config(user_id, self.db) memory_config_id: str = connected_config.get("memory_config_id") + file_list = [] + for file in files: + file_dict = file.model_dump() + file_dict["upload_file_id"] = str(file_dict["upload_file_id"]) + file_list.append(file_dict) messages = [ - {"role": "user", "content": message, "files": [file.model_dump() for file in files]}, + {"role": "user", "content": message, "files": file_list}, {"role": "assistant", "content": result["content"]} ] if memory_config_id: @@ -506,8 +511,13 @@ class AppChatService: if memory_flag: connected_config = get_end_user_connected_config(user_id, self.db) memory_config_id: str = connected_config.get("memory_config_id") + file_list = [] + for file in files: + file_dict = file.model_dump() + file_dict["upload_file_id"] = str(file_dict["upload_file_id"]) + file_list.append(file_dict) messages = [ - {"role": "user", "content": message, "files": [file.model_dump() for file in files]}, + {"role": "user", "content": message, "files": file_list}, {"role": "assistant", "content": full_content} ] if memory_config_id: