
bug: Open WebUI is slow to submit and process responses in long chats
快速结论:该问题主要发生在使用 Open WebUI 进行长对话(例如超过 20-30 条消息)时,尤其在移动端的浏览器或 Web App 模式下(如添加到 iPhone 主屏幕或 macOS Dock)。优先排查是否在 Web App 模式(PWA)下使用,并更新至最新版本的 Open WebUI,因为近期的版本已经大幅优化了消息和聊天的渲染性能。
问题场景
用户在使用 Open WebUI(Docker 部署,版本 v0.3.16)与 Ollama 后端交互时,进行长时间连续对话。问题在移动端(iOS/Android)浏览器或 PWA 模式下尤为显著,电脑端虽也有类似现象但相对轻微。例如,一个包含约 90 条消息(约 45 条用户消息和 45 条助手消息)的对话,提交和响应时间会从原本的秒级延迟到几分钟。
报错原文
无具体报错文本。表现为界面操作(提交消息、显示响应)显著卡顿,但后台 Ollama 的推理和返回时间正常(例如一条 10 秒生成的回复,在 UI 上可能需要几分钟才能完全显示)。核心问题是 UI (SvelteKit 组件) 在渲染大量消息时的性能瓶颈。
原因分析
根本原因是 Open WebUI 的前端(基于 SvelteKit)在渲染大量聊天消息时,性能和内存管理没有得到足够优化。具体来说:
- 可能原因:页面中累积的 SvelteKit 组件过多,导致 DOM 操作和渲染循环阻塞。
- 可能原因:Spinner 或动画等非必要组件在长列表中不断刷新,消耗大量主线程资源。
- 可能原因:浏览器缓存和增量更新机制未能有效处理长会话,导致每次交互都重新渲染大量内容。
注意:该项目维护者(@tjbck)表示后续版本已经显著改善了渲染性能(3-4 倍提升),但复杂长文场景仍有优化空间。
环境排查
- Open WebUI 版本:确认是否已经更新到最新版(如 v0.3.17 或更高版本)。Issue 报告中提到 v0.3.16 仍有此问题,但近期版本有针对渲染性能的大幅优化。
- 使用模式:确认是否在“Web App 模式”(PWA,如通过 Safari 添加到主屏幕或 macOS Dock)下使用。部分用户反馈该模式下问题更严重。
- 设备与浏览器:确认是否 iPhone/Android 手机、iPad 或低配置电脑(如 2015 MacBook Pro)上使用。问题在性能较弱的设备上更明显。
- Ollama 日志:确认 Ollama 返回推理结果的时间是否正常(例如,检查 Ollama 日志或 Open WebUI 后端的响应计时)。Issue 中提及推理时间(10 秒)远小于 UI 渲染时间(几分钟),确认瓶颈在前端。
解决步骤
可优先尝试:更新 Open WebUI 至最新版本。项目在 v0.3.17 及之后版本中针对消息和聊天渲染做了 3-4 倍速度提升。
- 更新 Open WebUI:如果是 Docker 部署,重新拉取最新镜像:
docker pull ghcr.io/open-webui/open-webui:main(请注意:Issue 中没有给出具体命令,此为通用操作,请以实际文档为准)
重新启动容器,确保使用最新代码。 - 切换运行模式:如果使用 PWA 模式(将网页添加到主屏幕),尝试直接在 Safari/Chrome 浏览器中打开 WebUI,观察是否改善。
- 清理会话/缩短上下文:
- 如果对话过长,考虑开启新对话(New Chat)来避免累积大量历史消息。
- 检查是否启用了“内存”或“代码解释器”等占用大量历史消息的功能。
- 关闭不必要的浏览器插件/标签页:尤其是广告拦截、脚本管理类插件可能干扰 WebUI 的 WebSocket 或进程。
- 在电脑端尝试:如果问题主要在移动端出现,可以临时使用电脑浏览器进行长对话,待优化版本更新后再切换回移动端。
验证方法
在更新版本或更改使用模式后,进行一个包含 30 条以上消息的连续对话。观察:
- 消息提交到开始显示响应的延迟时间。
- 流式输出的流畅度(是否会变成一次性输出/非流式效果)。
- UI 交互是否仍会卡顿几分钟。
如果更新后长对话的交互延迟从几分钟降低到秒级(例如 10-15 秒以内),说明问题已解决。



