vllm.entrypoints.openai.responses.harmony
¶
Harmony ↔ Responses API conversion utilities.
Handles two directions
- Response Input → Harmony Messages (input parsing)
- Harmony Messages → Response Output Items (output parsing)
Functions:
-
construct_harmony_previous_input_messages–Build a Harmony message list from request.previous_input_messages.
-
harmony_to_response_output–Parse a Harmony message into a list of output response items.
-
response_input_to_harmony–Convert a single ResponseInputOutputItem into a Harmony Message.
-
response_previous_input_to_harmony–Parse a message from request.previous_input_messages
_parse_browser_tool_call(message, recipient)
¶
Parse browser tool calls (search, open, find) into web search items.
Source code in vllm/entrypoints/openai/responses/harmony.py
_parse_chat_format_message(chat_msg)
¶
Parse an OpenAI chat-format dict into Harmony messages.
Source code in vllm/entrypoints/openai/responses/harmony.py
_parse_final_message(message, incomplete=False)
¶
Parse final channel messages into output message items.
Source code in vllm/entrypoints/openai/responses/harmony.py
_parse_function_call(message, recipient, incomplete=False)
¶
Parse function calls into function tool call items.
Source code in vllm/entrypoints/openai/responses/harmony.py
_parse_harmony_format_message(chat_msg)
¶
Reconstruct a Message from Harmony-format dict, preserving channel, recipient, and content_type.
Source code in vllm/entrypoints/openai/responses/harmony.py
_parse_mcp_call(message, recipient, incomplete=False)
¶
Parse MCP calls into MCP call items.
Source code in vllm/entrypoints/openai/responses/harmony.py
_parse_mcp_recipient(recipient)
¶
Parse MCP recipient into (server_label, tool_name).
For dotted recipients like "repo_browser.list": - server_label: "repo_browser" (namespace/server) - tool_name: "list" (specific tool)
For simple recipients like "filesystem": - server_label: "filesystem" - tool_name: "filesystem"
Source code in vllm/entrypoints/openai/responses/harmony.py
_parse_message_no_recipient(message, incomplete=False)
¶
Parse a Harmony message with no recipient based on its channel.
Source code in vllm/entrypoints/openai/responses/harmony.py
_parse_reasoning(message)
¶
Parse reasoning/analysis content into reasoning items.
Source code in vllm/entrypoints/openai/responses/harmony.py
construct_harmony_previous_input_messages(request)
¶
Build a Harmony message list from request.previous_input_messages.
Filters out system/developer messages to match OpenAI behavior where instructions are always taken from the most recent Responses API request.
Source code in vllm/entrypoints/openai/responses/harmony.py
harmony_to_response_output(message, function_tool_names, incomplete=False)
¶
Parse a Harmony message into a list of output response items.
This is the main dispatcher that routes based on channel and recipient.
Source code in vllm/entrypoints/openai/responses/harmony.py
response_input_to_harmony(response_msg, prev_responses)
¶
Convert a single ResponseInputOutputItem into a Harmony Message.
Returns None for system/developer messages with empty content so the caller can skip them. Reasoning items with empty or absent content (e.g. placeholders from history replay) are converted to empty assistant messages to preserve the conversation structure.
Source code in vllm/entrypoints/openai/responses/harmony.py
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 | |
response_previous_input_to_harmony(chat_msg)
¶
Parse a message from request.previous_input_messages into Harmony messages.
Supports both OpenAI chat format ({"role": "..."}) and Harmony format ({"author": {"role": "..."}}).