From ac6eb49de38978336104f18f0349e072a442e054 Mon Sep 17 00:00:00 2001 From: Breno Baldas Skuk Date: Tue, 19 Aug 2025 00:22:59 +0200 Subject: [PATCH] fix: OpenAI SDK compat (ResponseTextConfig) (#23126) Signed-off-by: breno.skuk Signed-off-by: Breno Baldas Skuk Signed-off-by: mgoin Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: Michael Goin --- requirements/common.txt | 2 +- requirements/docs.txt | 2 +- vllm/entrypoints/openai/protocol.py | 10 +++++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/requirements/common.txt b/requirements/common.txt index e7bc5682a6966..1a8fea0dd7d93 100644 --- a/requirements/common.txt +++ b/requirements/common.txt @@ -12,7 +12,7 @@ tokenizers >= 0.21.1 # Required for fast incremental detokenization. protobuf # Required by LlamaTokenizer. fastapi[standard] >= 0.115.0 # Required by FastAPI's form models in the OpenAI API server's audio transcriptions endpoint. aiohttp -openai >= 1.99.1, < 1.100.0 # For Responses API with reasoning content +openai >= 1.99.1 # For Responses API with reasoning content pydantic >= 2.10 prometheus_client >= 0.18.0 pillow # Required for image processing diff --git a/requirements/docs.txt b/requirements/docs.txt index 87a44fc99da14..a24b9c7e924bf 100644 --- a/requirements/docs.txt +++ b/requirements/docs.txt @@ -18,7 +18,7 @@ cbor2 cloudpickle fastapi msgspec -openai < 1.100.0 +openai openai-harmony partial-json-parser pillow diff --git a/vllm/entrypoints/openai/protocol.py b/vllm/entrypoints/openai/protocol.py index 543701ed144ee..61f1a09d3ac1c 100644 --- a/vllm/entrypoints/openai/protocol.py +++ b/vllm/entrypoints/openai/protocol.py @@ -20,7 +20,15 @@ from openai.types.chat.chat_completion_message import ( from openai.types.responses import (ResponseFunctionToolCall, ResponseInputItemParam, ResponseOutputItem, ResponsePrompt, ResponseReasoningItem, - ResponseStatus, ResponseTextConfig) + ResponseStatus) + +# Backward compatibility for OpenAI client versions +try: # For older openai versions (< 1.100.0) + from openai.types.responses import ResponseTextConfig +except ImportError: # For newer openai versions (>= 1.100.0) + from openai.types.responses import (ResponseFormatTextConfig as + ResponseTextConfig) + from openai.types.responses.response import ToolChoice from openai.types.responses.tool import Tool from openai.types.shared import Metadata, Reasoning