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.
-
parser_state_to_response_output–Extract in-progress response items from incomplete parser state.
-
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) ¶
Parse final channel messages into output message items.
Source code in vllm/entrypoints/openai/responses/harmony.py
_parse_function_call(message, recipient) ¶
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) ¶
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) ¶
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=None) ¶
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, function_tool_names=None) ¶
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
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 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 | |
response_input_to_harmony(response_msg, prev_responses) ¶
Convert a single ResponseInputOutputItem into a Harmony Message.
Returns None for reasoning items with empty or absent content so the caller can skip them.
Source code in vllm/entrypoints/openai/responses/harmony.py
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": "..."}}).