diff --git a/vllm/entrypoints/openai/responses/serving.py b/vllm/entrypoints/openai/responses/serving.py index 3c80e3d015d..90b1a074934 100644 --- a/vllm/entrypoints/openai/responses/serving.py +++ b/vllm/entrypoints/openai/responses/serving.py @@ -1041,7 +1041,10 @@ class OpenAIServingResponses(OpenAIServing): # Use parser to extract and create response output items if self.parser: - parser = self.parser(tokenizer, request.tools) + chat_template_kwargs = self._effective_chat_template_kwargs(request) + parser = self.parser( + tokenizer, request.tools, chat_template_kwargs=chat_template_kwargs + ) return parser.extract_response_outputs( model_output=final_output.text, model_output_token_ids=final_output.token_ids, @@ -1378,7 +1381,15 @@ class OpenAIServingResponses(OpenAIServing): ], ) -> AsyncGenerator[StreamingResponsesResponse, None]: processor = SimpleStreamingEventProcessor() - parser = self.parser(tokenizer, request.tools) if self.parser else None + parser = ( + self.parser( + tokenizer, + request.tools, + chat_template_kwargs=self._effective_chat_template_kwargs(request), + ) + if self.parser + else None + ) def _get_logprobs( output: CompletionOutput,