@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / 0102bd2f4c
Fork 0

A high-throughput and memory-efficient inference and serving engine for LLMs

Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git

Synced Nov 5, 11:00 UTC

[Parser] Pass request.tools to tool parser (#38860)

Signed-off-by: sfeng33 <4florafeng@gmail.com>

Flora Feng committed Apr 7, 2026 at 13:36 UTC 0102bd2f4ce106fc2ef10e6180d882015cc81fcd
2 files changed +4 -3
vllm/entrypoints/openai/responses/serving.py
+1 -1
@@ -1001,7 +1001,7 @@ class OpenAIServingResponses(OpenAIServing):
1001
1002 # Use parser to extract and create response output items
1003 if self.parser:
1004 - parser = self.parser(tokenizer)
1004 + parser = self.parser(tokenizer, request.tools)
1005 return parser.extract_response_outputs(
1006 model_output=final_output.text,
1007 model_output_token_ids=final_output.token_ids,
vllm/parser/abstract_parser.py
+3 -2
@@ -37,6 +37,7 @@ from vllm.logger import init_logger
37 from vllm.reasoning.abs_reasoning_parsers import ReasoningParser
38 from vllm.tokenizers import TokenizerLike
39 from vllm.tool_parsers.abstract_tool_parser import ToolParser
40 +from vllm.tool_parsers.utils import Tool
41 from vllm.utils import random_uuid
42
43 logger = init_logger(__name__)
@@ -542,10 +543,10 @@ class _WrappedParser(DelegatingParser):
543 reasoning_parser_cls: type[ReasoningParser] | None = None
544 tool_parser_cls: type[ToolParser] | None = None
545
545 - def __init__(self, tokenizer: TokenizerLike):
546 + def __init__(self, tokenizer: TokenizerLike, tools: list[Tool] | None = None):
547 super().__init__(tokenizer)
548 # Instantiate the underlying parsers from class attributes
549 if self.__class__.reasoning_parser_cls is not None:
550 self._reasoning_parser = self.__class__.reasoning_parser_cls(tokenizer)
551 if self.__class__.tool_parser_cls is not None:
551 - self._tool_parser = self.__class__.tool_parser_cls(tokenizer)
552 + self._tool_parser = self.__class__.tool_parser_cls(tokenizer, tools)