Skip to content

Commit 2ddb90d

Browse files
committed
[template] update glm-4.5 agent template
1 parent 9f308ea commit 2ddb90d

File tree

1 file changed

+3
-6
lines changed

1 file changed

+3
-6
lines changed

swift/plugin/agent_template/glm4.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -83,22 +83,19 @@ class GLM4_5AgentTemplate(BaseAgentTemplate):
8383
@staticmethod
8484
def _find_function_call(single_content: str) -> Optional['Function']:
8585
from swift.llm.infer import Function
86-
single_content = single_content.replace('<tool_call>', '').strip()
8786
func_name_match = re.match(r'^([^\n<]+)', single_content)
8887
if not func_name_match:
8988
return None
9089
func_name = func_name_match.group(1).strip()
91-
arg_key_pattern = re.compile(r'<arg_key>(.*?)</arg_key>', re.DOTALL)
92-
arg_value_pattern = re.compile(r'<arg_value>(.*?)</arg_value>', re.DOTALL)
93-
keys = arg_key_pattern.findall(single_content)
94-
values = arg_value_pattern.findall(single_content)
90+
keys = re.findall(r'<arg_key>(.*?)</arg_key>', single_content, re.DOTALL)
91+
values = re.findall(r'<arg_value>(.*?)</arg_value>', single_content, re.DOTALL)
9592
if len(keys) != len(values):
9693
return None
9794
args = {k.strip(): v.strip() for k, v in zip(keys, values)}
9895
return Function(name=func_name, arguments=json.dumps(args, ensure_ascii=False))
9996

10097
def get_toolcall(self, response: str) -> List['Function']:
101-
toolcall_list = response.replace('<|observation|>', '').split('</tool_call>')
98+
toolcall_list = re.findall(r'<tool_call>(.*?)</tool_call>', response, re.DOTALL)
10299
functions = []
103100
for toolcall in toolcall_list:
104101
function = self._find_function_call(toolcall)

0 commit comments

Comments
 (0)