Misc. bug: Server SSE replay (#23226) breaks in router mode – “Stop generation” doesn’t work, text doesn’t recover on F5, sidebar status dis

在 router 模式下,模型名称包含斜杠(如 ggml-org/...::model )会导致对话 ID 在路径参数中被截断,进而使“停止生成”失效、页面刷新后文本丢失、侧边栏状态消失。优先检查模型名称是否包含斜杠,并应用对应修复补丁(commit 8bc2246 )。

快速结论:在 router 模式下,模型名称包含斜杠(如 ggml-org/...::model)会导致对话 ID 在路径参数中被截断,进而使“停止生成”失效、页面刷新后文本丢失、侧边栏状态消失。优先检查模型名称是否包含斜杠,并应用对应修复补丁(commit 8bc2246)。

适用环境:仅确认在 Windows 系统、llama-server 版本 10106(Git 1425386fd,Clang 20.1.8 编译)的 router 模式下触发;单个模型模式或自定义 GGUF 集合模式不受影响。

最快修复方案:应用 commit 8bc2246,该修复可解决停止生成、刷新后恢复会话的主要问题。

注意事项:“停止生成”在模型加载阶段(weight loading / prefill)仍可能偶发异常,需额外应用 PR #26137 以及其上方的 commit b8c0ffa7c271ad 才能完全修复。

问题场景

用户在 Windows 上启动 llama-server 并使用 WebUI 与多个模型交互。典型启动命令:llama-server -lv 3 --port 8080 --models-autoload。当在 WebUI 中开始生成后,点击 prompt 输入框旁的“stop”按钮、或刷新页面(F5),出现以下症状:停止操作无效(生成继续)、页面刷新后之前生成的文本消失、侧边栏状态指示器和停止按钮不恢复(或显示警告 router stop for unknown conv_id=...)。该问题仅在 router 模式下复现,单个模型模式 SSE 行为正常。

报错原文

router stop for unknown conv_id=..., no owning child in the conv map

原因分析

根本原因是模型名称中包含斜杠(例如 ggml-org/Qwen3.5-0.8B-GGUF:Q4_0)。在 router 模式下,WebUI 会将 ::model 附加到对话 ID 上,形成的 ID 形如 4a09c75b-...::ggml-org/Qwen3.5-0.8B-GGUF:Q4_0。该 ID 被用于 /v1/stream/:conv_id 路径,当服务器解析路径参数时,conv_id 中的斜杠会导致参数在解码时被截断,使得“停止”和“恢复”请求无法匹配正确的会话。单个模型模式下对话 ID 没有 ::model 后缀,因此不受影响。

环境排查

  • llama-server 版本 ≥ b9994 且 ≤ b9910(或包含 SSE replay 的 commit 1a87dcdc452de056a66796b679e4ba7071488cf7 之后的版本)
  • 必须启用 router 模式(–models-autoload 或显式指定多个模型)
  • 模型名称必须包含斜杠(如 author/model 格式的 Hugging Face 模型 ID)
  • 操作系统:仅确认 Windows

解决步骤

  1. 备份原有 llama-server 二进制文件或源代码。
  2. 应用修复 commit 8bc2246(直接包含对 conv_id 路径参数截断问题的处理)。
  3. 如果需要在模型加载阶段也能正确停止,请同时应用以下三个 commit(按顺序):
    1. b8c0ffa
    2. 7c271ad
    3. 8bc2246
  4. 重新编译 llama-server(参考官方构建指南),或等待包含这些修复的官方发布版本。

验证方法

在 WebUI 中执行以下步骤确认修复效果:
1. 使用包含斜杠的模型(如 ggml-org/Qwen3.5-0.8B-GGUF:Q4_0)。
2. 开始生成一段文本。
3. 点击 prompt 输入框旁的“stop”按钮,观察生成是否立即停止。
4. 刷新页面(F5),确认之前生成的文本完整恢复,侧边栏状态指示器显示正确。
5. 若已应用加载阶段修复补丁,则在模型加载过程中点击“stop”,确认不会出现 router stop for unknown conv_id 错误。

参考来源

ggml-org/llama.cpp #26093

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 15320

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注