Skip to content

Commit a2c38da

Browse files
authored
Set ensure_ascii=False for tool calling (InternLM#3295)
1 parent da0bf7b commit a2c38da

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

lmdeploy/serve/openai/tool_parser/internlm2_parser.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ def extract_tool_calls_streaming(
121121
delta = None
122122
# first time to get parameters
123123
elif cur_arguments and not prev_arguments:
124-
cur_arguments_json = json.dumps(cur_arguments)
124+
cur_arguments_json = json.dumps(cur_arguments, ensure_ascii=False)
125125

126126
arguments_delta = cur_arguments_json[:cur_arguments_json.index(delta_text) + len(delta_text)]
127127
delta = DeltaMessage(tool_calls=[
@@ -132,8 +132,8 @@ def extract_tool_calls_streaming(
132132
self.streamed_args_for_tool[self.current_tool_id] += arguments_delta
133133
# both prev and cur parameters, send the increase parameters
134134
elif cur_arguments and prev_arguments:
135-
cur_args_json = json.dumps(cur_arguments)
136-
prev_args_json = json.dumps(prev_arguments)
135+
cur_args_json = json.dumps(cur_arguments, ensure_ascii=False)
136+
prev_args_json = json.dumps(prev_arguments, ensure_ascii=False)
137137

138138
argument_diff = extract_intermediate_diff(cur_args_json, prev_args_json)
139139

@@ -167,8 +167,9 @@ def extract_tool_calls(
167167
action = action.split('<|action_end|>'.strip())[0]
168168
action = action[action.find('{'):]
169169
action_dict = json.loads(action)
170-
name, parameters = action_dict['name'], json.dumps(
171-
action_dict.get('parameters', action_dict.get('arguments', {})))
170+
name, parameters = action_dict['name'], json.dumps(action_dict.get('parameters',
171+
action_dict.get('arguments', {})),
172+
ensure_ascii=False)
172173

173174
if not tools or name not in [t.function.name for t in tools]:
174175
ExtractedToolCallInformation(tools_called=False, tool_calls=[], content=text)

lmdeploy/serve/openai/tool_parser/llama3_parser.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ def extract_tool_calls_streaming(
124124
if self.current_tool_id >= 0:
125125
cur_arguments = current_tool_call.get('arguments')
126126
if cur_arguments:
127-
cur_args_json = json.dumps(cur_arguments)
127+
cur_args_json = json.dumps(cur_arguments, ensure_ascii=False)
128128
sent = len(self.streamed_args_for_tool[self.current_tool_id])
129129
argument_diff = cur_args_json[sent:]
130130

@@ -170,14 +170,14 @@ def extract_tool_calls_streaming(
170170

171171
if cur_arguments:
172172
sent = len(self.streamed_args_for_tool[self.current_tool_id])
173-
cur_args_json = json.dumps(cur_arguments)
173+
cur_args_json = json.dumps(cur_arguments, ensure_ascii=False)
174174
prev_arguments = self.prev_tool_call_arr[self.current_tool_id].get('arguments')
175175

176176
argument_diff = None
177177
if is_complete[self.current_tool_id]:
178178
argument_diff = cur_args_json[sent:]
179179
elif prev_arguments:
180-
prev_args_json = json.dumps(prev_arguments)
180+
prev_args_json = json.dumps(prev_arguments, ensure_ascii=False)
181181
if cur_args_json != prev_args_json:
182182

183183
prefix = find_common_prefix(prev_args_json, cur_args_json)

lmdeploy/serve/openai/tool_parser/qwen2d5_parser.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ def extract_tool_calls_streaming(
116116
delta = None
117117
# first time to get parameters
118118
elif cur_arguments and not prev_arguments:
119-
cur_arguments_json = json.dumps(cur_arguments)
119+
cur_arguments_json = json.dumps(cur_arguments, ensure_ascii=False)
120120

121121
arguments_delta = cur_arguments_json[:cur_arguments_json.index(delta_text) + len(delta_text)]
122122
delta = DeltaMessage(tool_calls=[
@@ -127,8 +127,8 @@ def extract_tool_calls_streaming(
127127
self.streamed_args_for_tool[self.current_tool_id] += arguments_delta
128128
# both prev and cur parameters, send the increase parameters
129129
elif cur_arguments and prev_arguments:
130-
cur_args_json = json.dumps(cur_arguments)
131-
prev_args_json = json.dumps(prev_arguments)
130+
cur_args_json = json.dumps(cur_arguments, ensure_ascii=False)
131+
prev_args_json = json.dumps(prev_arguments, ensure_ascii=False)
132132

133133
argument_diff = extract_intermediate_diff(cur_args_json, prev_args_json)
134134

0 commit comments

Comments
 (0)