fix: XML parameter 支持 string="true" 类型属性
This commit is contained in:
parent
6c878a2abf
commit
81cc0b3344
@ -467,13 +467,13 @@ def _parse_agent_action(raw):
|
||||
if raw.startswith("```"):
|
||||
raw = raw.split("\n", 1)[1].rsplit("```", 1)[0].strip()
|
||||
|
||||
# deepseek 原生 function calling 输出 XML:<tool_calls><invoke name="..."><parameter name="...">...</parameter></invoke></tool_calls>
|
||||
m = re.search(r'<invoke\s+name="([^"]+)"\s*>(.*?)</invoke>', raw, re.DOTALL)
|
||||
# deepseek 原生 function calling 输出 XML:<tool_calls><invoke name="..."><parameter name="..." string="true">...</parameter></invoke></tool_calls>
|
||||
m = re.search(r'<invoke\s+name="([^"]+)"[^>]*>(.*?)</invoke>', raw, re.DOTALL)
|
||||
if m:
|
||||
tool = m.group(1).strip()
|
||||
body = m.group(2)
|
||||
params = {}
|
||||
for pm in re.finditer(r'<parameter\s+name="([^"]+)"\s*>(.*?)</parameter>', body, re.DOTALL):
|
||||
for pm in re.finditer(r'<parameter\s+name="([^"]+)"[^>]*>(.*?)</parameter>', body, re.DOTALL):
|
||||
val = pm.group(2).strip()
|
||||
try:
|
||||
val = json.loads(val)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user