Skip to content

Commit 6807af8

Browse files
authored
[gpt-oss] upgrade gpt-oss to v0.0.3 and add version check (#22768)
Signed-off-by: Chen Zhang <[email protected]>
1 parent 4c558cf commit 6807af8

File tree

1 file changed

+34
-17
lines changed

1 file changed

+34
-17
lines changed

vllm/entrypoints/tool.py

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@
22
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
33
import os
44
from abc import ABC, abstractmethod
5-
from typing import TYPE_CHECKING, Any, Optional
6-
7-
from openai_harmony import Message
5+
from typing import TYPE_CHECKING, Any
86

97
from vllm.logger import init_logger
108

@@ -15,6 +13,30 @@
1513
logger = init_logger(__name__)
1614

1715

16+
def validate_gpt_oss_install():
17+
"""
18+
Check if the gpt-oss is installed and its version is at least 0.0.3.
19+
If not, raise an ImportError.
20+
"""
21+
from importlib.metadata import PackageNotFoundError, version
22+
23+
from packaging.version import InvalidVersion, Version
24+
25+
try:
26+
pkg_version_str = version("gpt_oss") # e.g., "0.0.5"
27+
pkg_version = Version(pkg_version_str)
28+
except PackageNotFoundError:
29+
raise ImportError("Package 'gpt_oss' is not installed.") from None
30+
except InvalidVersion as e:
31+
raise ImportError(
32+
f"Invalid version string for 'gpt_oss': {e}") from None
33+
34+
if pkg_version < Version("0.0.3"):
35+
raise ImportError(
36+
f"gpt_oss >= 0.0.3 is required, but {pkg_version} is installed."
37+
) from None
38+
39+
1840
class Tool(ABC):
1941

2042
@abstractmethod
@@ -33,12 +55,14 @@ def __init__(self):
3355
return
3456

3557
try:
58+
validate_gpt_oss_install()
3659
from gpt_oss.tools.simple_browser import SimpleBrowserTool
3760
from gpt_oss.tools.simple_browser.backend import ExaBackend
38-
except ImportError:
61+
except ImportError as e:
3962
self.enabled = False
4063
logger.warning_once(
41-
"gpt_oss is not installed, browsing is disabled")
64+
"gpt_oss is not installed properly (%s), browsing is disabled",
65+
e)
4266
return
4367

4468
browser_backend = ExaBackend(source="web", api_key=exa_api_key)
@@ -65,23 +89,16 @@ def __init__(self):
6589
self.enabled = True
6690

6791
try:
92+
validate_gpt_oss_install()
6893
from gpt_oss.tools.python_docker.docker_tool import PythonTool
69-
except ImportError:
94+
except ImportError as e:
7095
self.enabled = False
7196
logger.warning_once(
72-
"gpt_oss is not installed, code interpreter is disabled")
97+
"gpt_oss is not installed properly (%s), code interpreter is "
98+
"disabled", e)
7399
return
74100

75-
# NOTE (Chen): as of gpt-oss 0.0.2, there is a bug in _make_response
76-
# and we do the following monkey patch to fix it.
77-
class PatchedGptOssPythonTool(PythonTool):
78-
79-
def _make_response(self,
80-
output: str,
81-
channel: Optional[str] = None) -> Message:
82-
return super()._make_response(output)
83-
84-
self.python_tool = PatchedGptOssPythonTool()
101+
self.python_tool = PythonTool()
85102
logger.info_once("Code interpreter tool initialized")
86103

87104
async def get_result(self, context: "ConversationContext") -> Any:

0 commit comments

Comments
 (0)