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)