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
ee2da3e9
Unverified
Commit
ee2da3e9
authored
Sep 27, 2024
by
Chirag Jain
Committed by
GitHub
Sep 26, 2024
Browse files
fix validation: Only set tool_choice `auto` if at least one tool is provided (#8568)
parent
e2f6f26e
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
72 additions
and
1 deletion
+72
-1
tests/tool_use/test_chat_completion_request_validations.py
tests/tool_use/test_chat_completion_request_validations.py
+71
-0
vllm/entrypoints/openai/protocol.py
vllm/entrypoints/openai/protocol.py
+1
-1
No files found.
tests/tool_use/test_chat_completion_request_validations.py
0 → 100644
View file @
ee2da3e9
import
pytest
from
vllm.entrypoints.openai.protocol
import
ChatCompletionRequest
def
test_chat_completion_request_with_no_tools
():
# tools key is not present
request
=
ChatCompletionRequest
.
model_validate
({
'messages'
:
[{
'role'
:
'user'
,
'content'
:
'Hello'
}],
'model'
:
'facebook/opt-125m'
,
})
assert
request
.
tool_choice
==
'none'
# tools key is None
request
=
ChatCompletionRequest
.
model_validate
({
'messages'
:
[{
'role'
:
'user'
,
'content'
:
'Hello'
}],
'model'
:
'facebook/opt-125m'
,
'tools'
:
None
})
assert
request
.
tool_choice
==
'none'
# tools key present but empty
request
=
ChatCompletionRequest
.
model_validate
({
'messages'
:
[{
'role'
:
'user'
,
'content'
:
'Hello'
}],
'model'
:
'facebook/opt-125m'
,
'tools'
:
[]
})
assert
request
.
tool_choice
==
'none'
def
test_chat_completion_request_with_tool_choice_but_no_tools
():
with
pytest
.
raises
(
ValueError
,
match
=
"When using `tool_choice`, `tools` must be set."
):
ChatCompletionRequest
.
model_validate
({
'messages'
:
[{
'role'
:
'user'
,
'content'
:
'Hello'
}],
'model'
:
'facebook/opt-125m'
,
'tool_choice'
:
'auto'
})
with
pytest
.
raises
(
ValueError
,
match
=
"When using `tool_choice`, `tools` must be set."
):
ChatCompletionRequest
.
model_validate
({
'messages'
:
[{
'role'
:
'user'
,
'content'
:
'Hello'
}],
'model'
:
'facebook/opt-125m'
,
'tool_choice'
:
'auto'
,
'tools'
:
None
})
vllm/entrypoints/openai/protocol.py
View file @
ee2da3e9
...
...
@@ -386,7 +386,7 @@ class ChatCompletionRequest(OpenAIBaseModel):
# if "tool_choice" is not specified but tools are provided,
# default to "auto" tool_choice
if
"tool_choice"
not
in
data
and
"tools"
in
data
:
if
"tool_choice"
not
in
data
and
data
.
get
(
"tools"
)
:
data
[
"tool_choice"
]
=
"auto"
# if "tool_choice" is specified -- validation
...
...
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