Unify think_end_id to model_config as single source of truth (#22148)

This commit is contained in:
Liangsheng Yin
2026-04-05 03:35:38 -07:00
committed by GitHub
parent aeff9fb7c1
commit df9c831ab8
4 changed files with 8 additions and 11 deletions
@@ -204,6 +204,7 @@ def create_grammar_backend(
tokenizer,
vocab_size: int,
eos_token_ids: Optional[set] = None,
think_end_id: Optional[int] = None,
) -> Optional[BaseGrammarBackend]:
name = server_args.grammar_backend
@@ -258,13 +259,11 @@ def create_grammar_backend(
else:
raise ValueError(f"Invalid grammar backend: {name}")
if server_args.reasoning_parser and hasattr(tokenizer, "think_end_id"):
if server_args.reasoning_parser and think_end_id is not None:
from sglang.srt.constrained.reasoner_grammar_backend import (
ReasonerGrammarBackend,
)
grammar_backend = ReasonerGrammarBackend(
grammar_backend, tokenizer.think_end_id
)
grammar_backend = ReasonerGrammarBackend(grammar_backend, think_end_id)
return grammar_backend
@@ -32,6 +32,7 @@ class GrammarManager:
scheduler.tokenizer,
scheduler.model_config.vocab_size,
scheduler.model_config.hf_eos_token_id,
think_end_id=scheduler.model_config.think_end_id,
)
else:
self.grammar_backend = None
+1 -5
View File
@@ -549,13 +549,9 @@ class Scheduler(
reasoning_parser = ReasoningParser(
model_type=self.server_args.reasoning_parser, stream_reasoning=False
)
self.tokenizer.think_end_id = self.tokenizer.encode(
self.model_config.think_end_id = self.tokenizer.encode(
reasoning_parser.detector.think_end_token, add_special_tokens=False
)[0]
self._think_end_id = self.tokenizer.think_end_id
self.model_config.think_end_id = self._think_end_id
else:
self._think_end_id = None
def init_mamba_backend(self) -> None:
initialize_mamba_selective_state_update_backend(self.server_args)
@@ -558,8 +558,9 @@ class SchedulerOutputProcessorMixin:
def _maybe_update_reasoning_tokens(
self: Scheduler, req: Req, next_token_id: Union[int, List[int]]
):
if req.require_reasoning and self._think_end_id is not None:
req.update_reasoning_tokens(next_token_id, self._think_end_id)
think_end_id = self.model_config.think_end_id
if req.require_reasoning and think_end_id is not None:
req.update_reasoning_tokens(next_token_id, think_end_id)
def _mamba_prefix_cache_update(
self: Scheduler,