跳到主要内容

Pipelines 徽标

Pipelines:与 UI 解耦的 OpenAI API 插件框架

以下情况下千万别用 PIPELINES!

如果您的目的仅仅是添加对像 Anthropic 这样的额外大模型服务商的对接支持,或者添加一些基础的输入输出过滤功能,您很可能不需要 Pipelines。对于这些日常场景,直接使用 Open WebUI 的 Functions(函数)功能是更佳的选择 —— 它是内置于平台的,配置使用起来非常方便且极其简单。然而,当您需要处理重度计算任务(例如运行大型嵌入模型或执行非常复杂的业务逻辑),且希望将这些任务从 Open WebUI 主进程中卸载以获得更好的平台性能与扩展能力时,Pipelines 便将发挥其大显身手的关键作用。

欢迎来到 Pipelines(流水线插件框架),这是由 Open WebUI 社区发起的一项重要倡议。Pipelines 旨在为任何支持 OpenAI API 规范的 Web UI 客户端带来模块化、可高度自定义的扩展工作流 —— 甚至不止于此!您只需编写几行简单的 Python 代码,即可轻松扩展系统的功能特性、集成独特的业务逻辑并创建高度动态的工作流。

🚀 为什么选择 Pipelines?

  • 极致灵活的扩展性:轻松添加自定义逻辑并集成任何第三方 Python 库,从 AI 智能体 (Agents) 到智能家居 API 都能完美融合。
  • 无缝集成体验:与任何支持 OpenAI API 规范的 UI 界面或客户端兼容。(其中 pipe 类型的 pipeline 具有通用兼容性;而 filter 过滤器类型则需要客户端原生支持 Pipelines 接口。)
  • 自定义钩子 (Hooks):自主构建并深度继承定制您的流水线。

您能实现的代表性功能:

🔧 工作原理

Pipelines 工作流

将 Pipelines 与任何 OpenAI API 兼容的 UI 客户端进行集成非常直观。只需启动您的 Pipelines 独立实例,并将客户端中配置的 OpenAI 接口 URL 指向该 Pipelines 服务的 URL 即可。大功告成!您现在已经做好了在 AI 工作流中调用任何 Python 第三方库的全部准备。

⚡ 使用 Docker 快速开始

⚠️ 安全警告

Pipelines 本质上是一个允许执行任意 Python 代码的插件系统 —— 切勿盲目从未经证实或不可信的渠道获取并运行 Pipeline 代码。恶意的 Pipeline 可能会在后台窃取您的机密数据、扫描您的局域网环境、窃取敏感文件,乃至危害您整台物理服务器的安全。在导入安装之前,请务必仔细阅读并审核 Pipeline 的源码。详情请参阅安全政策

为了使用 Docker 快速且便捷地启动环境:

  1. 运行 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
  2. 将其接入 Open WebUI:

    • 在 Open WebUI 中导航至 Admin Panel > Settings > Connections(管理员面板 > 设置 > 连接)部分。
    • 在此页面上,点击 + 按钮添加一个新的外部 API 连接。
    • 将 API 接口的 URL 设置为 http://localhost:9099,API Key 设置为默认的 0p3n-w3bu!
    • 添加并验证连接成功后,您将在该连接的 API Base URL 字段旁边看到一个特殊的标识图标。当鼠标悬停在该图标上时,它会显示为 Pipelines 标签。这代表您的流水线已经正式激活上线。
信息

如果您的 Open WebUI 也是运行在 Docker 容器内部,请将 API URL 中的 localhost 替换为 host.docker.internal 以确保容器间网络互通。

  1. 在界面上进行参数配置:

    • 在管理面板中,前往 Admin Panel > Settings > Pipelines 标签页。
    • 选择您想要调整的 pipeline,即可直接在 Web 界面上动态修改它的 Valve(阀门)参数配置。
提示

如果您遇到了连接失败的问题,这大概率是 Docker 之间的容器网络路由配置问题。我们鼓励您在技术讨论社区寻求帮助,或者参考其他用户的网络排障方法。

如果您需要安装包含其他复杂第三方库依赖的自定义 pipeline:

  • 请执行以下命令:

    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

或者,如果该 pipeline 没有引入额外的复杂第三方依赖,您也可以直接在管理员设置界面中,拷贝并粘贴该 pipeline 的 URL 进行一键快捷安装。

到这里就全部搞定了!您现在可以使用 Pipelines 轻松创建可深度定制的 AI 工作流。祝您使用愉快!

📦 安装与配置

通过以下简单几步,在本地物理机或开发环境中安装并启动 Pipelines:

  1. 确保您的环境中安装了 Python 3.11。这是目前唯一被官方全面验证并正式支持的 Python 运行版本。

  2. 克隆 Pipelines 代码仓库:

    git clone https://github.com/open-webui/pipelines.git
    cd pipelines
  3. 安装所需的依赖包:

    pip install -r requirements.txt
  4. 启动 Pipelines 后端服务:

    sh ./start.sh

一旦服务成功启动,只需将您客户端中的 OpenAI 调用地址更改为该 Pipelines 服务的端点地址,便能立即释放 Pipelines 的全部魔力,让大模型轻松结合任何 Python 库为您完成定制化流水线。

📂 目录结构与示例

/pipelines 目录是您整个环境的核心所在。您可以在此处添加全新的模块、精简和重构现有的流程,并在此处管理您自定义的工作流。当系统服务启动时,存放于 /pipelines 目录下的所有流水线脚本都将被自动加载

如果您希望将此默认装载目录修改为其他自定义位置,可以使用 PIPELINES_DIR 环境变量进行指定。

集成示例

您可以在 GitHub 的 https://github.com/open-webui/pipelines/blob/main/examples 目录中找到各式各样的集成范例。这些现成的案例为您生动展示了如何将各种各样的功能特性嵌入到流水线中,是您编写自己专属 pipeline 的绝佳脚手架。

🎉 持续迭代与展望

我们依然在以极快的速度不断进化和完善中!我们非常期待聆听您的声音,并了解哪些钩子 (Hooks) 与特性最能契合您的特定业务场景。欢迎随时在社区与我们取得联系,成为 Open WebUI 共创生态的一员!

我们的愿景是让 Pipelines 成为 Open WebUI 这一 AI 前端界面最顶级、最健全的插件基石。您可以把 Open WebUI 想象成 AI 界的原生 WordPress 平台,而 Pipelines 便是那生态庞大、丰富多彩的各式插件库。让我们在这场激动人心的技术长跑中携手并进!🌍

This content is for informational purposes only and does not constitute a warranty, guarantee, or contractual commitment. Open WebUI is provided "as is." See your license for applicable terms.