fix: llmcore工具调用正则兼容tool_call标签,最小长度改为0

This commit is contained in:
Liang Jiaqing
2026-04-01 09:30:55 +08:00
parent d922303645
commit 404ea1947b
2 changed files with 4 additions and 4 deletions

View File

@@ -748,7 +748,7 @@ class ToolClient:
remaining_text = re.sub(think_pattern, "", remaining_text, flags=re.DOTALL)
tool_calls = []; json_strs = []; errors = []
tool_pattern = r"<tool_use>((?:(?!<tool_use>).){15,}?)</tool_use>"
tool_pattern = r"<(?:tool_use|tool_call)>((?:(?!<(?:tool_use|tool_call)>).){0,}?)</(?:tool_use|tool_call)>"}
tool_all = re.findall(tool_pattern, remaining_text, re.DOTALL)
if tool_all:
@@ -764,9 +764,9 @@ class ToolClient:
json_strs.append(json_str)
remaining_text = remaining_text.replace('<tool_use>'+weaktoolstr, "")
elif '"name":' in remaining_text and '"arguments":' in remaining_text:
json_match = re.search(r"(\{.*\"name\":.*?\})", remaining_text, re.DOTALL | re.MULTILINE)
json_match = re.search(r'\{.*"name":.*\}', remaining_text, re.DOTALL)
if json_match:
json_str = json_match.group(1).strip()
json_str = json_match.group(0).strip()
json_strs.append(json_str)
remaining_text = remaining_text.replace(json_str, "").strip()