Skip to content

Commit 7a77454

Browse files
committed
chore: init reasoning_parser on manager
Signed-off-by: Aaron Pham <contact@aarnphm.xyz>
1 parent 909b2e4 commit 7a77454

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

vllm/reasoning/abs_reasoning_parsers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ class ReasoningParserManager:
106106
reasoning_parsers: dict[str, type] = {}
107107

108108
@classmethod
109-
def get_reasoning_parser(cls, name) -> type:
109+
def get_reasoning_parser(cls, name: str) -> type[ReasoningParser]:
110110
"""
111111
Get reasoning parser by name which is registered by `register_module`.
112112

vllm/v1/structured_output/__init__.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
from vllm.config import VllmConfig
99
from vllm.logger import init_logger
10+
from vllm.reasoning import ReasoningParserManager
1011
from vllm.transformers_utils.tokenizer_group import init_tokenizer_from_configs
1112
from vllm.v1.structured_output.backend_guidance import GuidanceBackend
1213
from vllm.v1.structured_output.backend_types import (StructuredOutputBackend,
@@ -18,6 +19,7 @@
1819
import numpy.typing as npt
1920
import torch
2021

22+
from vllm.reasoning import ReasoningParser
2123
from vllm.v1.request import Request
2224

2325
logger = init_logger(__name__)
@@ -28,6 +30,7 @@ class StructuredOutputManager:
2830

2931
def __init__(self, vllm_config: VllmConfig):
3032
self.backend: Optional[StructuredOutputBackend] = None
33+
self.reasoner: Optional[ReasoningParser] = None
3134
self.vllm_config = vllm_config
3235
self._grammar_bitmask: Optional[torch.Tensor] = None
3336

@@ -72,6 +75,12 @@ def grammar_init(self, request: Request) -> None:
7275
raise ValueError(
7376
f"Unsupported structured output backend: {backend_name}")
7477

78+
if (reasoning_backend :=
79+
self.vllm_config.decoding_config.reasoning_backend
80+
) is not None and self.reasoner is None:
81+
self.reasoner = ReasoningParserManager.get_reasoning_parser(
82+
reasoning_backend)(tokenizer=tokenizer)
83+
7584
grammar = self.executor.submit(self._async_create_grammar, request)
7685
request.structured_output_request.grammar = grammar # type: ignore[assignment]
7786

0 commit comments

Comments
 (0)