Bases: ResponseTemplateReasoningParser
Selects BeamParser as the reasoning parser.
Source code in vllm/parser/beam.py
| class BeamReasoningParser(ResponseTemplateReasoningParser):
"""Selects `BeamParser` as the reasoning parser."""
@classmethod
def unified_parser_cls(cls) -> type[ResponseTemplateParser]:
return BeamParser
@property
def reasoning_start_str(self) -> str | None:
if literal := super().reasoning_start_str:
return literal
thinking = self.response_template.fields.get(THINKING_FIELD)
if thinking is None:
return None
openers = _openers(thinking, message_start_anchors(self.response_template))
if not openers:
return None
# Budget tracking needs one marker for both a prompt continuation
# and a complete assistant message in the checkpoint's pattern.
marker = min(openers, key=len)
return marker if all(opener.endswith(marker) for opener in openers) else None
|