mirror of
https://github.com/vllm-project/vllm.git
synced 2026-08-16 10:48:14 +00:00
[Bugfix] Avoid leaking Pydantic repr in tool_choice error message (#47028)
Signed-off-by: muhammadfawaz1 <[email protected]> Co-authored-by: Mahad Durrani <[email protected]>
This commit is contained in:
co-authored by
Mahad Durrani
parent
c0e8e1f12a
commit
d35eba302f
@@ -2124,6 +2124,13 @@ async def test_tool_choice_validation_without_parser():
|
||||
assert isinstance(response_named, ErrorResponse)
|
||||
assert "tool_choice" in response_named.error.message
|
||||
assert "--tool-call-parser" in response_named.error.message
|
||||
# The function name should appear in a clean, readable form -
|
||||
# guards against leaking Pydantic's internal repr of the
|
||||
# ChatCompletionNamedToolChoiceParam/ChatCompletionNamedFunction
|
||||
# objects directly into the client-facing error message.
|
||||
assert "get_weather" in response_named.error.message
|
||||
assert "ChatCompletionNamedFunction" not in response_named.error.message
|
||||
assert "ChatCompletionNamedToolChoiceParam" not in response_named.error.message
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
|
||||
@@ -12,6 +12,7 @@ from vllm.entrypoints.chat_utils import (
|
||||
ConversationMessage,
|
||||
)
|
||||
from vllm.entrypoints.openai.chat_completion.protocol import (
|
||||
ChatCompletionNamedToolChoiceParam,
|
||||
ChatCompletionRequest,
|
||||
)
|
||||
from vllm.entrypoints.openai.completion.protocol import (
|
||||
@@ -134,8 +135,12 @@ class OnlineRenderer:
|
||||
)
|
||||
elif request.tool_choice != "auto":
|
||||
# "required" or named tool requires tool parser
|
||||
if isinstance(request.tool_choice, ChatCompletionNamedToolChoiceParam):
|
||||
tool_choice_desc = f'function "{request.tool_choice.function.name}"'
|
||||
else:
|
||||
tool_choice_desc = f'"{request.tool_choice}"'
|
||||
return self.create_error_response(
|
||||
f'tool_choice="{request.tool_choice}" requires '
|
||||
f"tool_choice={tool_choice_desc} requires "
|
||||
"--tool-call-parser to be set"
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user