[!TIP]
请勿使用 Pipelines!如果你的目标只是添加对 Anthropic 等额外提供商的支持或实现基础过滤器,那么你可能并不需要 Pipelines。对于这些情况,Open WebUI 内置的 Functions 功能是更合适的选择——它更便捷,配置也更简单。然而,当你需要处理计算密集型任务(例如运行大型模型或复杂逻辑),并希望将其从主 Open WebUI 实例中分离出来以获得更好的性能和可扩展性时,Pipelines 就能派上用场了。
欢迎来到 Pipelines,这是一个 Open WebUI 项目。Pipelines 为任何支持 OpenAI API 规范的 UI 客户端带来了模块化、可定制的工作流——功能远不止于此!只需几行代码,即可轻松扩展功能、集成独特逻辑并创建动态工作流。
将 Pipelines 与任何兼容 OpenAI API 的 UI 客户端集成非常简单。启动你的 Pipelines 实例,并将客户端上的 OpenAI URL 设置为 Pipelines 的 URL。就这样!你现在可以随时利用任何 Python 库来满足你的需求。
[!WARNING]
Pipelines 是一个支持任意代码执行的插件系统——请勿从你不信任的来源获取随机的流水线。
使用 Docker 进行简化设置:
运行 Pipelines 容器:
sh
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:
http://localhost:9099,API 密钥设置为 0p3n-w3bu!。你的流水线现在应该已经激活。[!NOTE]
如果你的 Open WebUI 运行在 Docker 容器中,请将 API URL 中的localhost替换为host.docker.internal。
管理配置:
[!TIP]
如果无法连接,很可能是 Docker 网络问题。我们鼓励你自行排查,并在讨论区分享你的方法和解决方案。
如果需要安装具有额外依赖项的自定义流水线:
sh
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 集成。享受吧!
使用 Docker Compose 可以简化多容器 Docker 应用的管理。
以下是一个使用 Docker Compose 设置 Open WebUI 和 Pipelines 的示例配置文件 docker-compose.yaml:
services:
openwebui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
volumes:
- open-webui:/app/backend/data
pipelines:
image: ghcr.io/open-webui/pipelines:main
volumes:
- pipelines:/app/pipelines
restart: always
environment:
- PIPELINES_API_KEY=0p3n-w3bu!
volumes:
open-webui: {}
pipelines: {}
要启动你的服务,请运行以下命令:
docker compose up -d
然后,你可以使用 http://pipelines:9099(名称与 docker-compose.yaml 中定义的服务名称相同)作为 API URL 连接到 Open WebUI。
[!NOTE]
pipelines服务仅能被openwebuiDocker 服务访问,从而提供了额外的安全层。
通过几个简单的步骤开始使用 Pipelines:
克隆 Pipelines 仓库:
sh
git clone https://github.com/open-webui/pipelines.git
cd pipelines
安装所需的依赖项:
sh
pip install -r requirements.txt
启动 Pipelines 服务器:
sh
sh ./start.sh
服务器运行后,将客户端上的 OpenAI URL 设置为 Pipelines 的 URL。这将解锁 Pipelines 的全部功能,集成任何 Python 库,并创建满足你需求的自定义工作流。
如果你创建了自己的流水线,可以在构建 Docker 镜像时安装它们。例如,创建一个包含以下代码片段的 bash 脚本,以从某个路径收集文件,将它们添加为安装 URL,并自动安装新流水线来构建 Docker 镜像。
注意:流水线模块在启动时仍会尝试安装在你的文件头部找到的任何包依赖项,但它们不会被重复下载。
# 构建特定的流水线
PIPELINE_DIR="pipelines-custom"
# 假设上述目录在你的源代码仓库中,并且没有被 `.dockerignore` 忽略,它将被复制到镜像中
PIPELINE_PREFIX="file:///app"
# 检索所有子文件
export PIPELINES_URLS=
for file in "$PIPELINE_DIR"/*; do
if [[ -f "$file" ]]; then
if [[ "$file" == *.py ]]; then
if [ -z "$PIPELINES_URLS" ]; then
PIPELINES_URLS="$PIPELINE_PREFIX/$file"
else
PIPELINES_URLS="$PIPELINES_URLS;$PIPELINE_PREFIX/$file"
fi
fi
fi
done
echo "新的自定义安装管道:$PIPELINES_URLS"
docker build --build-arg PIPELINES_URLS=$PIPELINES_URLS --build-arg MINIMUM_BUILD=true -f Dockerfile .
/pipelines 目录是你设置的核心。在此处添加新模块、自定义现有模块并管理工作流。服务器启动时,/pipelines 目录中的所有流水线将自动加载。
你可以使用 PIPELINES_DIR 环境变量将此目录从 /pipelines 更改为其他位置。
在 /examples 目录中可以找到各种集成示例。这些示例展示了如何集成不同的功能,为构建你自己的自定义流水线提供了基础。
我们正在持续发展!我们很乐意听取你的反馈,并了解哪些钩子和功能最适合你的用例。随时联系我们,成为 Open WebUI 社区的一员!
我们的愿景是推动 Pipelines 成为我们 AI 界面 Open WebUI 的终极插件框架。想象一下,Open WebUI 是 AI 界面的 WordPress,而 Pipelines 则是其多样化的插件系列。加入我们,一起踏上这段激动人心的旅程吧!🌍