From a11adafdcab61c059d2a76d952367a722e1b71d5 Mon Sep 17 00:00:00 2001 From: Jan Kessler Date: Thu, 28 Aug 2025 05:14:00 +0200 Subject: [PATCH] Gracefully handle edge cases in harmony utils (#23155) Signed-off-by: Jan Kessler Co-authored-by: Chen Zhang Co-authored-by: Cyrus Leung --- vllm/entrypoints/harmony_utils.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/vllm/entrypoints/harmony_utils.py b/vllm/entrypoints/harmony_utils.py index bc810f683f4a..078d31684425 100644 --- a/vllm/entrypoints/harmony_utils.py +++ b/vllm/entrypoints/harmony_utils.py @@ -155,7 +155,7 @@ def parse_chat_input(chat_msg) -> Message: contents = [TextContent(text=content)] else: # TODO: Support refusal. - contents = [TextContent(text=c["text"]) for c in content] + contents = [TextContent(text=c.get("text", "")) for c in content] msg = Message.from_role_and_contents(role, contents) return msg @@ -218,8 +218,8 @@ def parse_output_message(message: Message) -> list[ResponseOutputItem]: ) output_items.append(reasoning_item) elif message.channel == "commentary": - if message.recipient.startswith("functions."): - function_name = message.recipient.split(".")[-1] + if recipient is not None and recipient.startswith("functions."): + function_name = recipient.split(".")[-1] for content in message.content: random_id = random_uuid() response_item = ResponseFunctionToolCall( @@ -230,8 +230,8 @@ def parse_output_message(message: Message) -> list[ResponseOutputItem]: id=f"ft_{random_id}", ) output_items.append(response_item) - elif message.recipient.startswith( - "python") or message.recipient.startswith("browser"): + elif recipient is not None and (recipient.startswith("python") + or recipient.startswith("browser")): for content in message.content: reasoning_item = ResponseReasoningItem( id=f"rs_{random_uuid()}", @@ -245,7 +245,7 @@ def parse_output_message(message: Message) -> list[ResponseOutputItem]: ) output_items.append(reasoning_item) else: - raise ValueError(f"Unknown recipient: {message.recipient}") + raise ValueError(f"Unknown recipient: {recipient}") elif message.channel == "final": contents = [] for content in message.content: