跳到主要内容

Pipelines Logo

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

注意

以下情况不要用 Pipelines:

如果你的目标只是增加额外模型提供方支持,或者做一些基础过滤逻辑,那么通常不需要 Pipelines。对这些场景来说, OPL 数据空间自带的 Functions 更方便、配置更轻、维护更简单。

Pipelines 更适合那些计算量大逻辑复杂、或你希望从主 OPL 数据空间实例中卸载出去的工作负载,例如大型模型、复杂 Agent、定制 RAG、独立运行的业务流程。

Pipelines 是 OPL 数据空间 的一个扩展方向。它允许你把模块化、可定制的工作流暴露给任何支持 OpenAI API 规范的 UI / client,而且不止于此。你可以用极少的代码注入定制逻辑、复用 Python 生态、构建独立工作流。

为什么选择 Pipelines

  • 扩展性高:从 AI agent 到家庭自动化 API,几乎任何 Python 逻辑都能接进来
  • 集成路径清晰:兼容任何支持 OpenAI API 规范的 UI / client
  • 可插拔工作流:你可以自由添加和组织自定义 pipeline

典型用法

还有更多模板可在 examples/scaffolds 中找到。

工作原理

Pipelines Workflow

把 Pipelines 集成到任意 OpenAI API 兼容客户端里非常简单:

  1. 启动你的 Pipelines 实例
  2. 把客户端的 OpenAI URL 指向 Pipelines 地址

之后,该客户端就会通过 Pipelines 间接使用任意 Python 逻辑。

Docker 快速开始

⚠️ 安全警告

Pipelines 是一个任意代码执行的插件系统。不要从不可信来源直接拉取并运行 Pipeline。恶意 Pipeline 可能访问文件系统、外传数据、挖矿,甚至直接破坏你的系统。安装前务必审查源码。更多背景见 Security Policy

启动容器

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

连接到 OPL 数据空间

  1. 打开 管理员面板 > 设置 > Connections
  2. 点击 + 添加新连接
  3. API URL 填 http://localhost:9099
  4. API key 填 0p3n-w3bu!

验证通过后,你会在该连接的 API Base URL 字段中看到一个 Pipelines 标记图标。

信息

如果 OPL 数据空间本身也运行在 Docker 里,请把 localhost 改成 host.docker.internal

在 WebUI 中管理配置

  1. 打开 管理员面板 > 设置 > Pipelines
  2. 选择目标 pipeline
  3. 直接在 WebUI 中调整它的 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 没有额外依赖,你也可以直接在管理后台里粘贴 URL 安装。

安装与设置

  1. 安装 Python 3.11。这是官方唯一支持的 Python 版本。

  2. 克隆仓库:

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

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

    sh ./start.sh

服务起来后,把客户端的 OpenAI URL 指向该 Pipelines 地址即可。

目录结构与示例

/pipelines 目录是核心工作目录。你可以在这里:

  • 添加新模块
  • 定制现有模块
  • 管理你的工作流

该目录下的所有 pipeline 文件都会在服务启动时自动加载。

如果不想用默认路径,可以通过 PIPELINES_DIR 环境变量修改。

各种集成示例见:

https://github.com/open-webui/pipelines/blob/main/examples

仍在持续演进

Pipelines 仍在不断演进。 OPL 数据空间团队希望它最终能成为 OPL 数据空间生态里的通用插件框架,就像 WordPress 与插件的关系一样。欢迎持续反馈你需要的 hook、集成点和能力边界。