Commit b7f0b50
committed
fix(vllm): don't stream raw tool-call markup as content when a tool parser is active
When a tool_parser is configured and the request carries tools, the streaming
loop emitted every text delta as delta.content — including the model's raw
tool-call markup (e.g. <tool_call>...) — because extract_tool_calls only runs
on the full output after the stream. Clients streaming a tool call therefore
saw the unparsed tool-call syntax as assistant content, with the structured
tool_calls arriving only in the final chunk.
Buffer the text while a tool parser is active and let the existing end-of-stream
ChatDelta carry the parsed tool_calls; when no tool call is found, flush the
buffered content as a single content delta before the final chunk. Non-tool-parser
streaming is unchanged.
Signed-off-by: pos-ei-don <1822533+pos-ei-don@users.noreply.github.com>1 parent 9ba8521 commit b7f0b50
1 file changed
Lines changed: 15 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
597 | 597 | | |
598 | 598 | | |
599 | 599 | | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
600 | 606 | | |
601 | 607 | | |
602 | 608 | | |
603 | 609 | | |
604 | 610 | | |
605 | | - | |
| 611 | + | |
606 | 612 | | |
607 | 613 | | |
608 | 614 | | |
| |||
698 | 704 | | |
699 | 705 | | |
700 | 706 | | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
701 | 715 | | |
702 | 716 | | |
703 | 717 | | |
| |||
0 commit comments