fix: reasoning parser when request have enable_thinking flag (#8933)
Signed-off-by: Xinyuan Tong <xinyuantong.cs@gmail.com>
This commit is contained in:
@@ -840,11 +840,15 @@ class OpenAIServingChat(OpenAIServingBase):
|
|||||||
reasoning_text = None
|
reasoning_text = None
|
||||||
reasoning_parser = self.tokenizer_manager.server_args.reasoning_parser
|
reasoning_parser = self.tokenizer_manager.server_args.reasoning_parser
|
||||||
if reasoning_parser and request.separate_reasoning:
|
if reasoning_parser and request.separate_reasoning:
|
||||||
|
is_force_reasoning = (
|
||||||
|
self.template_manager.force_reasoning
|
||||||
|
or self._get_enable_thinking_from_request(request)
|
||||||
|
)
|
||||||
try:
|
try:
|
||||||
parser = ReasoningParser(
|
parser = ReasoningParser(
|
||||||
model_type=reasoning_parser,
|
model_type=reasoning_parser,
|
||||||
stream_reasoning=False,
|
stream_reasoning=False,
|
||||||
force_reasoning=self.template_manager.force_reasoning,
|
force_reasoning=is_force_reasoning,
|
||||||
)
|
)
|
||||||
reasoning_text, text = parser.parse_non_stream(text)
|
reasoning_text, text = parser.parse_non_stream(text)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -1007,10 +1011,14 @@ class OpenAIServingChat(OpenAIServingBase):
|
|||||||
) -> tuple[Optional[str], str]:
|
) -> tuple[Optional[str], str]:
|
||||||
"""Process reasoning content in streaming response"""
|
"""Process reasoning content in streaming response"""
|
||||||
if index not in reasoning_parser_dict:
|
if index not in reasoning_parser_dict:
|
||||||
|
is_force_reasoning = (
|
||||||
|
self.template_manager.force_reasoning
|
||||||
|
or self._get_enable_thinking_from_request(request)
|
||||||
|
)
|
||||||
reasoning_parser_dict[index] = ReasoningParser(
|
reasoning_parser_dict[index] = ReasoningParser(
|
||||||
self.tokenizer_manager.server_args.reasoning_parser,
|
self.tokenizer_manager.server_args.reasoning_parser,
|
||||||
request.stream_reasoning,
|
request.stream_reasoning,
|
||||||
self.template_manager.force_reasoning,
|
is_force_reasoning,
|
||||||
)
|
)
|
||||||
reasoning_parser = reasoning_parser_dict[index]
|
reasoning_parser = reasoning_parser_dict[index]
|
||||||
return reasoning_parser.parse_stream_chunk(delta)
|
return reasoning_parser.parse_stream_chunk(delta)
|
||||||
|
|||||||
Reference in New Issue
Block a user