mirror of
https://github.com/vllm-project/vllm.git
synced 2025-10-20 14:53:52 +08:00
[CI] fix ruff format (#26579)
Signed-off-by: chaunceyjiang <chaunceyjiang@gmail.com>
This commit is contained in:
@ -208,51 +208,49 @@ async def test_gpt_oss_multi_turn_chat(gptoss_client: OpenAI, with_tool_parser:
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_gpt_oss_tool_message_array_content(gptoss_client: OpenAI,
|
||||
with_tool_parser: bool):
|
||||
async def test_gpt_oss_tool_message_array_content(
|
||||
gptoss_client: OpenAI, with_tool_parser: bool
|
||||
):
|
||||
"""Test that tool messages support both string and array content formats."""
|
||||
if not with_tool_parser:
|
||||
pytest.skip("skip non-tool for array content tests")
|
||||
|
||||
tools = [{
|
||||
"type": "function",
|
||||
"function": {
|
||||
"name": "get_weather",
|
||||
"description": "Get the current weather in a given location",
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"city": {
|
||||
"type": "string"
|
||||
},
|
||||
"state": {
|
||||
"type": "string"
|
||||
},
|
||||
},
|
||||
"required": ["city", "state"],
|
||||
},
|
||||
},
|
||||
}]
|
||||
|
||||
# Test 1: Tool message with string content
|
||||
messages_string = [{
|
||||
"role": "user",
|
||||
"content": "What's the weather in Paris?"
|
||||
}, {
|
||||
"role":
|
||||
"assistant",
|
||||
"tool_calls": [{
|
||||
"id": "call_123",
|
||||
tools = [
|
||||
{
|
||||
"type": "function",
|
||||
"function": {
|
||||
"name": "get_weather",
|
||||
"arguments": '{"city": "Paris", "state": "TX"}'
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"role": "tool",
|
||||
"content": "The weather in Paris, TX is sunny, 22°C"
|
||||
}]
|
||||
"description": "Get the current weather in a given location",
|
||||
"parameters": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"city": {"type": "string"},
|
||||
"state": {"type": "string"},
|
||||
},
|
||||
"required": ["city", "state"],
|
||||
},
|
||||
},
|
||||
}
|
||||
]
|
||||
|
||||
# Test 1: Tool message with string content
|
||||
messages_string = [
|
||||
{"role": "user", "content": "What's the weather in Paris?"},
|
||||
{
|
||||
"role": "assistant",
|
||||
"tool_calls": [
|
||||
{
|
||||
"id": "call_123",
|
||||
"type": "function",
|
||||
"function": {
|
||||
"name": "get_weather",
|
||||
"arguments": '{"city": "Paris", "state": "TX"}',
|
||||
},
|
||||
}
|
||||
],
|
||||
},
|
||||
{"role": "tool", "content": "The weather in Paris, TX is sunny, 22°C"},
|
||||
]
|
||||
|
||||
response_string = await gptoss_client.chat.completions.create(
|
||||
model=GPT_OSS_MODEL_NAME,
|
||||
@ -265,28 +263,28 @@ async def test_gpt_oss_tool_message_array_content(gptoss_client: OpenAI,
|
||||
assert response_string.choices[0].message is not None
|
||||
|
||||
# Test 2: Tool message with array content
|
||||
messages_array = [{
|
||||
"role": "user",
|
||||
"content": "What's the weather in Dallas?"
|
||||
}, {
|
||||
"role":
|
||||
"assistant",
|
||||
"tool_calls": [{
|
||||
"id": "call_456",
|
||||
"type": "function",
|
||||
"function": {
|
||||
"name": "get_weather",
|
||||
"arguments": '{"city": "Dallas", "state": "TX"}'
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"role":
|
||||
"tool",
|
||||
"content": [{
|
||||
"type": "text",
|
||||
"text": "f2e897a7-2705-4337-8193-2a8f57b81618"
|
||||
}]
|
||||
}]
|
||||
messages_array = [
|
||||
{"role": "user", "content": "What's the weather in Dallas?"},
|
||||
{
|
||||
"role": "assistant",
|
||||
"tool_calls": [
|
||||
{
|
||||
"id": "call_456",
|
||||
"type": "function",
|
||||
"function": {
|
||||
"name": "get_weather",
|
||||
"arguments": '{"city": "Dallas", "state": "TX"}',
|
||||
},
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
"role": "tool",
|
||||
"content": [
|
||||
{"type": "text", "text": "f2e897a7-2705-4337-8193-2a8f57b81618"}
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
response_array = await gptoss_client.chat.completions.create(
|
||||
model=GPT_OSS_MODEL_NAME,
|
||||
@ -299,34 +297,30 @@ async def test_gpt_oss_tool_message_array_content(gptoss_client: OpenAI,
|
||||
assert response_array.choices[0].message is not None
|
||||
|
||||
# Test 3: Tool message with multiple array content items
|
||||
messages_multi_array = [{
|
||||
"role": "user",
|
||||
"content": "Search for information"
|
||||
}, {
|
||||
"role":
|
||||
"assistant",
|
||||
"tool_calls": [{
|
||||
"id": "call_789",
|
||||
"type": "function",
|
||||
"function": {
|
||||
"name": "get_weather",
|
||||
"arguments": '{"city": "Austin", "state": "TX"}'
|
||||
}
|
||||
}]
|
||||
}, {
|
||||
"role":
|
||||
"tool",
|
||||
"content": [{
|
||||
"type": "text",
|
||||
"text": "Weather data: "
|
||||
}, {
|
||||
"type": "text",
|
||||
"text": "Austin, TX - Partly cloudy, 25°C"
|
||||
}, {
|
||||
"type": "text",
|
||||
"text": " with 60% humidity"
|
||||
}]
|
||||
}]
|
||||
messages_multi_array = [
|
||||
{"role": "user", "content": "Search for information"},
|
||||
{
|
||||
"role": "assistant",
|
||||
"tool_calls": [
|
||||
{
|
||||
"id": "call_789",
|
||||
"type": "function",
|
||||
"function": {
|
||||
"name": "get_weather",
|
||||
"arguments": '{"city": "Austin", "state": "TX"}',
|
||||
},
|
||||
}
|
||||
],
|
||||
},
|
||||
{
|
||||
"role": "tool",
|
||||
"content": [
|
||||
{"type": "text", "text": "Weather data: "},
|
||||
{"type": "text", "text": "Austin, TX - Partly cloudy, 25°C"},
|
||||
{"type": "text", "text": " with 60% humidity"},
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
response_multi_array = await gptoss_client.chat.completions.create(
|
||||
model=GPT_OSS_MODEL_NAME,
|
||||
|
@ -260,8 +260,10 @@ def parse_chat_input(chat_msg) -> list[Message]:
|
||||
# Handle array format for tool message content
|
||||
# by concatenating all text parts.
|
||||
content = "".join(
|
||||
item.get("text", "") for item in content
|
||||
if isinstance(item, dict) and item.get("type") == "text")
|
||||
item.get("text", "")
|
||||
for item in content
|
||||
if isinstance(item, dict) and item.get("type") == "text"
|
||||
)
|
||||
|
||||
msg = Message.from_author_and_content(
|
||||
Author.new(Role.TOOL, f"functions.{name}"), content
|
||||
|
Reference in New Issue
Block a user