Pipelines:与 UI 无关的 OpenAI API 插件框架
在以下情况下请勿使用 PIPELINES!
如果您的目标只是添加对 Anthropic 等其他提供商的支持或基本的过滤器,您可能不需要 Pipelines。对于这些情况,Open WebUI 的 Functions (函数) 功能更适合——它是内置的,更方便,也更容易配置。然而,当您处理计算密集型任务(例如运行大型模型或复杂逻辑)并希望将其从主 Open WebUI 实例中分离出来以获得更好的性能和可扩展性时,Pipelines 就会派上用场。
欢迎来到 Pipelines,这是 Open WebUI 的一个倡议。Pipelines 为任何支持 OpenAI API 规范的 UI 客户端带来了模块化、可定制的工作流——以及更多功能!只需几行代码,即可轻松扩展功能、集成独特逻辑并创建动态工作流。
🚀 为什么选择 Pipelines?
- 无限可能: 轻松添加自定义逻辑并集成 Python 库,从 AI 代理到家庭自动化 API。
- 无缝集成: 与任何支持 OpenAI API 规范的 UI/客户端兼容。(仅支持
pipe类型流水线;filter类型需要客户端支持 Pipelines。) - 自定义钩子 (Hooks): 构建并集成自定义流水线。
您可以实现的功能示例:
- 函数调用流水线 (Function Calling Pipeline):轻松处理函数调用,并使用自定义逻辑增强您的应用程序。
- 自定义 RAG 流水线:实现量身定制的复杂检索增强生成 (RAG) 流水线。
- 使用 Langfuse 监控消息:使用 Langfuse 实时监控和分析消息交互。
- 速率限制过滤器 (Rate Limit Filter):控制请求流以防止超过速率限制。
- 使用 LibreTranslate 的实时翻译过滤器:将实时翻译无缝集成到您的 LLM 交互中。
- 有毒消息过滤器 (Toxic Message Filter):实现过滤器以有效检测和处理有毒消息。
- 以及更多!:利用 Pipelines 和 Python,您的成就将不可限量 。查看我们的脚手架 (scaffolds) 以快速启动您的项目,并了解如何简化您的开发过程!
🔧 工作原理
将 Pipelines 与任何兼容 OpenAI API 的 UI 客户端集成非常简单。启动您的 Pipelines 实例,并将客户端上的 OpenAI URL 设置为 Pipelines 的 URL。就这么简单!您已准备好利用任何 Python 库来满足您的需求。
⚡ 使用 Docker 快速开始
Pipelines 是一个支持任意代码执行的插件系统 —— 请不要从您不信任的来源获取随机流水线。
使用 Docker 进行流线化设置:
-
运行 Pipelines 容器:
docker run -d -p 9099:9099 --add-host=host.docker.internal:host-gateway -v pipelines:/app/pipelines --name pipelines --restart always ghcr.io/open-webui/pipelines:main -
连接到 Open WebUI:
- 导航至 Open WebUI 中的管理面板 > 设置 > 外部连接部分。
- 在此页面上,您可以按
+按钮添加另一个连接。 - 将 API URL 设置为
http://localhost:9099,将 API Key 设置为0p3n-w3bu!。 - 添加并验证流水线连接后,您将在所添加连接的“API 基础 URL”字段中看到一个图标。悬停时,该图标本身将标记为
Pipelines。您的流水线现在应该处于活动状态。
如果您的 Open WebUI 在 Docker 容器中运行,请将 API URL 中的 localhost 替换为 host.docker.internal。
-
管理配置:
- 在管理面板中,转到管理面板 > 设置 > Pipelines 选项卡。
- 选择您想要的流水线,并直接从 WebUI 修改 Valve (阀门) 值。
如果您无法连接,很可能是 Docker 网络问题。我们鼓励您自行排查故障,并在讨论论坛中分享您的方法和解决方案。
如果您需要安装带有额外依赖项的自定义流水线:
-
运行以下命令:
docker run -d -p 9099:9099 --add-host=host.docker.internal:host-gateway -e PIPELINES_URLS="https://github.com/open-webui/pipelines/blob/main/examples/filters/detoxify_filter_pipeline.py" -v pipelines:/app/pipelines --name pipelines --restart always ghcr.io/open-webui/pipelines:main



