修复工具调用问题

This commit is contained in:
朱潮 2025-12-16 09:09:17 +08:00
parent 12cdb7679a
commit 403df9de35

View File

@ -251,7 +251,8 @@ def process_messages(messages: List[Dict], language: Optional[str] = None) -> Li
assistant_content = "" assistant_content = ""
function_calls = [] function_calls = []
tool_responses = [] tool_responses = []
tool_id = "" tool_id_counter = 0 # 添加唯一的工具调用计数器
tool_id_list = []
for i in range(0, len(parts)): for i in range(0, len(parts)):
if i % 2 == 0: # 文本内容 if i % 2 == 0: # 文本内容
text = parts[i].strip() text = parts[i].strip()
@ -272,8 +273,9 @@ def process_messages(messages: List[Dict], language: Optional[str] = None) -> Li
if exclude_name in function_name: if exclude_name in function_name:
should_include = True should_include = True
break break
if should_include: if should_include and len(tool_id_list)>0:
tool_id = tool_id_list.pop(0)
# 将 TOOL_RESPONSE 包装成 tool_result 消息,紧跟对应的 tool_use # 将 TOOL_RESPONSE 包装成 tool_result 消息,紧跟对应的 tool_use
final_messages.append({ final_messages.append({
"role": TOOL, "role": TOOL,
@ -296,7 +298,9 @@ def process_messages(messages: List[Dict], language: Optional[str] = None) -> Li
break break
if should_include: if should_include:
tool_id = f"tool_id_{i}" tool_id = f"tool_id_{tool_id_counter}" # 使用唯一计数器
tool_id_list.append(tool_id)
tool_id_counter += 1 # 递增计数器
final_messages.append({ final_messages.append({
"role": ASSISTANT, "role": ASSISTANT,
"content": "", "content": "",