Pipelines:UI-Agnostic 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/客户端。(仅支持管道类型 Pipelines;过滤器类型需要支持 Pipelines 的客户端。)
- 自定义钩子: 构建并集成自定义 Pipelines。
您可以实现的示例:
- 函数调用管道:轻松处理函数调用并通过自定义逻辑增强您的应用程序。
- 自定义 RAG 管道:根据您的需求实现复杂的检索增强生成管道。
- 使用 Langfuse 监控消息:使用 Langfuse 实时监控和分析消息交互。
- 速率限制过滤器:控制请求流量以防止超出速率限制。
- 使用 LibreTranslate 的实时翻译过滤器:将实时翻译无缝集成到您的 LLM 交互中。
- 有毒消息过滤器:实现过滤器以有效检测和处理有毒消息。
- 以及更多!:使用 Pipelines 和 Python,您能实现的功能是无限的。 查看我们的脚手架,抢先开始您的项目,并了解如何简化您的开发流程!
🔧 工作原理
将 Pipelines 与任何兼容 OpenAI API 的 UI 客户端集成非常简单。启动您的 Pipelines 实例,并将客户端上的 OpenAI URL 设置为 Pipelines URL。就是这样!您已准备好利用任何 Python 库来满足您的需求。
⚡ Docker 快速入门
Pipelines 是一个具有任意代码执行能力的插件系统 — 请勿从您不信任的来源获取随机的 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 设置为
https://:9099
,API 密钥设置为0p3n-w3bu!
。 - 一旦您添加并验证了 Pipelines 连接,您将在添加的连接的 API 基本 URL 字段中看到一个图标。当鼠标悬停时,该图标本身将显示为
Pipelines
。您的 Pipelines 现在应该已激活。
如果您的 Open WebUI 运行在 Docker 容器中,请将 API URL 中的 localhost
替换为 host.docker.internal
。
-
管理配置
- 在管理面板中,转到管理面板 > 设置 > Pipelines 标签页。
- 选择您想要的管道并直接从 WebUI 修改阀门值。
如果您无法连接,很可能是 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
或者,您可以直接从管理设置中通过复制粘贴管道 URL 来安装管道,前提是它没有额外的依赖项。
就是这样!您现在已准备好使用 Pipelines 轻松构建可定制的 AI 集成。尽情享受吧!
📦 安装和设置
通过几个简单的步骤开始使用 Pipelines
-
确保已安装 Python 3.11。 它是唯一官方支持的 Python 版本。
-
克隆 Pipelines 仓库
git clone https://github.com/open-webui/pipelines.git
cd pipelines -
安装所需的依赖项
pip install -r requirements.txt
-
启动 Pipelines 服务器
sh ./start.sh
服务器运行后,将客户端的 OpenAI URL 设置为 Pipelines URL。这将解锁 Pipelines 的全部功能,集成任何 Python 库并创建根据您的需求量身定制的自定义工作流。
📂 目录结构和示例
/pipelines
目录是您设置的核心。在此处添加新模块,自定义现有模块并管理您的工作流。服务器启动时,/pipelines
目录中的所有管道都将自动加载。
您可以使用 PIPELINES_DIR
环境变量将此目录从 /pipelines
更改为其他位置。
集成示例
在 https://github.com/open-webui/pipelines/blob/main/examples
目录中查找各种集成示例。这些示例展示了如何集成不同的功能,为构建您自己的自定义管道奠定了基础。
🎉 正在进行中
我们正在不断发展!我们很乐意听取您的反馈,并了解哪些钩子和功能最适合您的用例。欢迎联系我们,加入我们的 Open WebUI 社区!
我们的愿景是推动 Pipelines 成为我们 AI 界面 Open WebUI 的终极插件框架。想象一下 Open WebUI 是 AI 界面的 WordPress,而 Pipelines 则是其多样化的插件。加入我们,踏上这段激动人心的旅程吧!🌍