From 720d3cd0f05b6f4b7df6a0a70a64b551401b9526 Mon Sep 17 00:00:00 2001 From: Chauncey Date: Fri, 10 Oct 2025 18:02:12 +0800 Subject: [PATCH] [CI] fix ruff format (#26579) Signed-off-by: chaunceyjiang --- tests/entrypoints/openai/test_serving_chat.py | 170 +++++++++--------- vllm/entrypoints/harmony_utils.py | 6 +- 2 files changed, 86 insertions(+), 90 deletions(-) diff --git a/tests/entrypoints/openai/test_serving_chat.py b/tests/entrypoints/openai/test_serving_chat.py index 1a78efde8f0f0..10224dee0efe8 100644 --- a/tests/entrypoints/openai/test_serving_chat.py +++ b/tests/entrypoints/openai/test_serving_chat.py @@ -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, diff --git a/vllm/entrypoints/harmony_utils.py b/vllm/entrypoints/harmony_utils.py index 596d42ea5962b..53a08b1a4485c 100644 --- a/vllm/entrypoints/harmony_utils.py +++ b/vllm/entrypoints/harmony_utils.py @@ -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