Misc. bug: UI Feedback: Reasoning button visibility & disconnected Developer Settings

用户在 Windows 上运行 llama-server.exe (来自 ggml-org/llama.cpp 工具),通过命令行指定了 --reasoning on --reasoning-budget 8192 启动参数,用于支持 Gemma 4 等需要推理层级触发的模型。打开 WebUI 后发

Misc. bug: UI Feedback: Reasoning button visibility & disconnected Developer Settings

Misc. bug: UI Feedback: Reasoning button visibility & disconnected Developer Settings

快速结论:llama-server 在合并 PR #23434 后,UI 中的 reasoning 按钮(灯泡图标)默认关闭且难以发现,同时旧的开发者设置 “Enable thinking” 已失效。优先排查:确认启动参数是否包含 --reasoning on,并检查 UI 中新的 reasoning 按钮是否被正确继承命令行设置。

问题场景

用户在 Windows 上运行 llama-server.exe(来自 ggml-org/llama.cpp 工具),通过命令行指定了 --reasoning on --reasoning-budget 8192 启动参数,用于支持 Gemma 4 等需要推理层级触发的模型。打开 WebUI 后发现:

  • UI 中 reasoning 按钮(灯泡图标)默认灰色禁用,难以发现。
  • Developer Settings 中的 “Enable thinking” 复选框已无实际效果。
  • Gemma 4 模型(依赖 Jinja 模板中的 enable_thinking 标志)无法正常触发推理。

报错原文

# 用户描述的核心问题
"When I was troubleshooting why I didn't get any thinking with Gemma 4 (despite it being enabled in developer settings), I finally found the new awesome-but-hard-to-see reasoning button from #23434 in the chat view."

# 日志或配置中的关键证据
"Despite the server flag, the UI still initialized with `"enableThinking": false` in the settings JSON."

原因分析

这是一个 UI 与后端参数继承机制的 bug。可能原因包括:

  • 后端参数未传递到前端:即使启动了 --reasoning on,WebUI 在初始化新会话时,默认将 enableThinking 设为 false,覆盖了服务端命令行设定。
  • 旧的开发者设置残留:PR #23434 移除了旧的 “Enable thinking” 复选框功能,但未从 UI 中移除或改为引导链接,导致用户误以为该设置仍生效。
  • 视觉隐藏问题:reasoning 按钮默认灰色且图标(带斜杠的灯泡)与背景融合度过高,用户难以发现。
  • 会话设置持久化问题:浏览器端存储了前一次会话的 reasoning 状态,导致新会话继承旧值而非服务端默认值(即使点击 “Reset to default” 也无法重置)。

环境排查

  • llama.cpp 版本:确认构建版本是否包含 PR #23434 之后(2025 年 5 月前后)或 PR #25846 之前的补丁。
  • 启动参数:确认是否传递 --reasoning on--reasoning-budget(如果模型需要)。
  • 模型支持:确认使用的 GGUF 模型(如 Gemma 4)是否在 Jinja 模板中依赖 enable_thinking 变量注入 %<|think|>\n 标记。
  • 浏览器缓存:检查浏览器 localStorage 中是否存有旧的 reasoning 设置(可能干扰默认值)。
  • UI 布局:在高分辨率显示器上,观察聊天输入框左侧的灰色灯泡按钮是否可见。

解决步骤

  1. 升级到最新补丁:更新至包含 PR #25846 的版本。该补丁引入 “Default” 模式,允许后端基于 Jinja 模板或 CLI 设置自动决策,不再由前端硬编码覆盖。
  2. 清除浏览器缓存:打开浏览器开发者工具(F12),进入 Application → Local Storage,清除 localhost:8080 域下的所有数据,然后刷新页面。
  3. 手动启用 reasoning 按钮:在聊天输入框左侧找到灰色灯泡图标并点击启用(可优先尝试此操作,即使 UI 未显示为激活状态)。
  4. 验证启动参数(可优先尝试):在命令行中明确添加 --reasoning on,如果模型需要预算则加上 --reasoning-budget 8192。服务端应自动将参数传递给前端。
  5. 忽略旧的 Developer Settings:不再使用 “Enable thinking” 复选框(已失效)。如需重置,使用 “Reset to default” 按钮(注意:在 PR #25846 之前此按钮无法清除浏览器存储的 reasoning 状态)。

验证方法

重启 llama-server 后,在 WebUI 中新建聊天会话,观察 reasoning 按钮是否默认高亮(非灰色)。用 Gemma 4 发送一条测试提示,确认系统提示中已注入 <|think|>\n 标记(可在日志或 API 响应中检查)。同时检查 Developer Settings 中是否不再显示 “Enable thinking” 复选框,或显示为已弃用的提示。

参考来源

ggml-org/llama.cpp #24141
ggml-org/llama.cpp PR #25846(修复补丁)

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 14823

发表回复

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