issue: A chat opened while its model is unavailable loses that model for good

这个报错通常发生在打开一个历史聊天、而该聊天原先使用的模型当时不可用(例如模型预设被关闭、连接中断)时:界面会临时回退到默认模型,并在约一秒后的自动保存中把默认模型写回聊天记录,导致原模型恢复可用后聊天仍固定使用默认模型。优先排查的是“打开聊天后是否触发了自动保存”,以及该聊天保存的模型 ID 是否

快速结论:这个报错通常发生在打开一个历史聊天、而该聊天原先使用的模型当时不可用(例如模型预设被关闭、连接中断)时:界面会临时回退到默认模型,并在约一秒后的自动保存中把默认模型写回聊天记录,导致原模型恢复可用后聊天仍固定使用默认模型。优先排查的是“打开聊天后是否触发了自动保存”,以及该聊天保存的模型 ID 是否已被覆盖。

适用环境:Open WebUI dev 分支(7f03b6e77,Git Clone 安装),Linux,Firefox,Ollama v0.40.12,默认设置。Issue 未提供 Python、CUDA、PyTorch 或显卡信息。

最快修复方案:暂无确认的一步修复方案。该问题已在 dev 分支由 193cf225f 修复,修复后聊天只在你于模型选择器中主动选择模型时才保存模型,因此模型不可用期间显示的默认模型不再覆盖原模型。可尝试升级到包含该提交的版本。

注意事项:193cf225f 之前是否存在已验证的临时规避方法,Issue 中未说明;对于已经被覆盖的历史聊天,Issue 也没有给出恢复原模型记录的方案,可能需要手动重新选择模型。修复提交的作者表示未手动走完复现流程,且因前端依赖不可用未能运行 npm run check,修复效果以实际升级后验证为准。

问题场景

在 Open WebUI 中通过 Workspace > Models 创建自定义模型预设(例如命名为 “Preset Test”),用该预设开始新聊天并完成一轮对话。随后在 Workspace > Models 中把该预设的开关关闭,再从侧边栏点击打开这条聊天。此时模型选择器会显示默认模型,等待约 2 秒后再把预设开关重新打开,重新打开或刷新该聊天,模型选择器依然停留在默认模型,而不是原来的预设。

报错原文

issue: A chat opened while its model is unavailable loses that model for good

原因分析

根据 Issue 正文和提交者的排查说明,最可能的原因是前端加载聊天时的模型过滤与自动保存逻辑叠加:

  • Chat.svelte 在加载聊天时,会把聊天中保存的模型 ID 与当前可用模型列表做过滤;当保存的模型都不在可用列表中时,就回退到默认模型。
  • 聊天的自动保存会在打开约一秒后执行,并且保存的是“当前选中的模型”。当原模型不可用时,当前选中的是回退后的默认模型,于是默认模型被写回聊天记录,覆盖了原始模型 ID。
  • 因此模型恢复可用后,聊天保存的模型已经是默认模型,回退状态被“固化”,表现为永久丢失原模型。

提交者给出的修复思路是:在回退生效期间,自动保存仍保留聊天原始的模型 ID,而请求仍使用可用的回退模型;只有用户在模型选择器中显式选择模型时,才清除保留的原始值。这只说明修复方向,不等同于对所有用户都已验证的行为。

环境排查

  • 确认 Open WebUI 版本:Issue 在 dev(7f03b6e77)上复现;需确认当前版本是否包含修复提交 193cf225f。
  • 确认安装方式:Issue 使用 Git Clone,更新后需确认前端资源已重新构建或拉取到最新产物。
  • 确认浏览器:Issue 使用 Firefox,可对比其他浏览器确认是否为前端逻辑问题而非浏览器特有问题。
  • 确认 Ollama 版本:Issue 为 v0.40.12,仅作环境对照。
  • 确认触发条件:聊天所绑定的模型预设确实处于关闭状态或连接不可用,且打开聊天后有约 1–2 秒的自动保存窗口。
  • Issue 未提供 Python、CUDA、PyTorch、显卡信息,无需据此排查。

解决步骤

  1. 记录当前 Open WebUI 版本与部署方式,确认是否已包含修复提交 193cf225f(或等效逻辑:仅显式选择模型时才保存聊天模型)。
  2. 如未包含,可优先尝试升级到包含该提交的 dev 版本,并按部署方式完成前后端更新与前端资源重建。
  3. 升级后用原来的复现路径验证:打开模型不可用的聊天,等待自动保存窗口结束后确认界面回退显示默认模型。
  4. 重新启用该模型预设,再打开或刷新聊天,检查模型选择器是否恢复为原模型。
  5. 对已被覆盖的旧聊天,Issue 未提供自动恢复手段,可能需要在该聊天中手动重新选择原模型。
  6. 若需自行验证中间状态,可参考提交者分支 fix/33310-preserve-unavailable-chat-model(commit b14d1b06d),但该分支未经完整流程手动验证,仅作参考。

验证方法

按 Issue 的复现步骤完整走一遍:创建预设并完成一轮对话 → 关闭预设 → 打开该聊天并等待超过自动保存窗口(约 2 秒)→ 重新启用预设 → 再次打开或刷新聊天。修复生效时,模型选择器应重新显示原预设,而不是默认模型。还需确认在此期间未在模型选择器中手动切换过模型,因为显式选择按修复设计会正常覆盖保存值。

参考来源

open-webui/open-webui #33310

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 31340

发表回复

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