[gpt-oss] use reasoning channel for reasoning text in serving_chat (#22920)

Signed-off-by: Yu Guo <yuguo@meta.com>
This commit is contained in:
Yu Guo 2025-08-24 23:29:34 -07:00 committed by GitHub
parent c9abb10489
commit 49ab23b3cc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -663,9 +663,9 @@ class OpenAIServingChat(OpenAIServing):
harmony_parser = harmony_parsers[i]
for token_id in output.token_ids:
harmony_parser.process(token_id)
# FIXME(woosuk): Support function calling
is_final = harmony_parser.current_channel == "final"
if not (request.include_reasoning or is_final):
is_reasoning = \
harmony_parser.current_channel == "analysis"
if not request.include_reasoning and is_reasoning:
# Skip the reasoning content.
continue
delta_text = harmony_parser.last_content_delta or ""
@ -695,11 +695,11 @@ class OpenAIServingChat(OpenAIServing):
current_token_ids = as_list(output.token_ids)
if self.use_harmony:
if is_final:
delta_message = DeltaMessage(content=delta_text)
else:
if is_reasoning:
delta_message = DeltaMessage(
reasoning_content=delta_text)
else:
delta_message = DeltaMessage(content=delta_text)
# handle streaming deltas for tools with named tool_choice
elif tool_choice_function_name:
if (self.reasoning_parser and not reasoning_end_arr[i]