Skip to content

fix(deps): update github.com/donomii/go-rwkv.cpp digest to a57bca3#582

Merged
mudler merged 1 commit into
masterfrom
renovate/github.com-donomii-go-rwkv.cpp-digest
Jun 14, 2023
Merged

fix(deps): update github.com/donomii/go-rwkv.cpp digest to a57bca3#582
mudler merged 1 commit into
masterfrom
renovate/github.com-donomii-go-rwkv.cpp-digest

Conversation

@renovate

@renovate renovate Bot commented Jun 13, 2023

Copy link
Copy Markdown
Contributor

Mend Renovate

This PR contains the following updates:

Package Type Update Change
github.com/donomii/go-rwkv.cpp require digest d2b25a4 -> a57bca3

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate Bot changed the title fix(deps): update github.com/donomii/go-rwkv.cpp digest to 5659d04 fix(deps): update github.com/donomii/go-rwkv.cpp digest to 930a774 Jun 13, 2023
@renovate renovate Bot force-pushed the renovate/github.com-donomii-go-rwkv.cpp-digest branch from 1b8918d to bca3e24 Compare June 13, 2023 13:17
@renovate renovate Bot changed the title fix(deps): update github.com/donomii/go-rwkv.cpp digest to 930a774 fix(deps): update github.com/donomii/go-rwkv.cpp digest to a57bca3 Jun 14, 2023
@renovate renovate Bot force-pushed the renovate/github.com-donomii-go-rwkv.cpp-digest branch from bca3e24 to 5da6bea Compare June 14, 2023 14:29
@mudler mudler merged commit 1ba8825 into master Jun 14, 2023
@mudler mudler deleted the renovate/github.com-donomii-go-rwkv.cpp-digest branch June 14, 2023 17:14
pos-ei-don added a commit to pos-ei-don/LocalAI that referenced this pull request Jun 15, 2026
pos-ei-don added a commit to pos-ei-don/LocalAI that referenced this pull request Jun 15, 2026
pos-ei-don added a commit to pos-ei-don/LocalAI that referenced this pull request Jun 19, 2026
…ool parser (Case 3, mudler#582)

Signed-off-by: pos-ei-don <1822533+pos-ei-don@users.noreply.github.com>
pos-ei-don added a commit to pos-ei-don/LocalAI that referenced this pull request Jun 19, 2026
…ve prefix (TDD, Option B state machine, mudler#582)

Signed-off-by: pos-ei-don <1822533+pos-ei-don@users.noreply.github.com>
mudler pushed a commit that referenced this pull request Jun 21, 2026
…ming (follow-up to #10346) (#10351)

* 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.

Buffer the text while a tool parser is active for the request; the existing
end-of-stream chat_delta already carries the parsed tool_calls (or the cleaned
content), which the Go side converts to SSE deltas. Non-tool-parser streaming
is unchanged.

Add a server-less regression test covering both the tool-call case (no raw
markup leaked as content) and the plain-text case (content delivered exactly
once — guards against double-emitting the buffered content).

Signed-off-by: pos-ei-don <1822533+pos-ei-don@users.noreply.github.com>

* test(vllm): add expectedFailure test for progressive streaming with tool parser (Case 3, #582)

Signed-off-by: pos-ei-don <1822533+pos-ei-don@users.noreply.github.com>

* test(vllm): add Cases 4+5 — marker split across chunks + false-positive prefix (TDD, Option B state machine, #582)

Signed-off-by: pos-ei-don <1822533+pos-ei-don@users.noreply.github.com>

* feat(vllm): progressive streaming via parser.extract_tool_calls_streaming

When a tool parser is active for a tool-enabled streaming request,
#10346 buffers the entire generation and surfaces it on the final
chunk to prevent raw tool-call markup from leaking as delta.content.
This is correct but turns the request into effectively non-streaming
for plain-text responses — the client sees nothing until the model
stops.

Every concrete tool parser shipped with vLLM 0.23+ already implements
extract_tool_calls_streaming (Granite4, Qwen3Coder, DeepSeekV31, Jamba,
Ernie45, Hermes2Pro, llama3_json, mistral, …). Use it: instantiate
the parser before the streaming loop and call its streaming method per
delta, emitting DeltaMessage(content=…) or DeltaMessage(tool_calls=[…])
when the parser is ready.

Falls back to the existing #10346 buffer path when:
  - the parser does not have extract_tool_calls_streaming, OR
  - extract_tool_calls_streaming raises mid-stream (logged, the
    rest of the request finishes via post-loop extract_tool_calls).

Tests (TestStreamingToolParser):
  1. Buffer path: no markup leaked, no content duplication
  2. Native streaming: plain-text response streams progressively
  3. Native streaming: tool_call structured, no markup leaked
  4. Native streaming exception → graceful fallback, no markup, no crash
  5. No tool parser → unchanged per-delta content stream

E2E verified against qwen3_coder on vLLM 0.23.0 (NVIDIA GB10 / arm64 / CUDA 13).

Signed-off-by: pos-ei-don <1822533+pos-ei-don@users.noreply.github.com>

* docs(vllm): add server-side TTFT benchmark for the streaming tool-parser path

Self-contained stdlib-only script that measures time-to-first-token (TTFT)
for the vLLM backend's two streaming scenarios:

  - tool_call:  request mentions a tool; model is expected to call it
  - plain_text: request offers a tool but explicitly asks for prose

Use this to compare:
  - the buffer-all path (#10346)         → plain_text TTFT ≈ total response time
  - the native-streaming path (this PR)  → plain_text TTFT ≈ true first-token time

  python examples/vllm-bench/ttft_streaming_tool_parser.py \\
      --url http://localhost:8080 --model my-coder --runs 3

Lives under examples/ so it does not interfere with the test suite.

Signed-off-by: pos-ei-don <1822533+pos-ei-don@users.noreply.github.com>

* examples/vllm-bench: add long-text scenario (8 paragraphs, 1500 tokens)

The long-text scenario shows the buffering vs streaming difference most
dramatically: with the buffer-all path, the client receives nothing for
20+ seconds and then the entire 1500-token response at once. With native
streaming, the first token arrives in tens of milliseconds and the
response flows progressively.

Signed-off-by: pos-ei-don <1822533+pos-ei-don@users.noreply.github.com>

---------

Signed-off-by: pos-ei-don <1822533+pos-ei-don@users.noreply.github.com>
Co-authored-by: Philipp Wacker <philipp.wacker@ibf-solutions.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant