From 5b29e866f27830999ee8a0c879baf9a85bfda339 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=B1=E6=BD=AE?= Date: Mon, 2 Mar 2026 20:01:43 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=B0=E5=9C=A8=20v1=20=E5=92=8C=20v2=20?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=83=BD=E6=94=AF=E6=8C=81=E4=BC=A0=E9=80=92?= =?UTF-8?q?=E9=A2=9D=E5=A4=96=E5=8F=82=E6=95=B0=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- agent/agent_config.py | 4 ++-- routes/chat.py | 11 +++++++++-- utils/api_models.py | 4 ++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/agent/agent_config.py b/agent/agent_config.py index cf97916..8b34ccb 100644 --- a/agent/agent_config.py +++ b/agent/agent_config.py @@ -147,7 +147,7 @@ class AgentConfig: @classmethod - async def from_v2_request(cls, request, bot_config: Dict, project_dir: Optional[str] = None, messages: Optional[List] = None): + async def from_v2_request(cls, request, bot_config: Dict, project_dir: Optional[str] = None, messages: Optional[List] = None, generate_cfg: Optional[Dict] = None): """从v2请求创建配置""" # 延迟导入避免循环依赖 from .logging_handler import LoggingCallbackHandler @@ -189,7 +189,7 @@ class AgentConfig: project_dir=project_dir, stream=request.stream, tool_response=request.tool_response, - generate_cfg={}, # v2接口不传递额外的generate_cfg + generate_cfg=generate_cfg or {}, # v2接口也支持传递额外的generate_cfg logging_handler=LoggingCallbackHandler(), messages=messages, _origin_messages=messages, diff --git a/routes/chat.py b/routes/chat.py index 685e997..08bc765 100644 --- a/routes/chat.py +++ b/routes/chat.py @@ -590,8 +590,12 @@ async def chat_warmup_v2(request: ChatRequestV2, authorization: Optional[str] = # 处理消息 messages = process_messages(empty_messages, request.language or "ja") + # 收集额外参数作为 generate_cfg + exclude_fields = {'messages', 'stream', 'tool_response', 'bot_id', 'language', 'user_identifier', 'session_id'} + generate_cfg = {k: v for k, v in request.model_dump().items() if k not in exclude_fields} + # 创建 AgentConfig 对象 - config = await AgentConfig.from_v2_request(request, bot_config, project_dir, messages) + config = await AgentConfig.from_v2_request(request, bot_config, project_dir, messages, generate_cfg) # 预热 mcp_tools 缓存 logger.info(f"Warming up mcp_tools for bot_id: {bot_id}") @@ -685,8 +689,11 @@ async def chat_completions_v2(request: ChatRequestV2, authorization: Optional[st ) # 处理消息 messages = process_messages(request.messages, request.language) + # 收集额外参数作为 generate_cfg + exclude_fields = {'messages', 'stream', 'tool_response', 'bot_id', 'language', 'user_identifier', 'session_id'} + generate_cfg = {k: v for k, v in request.model_dump().items() if k not in exclude_fields} # 创建 AgentConfig 对象 - config = await AgentConfig.from_v2_request(request, bot_config, project_dir, messages) + config = await AgentConfig.from_v2_request(request, bot_config, project_dir, messages, generate_cfg) # 调用公共的agent创建和响应生成逻辑 return await create_agent_and_generate_response(config) diff --git a/utils/api_models.py b/utils/api_models.py index 68b3840..7a85947 100644 --- a/utils/api_models.py +++ b/utils/api_models.py @@ -56,6 +56,8 @@ class ChatRequest(BaseModel): skills: Optional[List[str]] = None enable_memory: Optional[bool] = False + model_config = ConfigDict(extra='allow') + class ChatRequestV2(BaseModel): messages: List[Message] @@ -66,6 +68,8 @@ class ChatRequestV2(BaseModel): user_identifier: Optional[str] = "" session_id: Optional[str] = None + model_config = ConfigDict(extra='allow') + class FileProcessRequest(BaseModel): unique_id: str