issue: A Prefix ID on a Pipelines connection makes every chat fail with Not Found

当 Open WebUI 的 OpenAI 兼容连接启用 Prefix ID,且该连接指向 Pipelines 服务器(Pipe / Manifold / 对所有模型生效的 Filter)时,聊天请求会把带前缀的模型名继续向下游转发,导致所有聊天均返回 Not Found。优先排查该连接是否设置了

快速结论:当 Open WebUI 的 OpenAI 兼容连接启用 Prefix ID,且该连接指向 Pipelines 服务器(Pipe / Manifold / 对所有模型生效的 Filter)时,聊天请求会把带前缀的模型名继续向下游转发,导致所有聊天均返回 Not Found。优先排查该连接是否设置了 Prefix ID,以及上游是否能识别带前缀的模型名。

适用环境:Open WebUI dev 分支(提交 7f03b6e77),Git Clone 安装;Linux;浏览器 Firefox;Ollama v0.40.12;Pipelines 以 Docker 容器方式运行(ghcr.io/open-webui/pipelines:latest)。

最快修复方案:暂无确认的一步修复方案。Issue 中已验证:去掉该 Pipelines 连接的 Prefix ID 后,相同配置可正常聊天。但维护者同时指出 Pipelines 已是遗留组件、不应继续使用。

注意事项:去掉 Prefix ID 只是规避手段,会失去模型名前缀区分,可能与其他连接的同名模型冲突;这不是 Issue 中验证过的根本修复。该问题已标记为 confirmed issue 并关闭,但关闭讨论中维护者认为 Pipelines 属于遗留功能,长期方案可能是迁移到其他接入方式,而非等待 Prefix ID 修复。

问题场景

用户在 Open WebUI 中通过 Admin Settings > Connections 添加一个 OpenAI API 连接,指向本地运行的 Pipelines 服务器(http://127.0.0.1:9199,API Key 为 0p3n-w3bu!),该 Pipelines 目录中包含三个文件:一个对所有模型生效的 filter(valves.pipelines = [“*”])、一个普通 pipe(Rig Pipe)、一个 manifold(Rig Man: One)。未设置 Prefix ID 时,向 Rig Pipe 和常规模型发消息均正常;在连接的高级设置中把 Prefix ID 设为 “pp” 后,向 pp.Rig Pipe、pp.Rig Man: One 以及其他连接的常规模型发消息,全部返回 Not Found。

报错原文

Not Found

原因分析

可能原因是 Open WebUI 在处理带 Prefix ID 的连接时,没有在请求进入 Pipelines 之前剥离模型名前缀,而是把 pp.xxx 这类带前缀的模型 ID 一同传给上游 Pipelines,上游找不到对应模型即返回 Not Found。相关 Issue(#28574、#32715)显示,这种“前缀未剥离即转发”的模式在其他端点(/openai/responses、/api/v1/embeddings)也出现过,说明问题可能出在 Prefix ID 处理在不同请求路径上不一致。本 Issue 中另一个关键现象是:配置了“对所有模型生效”的 filter 后,连其他连接的模型也一起失败,可能说明 filter 的 inlet 链路在收到无法识别的带前缀模型名后使整个请求路径中断。

环境排查

  • 确认 Open WebUI 版本:Issue 复现于 dev 分支 7f03b6e77,并声明在最新 release 上同样复现;先确认自己是否处于相近版本。
  • 确认该 OpenAI 连接的高级设置中 Prefix ID 是否为空。
  • 确认 Pipelines 容器正常启动,端口映射为 127.0.0.1:9199:9099,挂载目录中包含 filter、pipe、manifold 三类文件。
  • 确认 Pipelines 中是否存在 pipelines 设置为 [“*”] 的 filter,这是触发“所有模型一起失败”的关键条件。
  • 确认 Ollama 版本(Issue 中为 v0.40.12)及所列常规模型是否在其他连接下可正常对话,以排除模型本身问题。
  • 检查 Open WebUI 与 Pipelines 两侧日志,重点观察 filter 的 inlet 打印出的 model 字段是否带有前缀。

解决步骤

  1. 进入 Admin Settings > Connections,找到指向 Pipelines 的那条 OpenAI API 连接。
  2. 点击该连接的 Configure 齿轮,打开 Advanced。
  3. 清空 Prefix ID 字段(Issue 中验证此操作后聊天恢复正常),保存。
  4. 分别向 Rig Pipe、Rig Man: One 及一个常规模型发送测试消息,确认均能正常回复。
  5. 如需保留前缀区分(可优先尝试,未在 Issue 中验证):在 Pipelines 侧为模型显式注册带前缀的名称,或调整 filter 使其不对不匹配的模型名生效;也可参考 #28574、#32715 中关于前缀剥离的讨论跟踪修复进展。
  6. 如为非必须使用 Pipelines 的场景,考虑按维护者建议迁移到受支持的接入方式,因为 Pipelines 已标记为遗留组件。

验证方法

清空 Prefix ID 后,依次向 Pipelines pipe 模型、Pipelines manifold 模型以及任一其他连接的常规模型发送“hi”:若三者均正常回复(例如 Rig Pipe 返回 “rig pipe reply”),说明前缀导致的 Not Found 已消失。再观察 Pipelines 日志中 filter 的 inlet 打印的 model 字段不再包含 “pp.” 前缀,可进一步确认前缀未被向下游转发。

参考来源

open-webui/open-webui #33314

open-webui/open-webui #28574(相关:/openai/responses 转发带前缀模型 ID)

open-webui/open-webui #32715(相关:/api/v1/embeddings 转发带前缀模型 ID)

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 30747

发表回复

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