现在 v1 和 v2 接口都支持传递额外参数了
This commit is contained in:
parent
f72a53462a
commit
5b29e866f2
@ -147,7 +147,7 @@ class AgentConfig:
|
|||||||
|
|
||||||
|
|
||||||
@classmethod
|
@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请求创建配置"""
|
"""从v2请求创建配置"""
|
||||||
# 延迟导入避免循环依赖
|
# 延迟导入避免循环依赖
|
||||||
from .logging_handler import LoggingCallbackHandler
|
from .logging_handler import LoggingCallbackHandler
|
||||||
@ -189,7 +189,7 @@ class AgentConfig:
|
|||||||
project_dir=project_dir,
|
project_dir=project_dir,
|
||||||
stream=request.stream,
|
stream=request.stream,
|
||||||
tool_response=request.tool_response,
|
tool_response=request.tool_response,
|
||||||
generate_cfg={}, # v2接口不传递额外的generate_cfg
|
generate_cfg=generate_cfg or {}, # v2接口也支持传递额外的generate_cfg
|
||||||
logging_handler=LoggingCallbackHandler(),
|
logging_handler=LoggingCallbackHandler(),
|
||||||
messages=messages,
|
messages=messages,
|
||||||
_origin_messages=messages,
|
_origin_messages=messages,
|
||||||
|
|||||||
@ -590,8 +590,12 @@ async def chat_warmup_v2(request: ChatRequestV2, authorization: Optional[str] =
|
|||||||
# 处理消息
|
# 处理消息
|
||||||
messages = process_messages(empty_messages, request.language or "ja")
|
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 对象
|
# 创建 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 缓存
|
# 预热 mcp_tools 缓存
|
||||||
logger.info(f"Warming up mcp_tools for bot_id: {bot_id}")
|
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)
|
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 对象
|
# 创建 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创建和响应生成逻辑
|
# 调用公共的agent创建和响应生成逻辑
|
||||||
return await create_agent_and_generate_response(config)
|
return await create_agent_and_generate_response(config)
|
||||||
|
|
||||||
|
|||||||
@ -56,6 +56,8 @@ class ChatRequest(BaseModel):
|
|||||||
skills: Optional[List[str]] = None
|
skills: Optional[List[str]] = None
|
||||||
enable_memory: Optional[bool] = False
|
enable_memory: Optional[bool] = False
|
||||||
|
|
||||||
|
model_config = ConfigDict(extra='allow')
|
||||||
|
|
||||||
|
|
||||||
class ChatRequestV2(BaseModel):
|
class ChatRequestV2(BaseModel):
|
||||||
messages: List[Message]
|
messages: List[Message]
|
||||||
@ -66,6 +68,8 @@ class ChatRequestV2(BaseModel):
|
|||||||
user_identifier: Optional[str] = ""
|
user_identifier: Optional[str] = ""
|
||||||
session_id: Optional[str] = None
|
session_id: Optional[str] = None
|
||||||
|
|
||||||
|
model_config = ConfigDict(extra='allow')
|
||||||
|
|
||||||
|
|
||||||
class FileProcessRequest(BaseModel):
|
class FileProcessRequest(BaseModel):
|
||||||
unique_id: str
|
unique_id: str
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user