【Optimization】update data_processor & add tool parser plugins (#6096)

* update data_processor

* fix unit test

* fix unit test

* add unit test

* add tool parser plugins

* fix tool call

* fix tool call

* fix tool call

* fix unit test

* fix unit test

* add unit test

* fix unit test

* fix unit test

* fix unit test
This commit is contained in:
luukunn
2026-01-22 17:17:32 +08:00
committed by GitHub
parent 955785e2e0
commit 6b968a76f1
13 changed files with 871 additions and 1013 deletions
@@ -407,7 +407,7 @@ class OpenAIServingCompletion:
def calc_finish_reason(self, max_tokens, token_num, output, tool_called):
if max_tokens is None or token_num != max_tokens:
if tool_called or output.get("tool_call"):
if tool_called or output.get("tool_calls"):
return "tool_calls"
else:
return "stop"
@@ -554,9 +554,9 @@ class OpenAIServingCompletion:
text=output["text"],
prompt_token_ids=None,
completion_token_ids=output.get("token_ids") if request.return_token_ids else None,
tool_calls=None,
tool_calls=output["tool_calls"],
completion_tokens=output.get("completion_tokens") if request.return_token_ids else None,
reasoning_content="",
reasoning_content=output["reasoning_content"],
arrival_time=arrival_time,
logprobs=logprobs_res,
prompt_logprobs=(
@@ -565,15 +565,12 @@ class OpenAIServingCompletion:
draft_logprobs=draft_logprobs_res,
speculate_metrics=output_speculate_metrics,
)
if not res["finished"] and output["enable_parser"]:
delta_message_output = output["delta_message"]
if delta_message_output is None:
continue
delta_message.text = delta_message_output.content or ""
delta_message.reasoning_content = delta_message_output.reasoning_content or ""
if delta_message_output.tool_calls:
delta_message.tool_calls = delta_message_output.tool_calls
tool_called[idx] = True
if output["tool_calls"] is not None:
tool_called[idx] = True
if output["skipped"]:
continue
choices.append(delta_message)
@@ -740,7 +737,7 @@ class OpenAIServingCompletion:
else None
),
reasoning_content=output.get("reasoning_content"),
tool_calls=output.get("tool_call", None),
tool_calls=output.get("tool_calls"),
logprobs=aggregated_logprobs,
draft_logprobs=aggregated_draft_logprobs,
prompt_logprobs=clamp_prompt_logprobs(prompt_logprobs_res),