Misc. bug: `reasoningEffort` not pre-settable in the json web ui options

用户在使用 llama.cpp 的 llama-server 模块启动 WebUI 时,希望通过 json 配置文件(如 `config.json`)预设默认的推理深度选项(例如 "low"、"medium"、"high"),但发现 json 选项中仅有 `enableThinking`(布尔值,控

Misc. bug: `reasoningEffort` not pre-settable in the json web ui options

Misc. bug: `reasoningEffort` not pre-settable in the json web ui options

快速结论:该问题发生在 llama.cpp 的 llama-server WebUI 中,使用 json 配置文件启动时,无法通过配置项预设推理深度级别(reasoningEffort),只能全局开关思考功能(enableThinking)。优先排查是否在 WebUI 配置 JSON 中缺少 `reasoningEffort` 键,或检查服务器启动时是否使用了正确的 CLI 标志(如 `–reasoning` / `–reasoning-budget`)来间接控制默认值。

问题场景

用户在使用 llama.cpp 的 llama-server 模块启动 WebUI 时,希望通过 json 配置文件(如 `config.json`)预设默认的推理深度选项(例如 “low”、”medium”、”high”),但发现 json 选项中仅有 `enableThinking`(布尔值,控制思考功能的启用/禁用),缺少 `reasoningEffort` 字段。该问题在 commit f8e67fc 中引入。

报错原文

It doesn't offer a way to set the default reasoning level for the web ui via the json options, only to enable or disable reasoning entirely with the new option `enableThinking`.

原因分析

这是 llama.cpp WebUI 的一个功能缺失(feature gap),而非报错。WebUI 的 json 配置文件中没有实现 `reasoningEffort` 键,导致用户无法在配置中预设推理深度(如 low / medium / high),只能通过布尔值 `enableThinking` 全局开启或关闭推理能力。社区讨论指出,推理深度级别(reasoning levels)是特定于某些 LLM(如 DeepSeek 和 GLM)的功能,通常通过模型的 Jinja 模板处理,但新版 WebUI 已内置支持,只是缺失了 json 配置入口。

可能的解决办法包括:

  • 可优先尝试:通过命令行参数设置默认推理预算和力度,例如 --reasoning-budget 4096--reasoning-budget-message "</think> [TIME TO ANSWER]",这些参数会在服务器端生效,间接控制 WebUI 的行为。
  • 社区 PR #25846 添加了 “Default” 选项到推理选择器中,使得新用户默认使用服务器端的 CLI 标志(如 –reasoning, –reasoning-budget)和模型的 Jinja 模板,从而无需在 JSON 中预设单个固定的 `reasoningEffort`。
  • 部分用户注意到 WebUI 中的推理选项默认是关闭的,这可能降低模型性能,因为许多现代模型默认启用推理以提高性能。

环境排查

  • llama.cpp 版本(在 commit f8e67fc 之后,例如 2024/2025 年中期版本)
  • 是否使用 llama-server 模块启动 WebUI
  • 是否通过 json 配置文件(如 config.json)启动,且文件内容包含 "enableThinking": true 但无 reasoningEffort
  • 模型类型是否支持多级推理深度(如 DeepSeek、GLM 系列)
  • 浏览器本地存储中是否曾手动设置过推理级别(UI 会记忆用户选择,见评论)

解决步骤

  1. 确认问题本质:这不是一个报错,而是配置项缺失。您希望默认预设推理深度,但 JSON 配置中不支持。
  2. 使用服务器端命令行参数来间接控制默认行为(可优先尝试):
    ./llama-server --reasoning --reasoning-budget 4096 --reasoning-budget-message "</think> [TIME TO ANSWER]"
    这样设置后,WebUI 中会默认启用推理,并限制预算,无需在 JSON 中设置 reasoningEffort
  3. 检查是否已使用较新的版本(包含 PR #25846 之后):如果升级后的 WebUI 在推理选择器中新增了 “Default” 选项,选择该选项即可使用服务器端标志作为默认值。
  4. 如果您必须通过 JSON 配置文件实现:目前社区尚未接受将 reasoningEffort 加入 JSON 配置的方案。您可以关注 #25846 及相关 issue,等待未来实现。
  5. 手动在 WebUI 中选择一次:WebUI 会将用户选择存储在浏览器本地存储中,只需手动选择一次所需的推理级别即可。

验证方法

启动 llama-server 后,打开 WebUI(通常为 http://localhost:8080),查看推理深度选择器的默认选项:

  • 如果使用命令行参数设置(–reasoning-budget 等)且客户端未存储过自定义选择,默认应显示 “Default” 或与 CLI 设置匹配的状态。
  • 如果使用新版 UI 且选择 “Default”,推理应依据服务器端标志和模型模板自动启用。
  • 如果希望预设具体值(如 “high”),目前需通过浏览器存储手动设置,或在 JSON 配置中添加自定义字段(不官方支持)。

参考来源

ggml-org/llama.cpp #24051

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

celebrityanime
celebrityanime
文章: 14823

发表回复

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