diff --git a/modified_assistant.py b/modified_assistant.py index d9a9843..6cfac51 100644 --- a/modified_assistant.py +++ b/modified_assistant.py @@ -177,7 +177,24 @@ class ModifiedAssistant(Assistant): # 如果使用了工具,继续循环 if not used_any_tool: break - + + # 检查是否因为调用次数用完而退出循环 + if num_llm_calls_available == 0: + # 根据语言选择错误消息 + if lang == 'zh': + error_message = "工具调用超出限制" + elif lang == 'ja': + error_message = "ツール呼び出しが制限を超えました。" + else: + error_message = "Tool calls exceeded limit" + tool_logger.error(error_message) + + error_msg = Message( + role=ASSISTANT, + content=error_message, + ) + response.append(error_msg) + yield response diff --git a/utils/fastapi_utils.py b/utils/fastapi_utils.py index 69064f7..6aabcd9 100644 --- a/utils/fastapi_utils.py +++ b/utils/fastapi_utils.py @@ -284,6 +284,10 @@ def extract_guidelines_from_system_prompt(system_prompt: Optional[str]) -> tuple pattern = r'```guideline\s*\n(.*?)\n```' matches = re.findall(pattern, system_prompt, re.DOTALL) + # 如果没有匹配到guidelines,直接返回空字符串和原始prompt + if not matches: + return system_prompt, "" + guidelines_text = "\n".join(matches).strip() # 从原始system_prompt中删除 ```guideline``` 内容块