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)
_parse_browser_tool_call ¶
_parse_browser_tool_call(
message: Message, recipient: str
) -> ResponseOutputItem
Parse browser tool calls (search, open, find) into web search items.
Source code in vllm/entrypoints/openai/responses/harmony.py
_parse_chat_format_message ¶
Parse an OpenAI chat-format dict into Harmony messages.
Source code in vllm/entrypoints/openai/responses/harmony.py
_parse_final_message ¶
Parse final channel messages into output message items.
Source code in vllm/entrypoints/openai/responses/harmony.py
_parse_function_call ¶
Parse function calls into function tool call items.
Source code in vllm/entrypoints/openai/responses/harmony.py
_parse_harmony_format_message ¶
_parse_harmony_format_message(chat_msg: dict) -> Message
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 ¶
Parse MCP calls into MCP call items.
Source code in vllm/entrypoints/openai/responses/harmony.py
_parse_mcp_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 ¶
_parse_message_no_recipient(
message: Message,
) -> list[ResponseOutputItem]
Parse a Harmony message with no recipient based on its channel.
Source code in vllm/entrypoints/openai/responses/harmony.py
_parse_reasoning ¶
_parse_reasoning(
message: Message,
) -> list[ResponseOutputItem]
Parse reasoning/analysis content into reasoning items.
Source code in vllm/entrypoints/openai/responses/harmony.py
construct_harmony_previous_input_messages ¶
construct_harmony_previous_input_messages(
request: ResponsesRequest,
) -> list[Message]
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 ¶
harmony_to_response_output(
message: Message,
) -> list[ResponseOutputItem]
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
parser_state_to_response_output ¶
parser_state_to_response_output(
parser: StreamableParser,
) -> list[ResponseOutputItem]
Extract in-progress response items from incomplete parser state.
Called when the parser has buffered content that hasn't formed a complete message yet (e.g., generation was cut short).
Source code in vllm/entrypoints/openai/responses/harmony.py
441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 | |
response_input_to_harmony ¶
response_input_to_harmony(
response_msg: ResponseInputOutputItem,
prev_responses: list[
ResponseOutputItem | ResponseReasoningItem
],
) -> Message
Convert a single ResponseInputOutputItem into a Harmony Message.
Source code in vllm/entrypoints/openai/responses/harmony.py
response_previous_input_to_harmony ¶
response_previous_input_to_harmony(
chat_msg,
) -> list[Message]
Parse a message from request.previous_input_messages into Harmony messages.
Supports both OpenAI chat format ({"role": "..."}) and Harmony format ({"author": {"role": "..."}}).