常见问题
本页整理 OPL 数据空间使用过程中最常见的问题与答案。它覆盖部署、更新、容器、身份认证、RAG、音频和模型识别等主题。
常见方向
为什么我更新镜像后看起来没有任何变化?
仅仅 docker pull 最新镜像并不会更新正在运行的容器。正确流程通常是:
- 拉取新镜像
- 停止并删除旧容器
- 用相同的数据卷重新启动新容器
如果你使用了持久化卷,数据不会因为替换容器而丢失。
删除容器会不会丢数据?
只要你正确挂载了数据卷,例如:
-v open-webui:/app/backend/data你的数据就不会随着容器删除而消失。真正危险的情况,是你把数据写在容器内部而没有挂卷。
为什么重启后总是被登出,或者工具 token 解密失败?
常见原因是没有设置固定的 WEBUI_SECRET_KEY。如果这个值每次启动都变化:
- 旧的登录 cookie 会失效
- 存储在系统中的敏感 token 无法再解密
解决方法:在环境变量中设置稳定、固定的 WEBUI_SECRET_KEY。
为什么我重启后需要重新创建账号,聊天记录也没了?
通常说明你没有把 /app/backend/data 正确挂载到持久卷,或者之前的数据卷被误删。
为什么创建了新账号却提示需要管理员激活?
因为第一次创建的账号会自动成为管理员。如果你丢失了那个管理员账号的密码,后续新建账号就需要管理员批准。请参考 重置管理员密码。
为什么 Speech-to-Text / Text-to-Speech 不能用?
浏览器层面的 STT/TTS 往往依赖 HTTPS。若部署没有配置 HTTPS,很多浏览器会直接限制相关能力。
为什么 OPL 数据空间不内建 HTTPS?
因为不同部署环境差异极大,统一内建 HTTPS 往往反而限制灵活性。项目更倾向于把 TLS 终止交给用户自己的反向代理或基础设施。
为什么 OPL 数据空间不原生支持每一家 provider 的私有 API?
OPL 数据空间的核心设计原则是 优先支持标准协议,而不是为每个 provider 的私有接口逐一做特判。这能避免配置和行为不断膨胀,也更利于长期维护。
如果某个 provider 不遵循通 用协议,通常推荐通过以下方式接入:
- 使用 OpenAI 兼容端点
- 使用中间代理,如 LiteLLM、OpenRouter
- 使用 Pipe / Function 做桥接
为什么模型自述身份不准确?
因为 LLM 不能可靠地识别自己是谁。当你问模型“你是什么模型”时,它只是继续生成文本,而不是调用一个系统诊断接口。验证真实模型应以:
- 模型选择器
- 管理面板连接配置
- provider 日志
为准。
为什么 RAG 很差或者看起来完全没起作用?
一个高频原因是上下文窗口太小。以 Ollama 为例,默认上下文常常只有 2048 token,这对文档检索和网页内容远远不够。通常建议至少提升到 8192,复杂场景更高。
为什么 API 上传文件后立刻加入知识库会报 “The content provided is empty”?
这是异步处理的时序问题。文件上传接口会先返回文件 ID,而内容抽取和 embedding 是在后台继续完成的。你需要轮询处理状态,等到 completed 后再继续后续操作。
更详细的问答还包括:
- Docker 与 GPU 支持
- 为什么推荐使用官方 Docker
- 为什么直接安装后更容易被系统环境变化影响
- 反向代理与 TLS 配置思路
- 推理模型 thinking block 显示为原始文本的原因
如果你遇到的是具体部署故障,也建议直接查阅: