Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenDAS
vllm_cscc
Commits
1116590b
Unverified
Commit
1116590b
authored
Sep 09, 2025
by
Chen Zhang
Committed by
GitHub
Sep 09, 2025
Browse files
[gpt-oss] Validate gpt-oss python tool during initialization (#23856)
Signed-off-by:
Chen Zhang
<
zhangch99@outlook.com
>
parent
ccb97338
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
30 additions
and
1 deletion
+30
-1
vllm/entrypoints/openai/api_server.py
vllm/entrypoints/openai/api_server.py
+2
-0
vllm/entrypoints/tool.py
vllm/entrypoints/tool.py
+24
-0
vllm/entrypoints/tool_server.py
vllm/entrypoints/tool_server.py
+4
-1
No files found.
vllm/entrypoints/openai/api_server.py
View file @
1116590b
...
...
@@ -1717,6 +1717,8 @@ async def init_app_state(
if
args
.
tool_server
==
"demo"
:
tool_server
:
Optional
[
ToolServer
]
=
DemoToolServer
()
assert
isinstance
(
tool_server
,
DemoToolServer
)
await
tool_server
.
init_and_validate
()
elif
args
.
tool_server
:
tool_server
=
MCPToolServer
()
await
tool_server
.
add_tool_server
(
args
.
tool_server
)
...
...
vllm/entrypoints/tool.py
View file @
1116590b
...
...
@@ -4,6 +4,8 @@ import os
from
abc
import
ABC
,
abstractmethod
from
typing
import
TYPE_CHECKING
,
Any
from
openai_harmony
import
Author
,
Message
,
Role
,
TextContent
from
vllm.logger
import
init_logger
if
TYPE_CHECKING
:
...
...
@@ -99,6 +101,28 @@ class HarmonyPythonTool(Tool):
return
self
.
python_tool
=
PythonTool
()
async
def
validate
(
self
):
if
not
self
.
enabled
:
return
try
:
message
=
Message
(
author
=
Author
(
role
=
Role
.
ASSISTANT
),
content
=
[
TextContent
(
text
=
"print('Hello, world!')"
)],
channel
=
"analysis"
,
recipient
=
"python"
,
content_type
=
"code"
,
)
msgs
=
[]
async
for
msg
in
self
.
python_tool
.
process
(
message
):
msgs
.
append
(
msg
)
assert
msgs
[
0
].
content
[
0
].
text
==
"Hello, world!
\n
"
except
Exception
as
e
:
self
.
enabled
=
False
logger
.
warning_once
(
"Code interpreter tool failed to initialize (%s), code "
"interpreter is disabled"
,
e
)
return
logger
.
info_once
(
"Code interpreter tool initialized"
)
async
def
get_result
(
self
,
context
:
"ConversationContext"
)
->
Any
:
...
...
vllm/entrypoints/tool_server.py
View file @
1116590b
...
...
@@ -162,10 +162,13 @@ class DemoToolServer(ToolServer):
def
__init__
(
self
):
self
.
tools
:
dict
[
str
,
Tool
]
=
{}
async
def
init_and_validate
(
self
):
browser_tool
=
HarmonyBrowserTool
()
python_tool
=
HarmonyPythonTool
()
await
python_tool
.
validate
()
if
browser_tool
.
enabled
:
self
.
tools
[
"browser"
]
=
browser_tool
python_tool
=
HarmonyPythonTool
()
if
python_tool
.
enabled
:
self
.
tools
[
"python"
]
=
python_tool
logger
.
info
(
"DemoToolServer initialized with tools: %s"
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment