• Stefy Lanza (nextime / spora )'s avatar
    broker: stream keepalive "thinking" chunks during slow load so reply is never empty · 9fb637c6
    Stefy Lanza (nextime / spora ) authored
    Even after the readiness retries, a brokered stream could still reach the client
    empty: when the model falls back to CPU offload after a VRAM OOM, the load + first
    prefill can take tens of seconds during which the engine sends no SSE bytes, so the
    relay/client times out and shows an empty/errored reply.
    
    Keep the stream alive end-to-end: await the engine response and read its stream via
    a background task, pulling with a timeout. On any gap (long load wait, or slow
    first token) emit a visible "the model is thinking..." chunk once - a reasoning_content
    delta when thinking is enabled (enable_thinking/thinking, or a known reasoning model,
    unless reasoning_effort==none), otherwise a plain content message - then cheap
    SSE-comment pings to hold the connection without further polluting the reply. Fast
    responses see no gap and thus no keepalive. Slowness is fine; an empty reply is not.
    Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01RdMufYvtTbtGDWsiZVoXce
    9fb637c6
Name
Last commit
Last update
..
__init__.py Loading commit data...
admin_data.py Loading commit data...
app.py Loading commit data...
assignment.py Loading commit data...
engine_supervisor.py Loading commit data...
gpu_detect.py Loading commit data...
registry.py Loading commit data...
reqqueue.py Loading commit data...
router.py Loading commit data...
ui_pages.py Loading commit data...