owndev/Open-WebUI-Functions

Open-WebUI-Functions is a collection of custom pipelines, filters, and integrations designed to enhance Open WebUI. These functions enable seamless interactions with Azure AI, N8N, Google Gemini and other AI models, providing dynamic request handling, preprocessing, and automation.

概览

Open‑WebUI‑Functions 是一个小型 Python 函数库,可插入到 Open WebUI 聊天界面(即开源项目 open‑webui/open‑webui)中。该仓库提供现成的 管道 (pipelines)、过滤器 (filters) 与集成功能,让您可以将 Open WebUI 连接到外部 AI 服务(Azure OpenAI、Google Gemini、Infomaniak、N8N 等),进行数据预处理或后处理,并确保 API 密钥等机密信息保持加密状态。

主要功能

功能 作用 重要性
自定义管道 基于 Python 的处理步骤,用于调用外部 LLM 提供者、执行 RAG 查询或转换数据。 让您无需编写样板代码即可使用 Azure、Google Gemini、Infomaniak、N8N 等服务。
过滤器 在请求前后执行的小型钩子(例如:Token 使用量跟踪、Google 搜索接地)。 在不改动核心 UI 的情况下提供可观测性与额外逻辑。
集成功能 适用于 Azure AI、N8N 工作流自动化、Infomaniak AI 工具、Google Gemini 等的现成函数。 降低连接第三方服务的门槛。
流式与非流式支持 处理实时 Token 流与批量响应。 同时支持聊天式流式传输与传统请求-响应调用。
安全机密处理 使用 WEBUI_SECRET_KEY 环境变量自动加密 API 密钥。 确保凭证安全地存储在 Open WebUI 数据库中。
环境变量配置 所有行为(模型列表、超时、Token 跟踪等)皆通过环境变量切换。 使同一函数可在多种部署场景下使用。

运作方式

  1. 安装 Open WebUI(主聊天界面)。
  2. 在 管理员 → 函数 (Admin → Functions) 面板中,点击 添加新函数 (Add New Function) 并粘贴此仓库中的 Python 代码。
  3. 设置任何必要的环境变量(例如 AZURE_AI_API_KEY、WEBUI_SECRET_KEY)。
  4. 该函数会成为 Open WebUI 内可选择的“管道”;当用户发送消息时,管道会将请求转发给外部提供者,应用任何已配置的过滤器,并返回答案(若支持则进行流式传输)。
  5. 选用的过滤器(如 Time Token Tracker)可将使用量记录到 Azure Log Analytics 以进行可观测性分析。

典型使用案例

使用案例 示例管道 您获得的成果
企业级 Azure LLM azure_ai_foundry.py Azure OpenAI 推理、基于 Azure Search 的 RAG、引用卡片、存储在 Open WebUI 中的 Token 使用量。
通过 N8N 自动化 n8n.py 发送聊天消息至 N8N Webhook,接收处理后的回复,查看工具调用摘要。
Google Gemini 生成 google_gemini.py 访问 Gemini 模型、流式文本、生成图像或视频、跟踪 Token、选用的 Google 搜索接地。
可观测性 time_token_tracker.py 记录响应时间与 Token 数量,并可选择推送到 Azure Log Analytics。

入门指南(快速步骤)

# 1. 运行 Open WebUI (Docker, Helm 等)
# 2. 打开 UI → 管理员设置 → 函数
# 3. 添加一个函数并粘贴此仓库中所需的 *.py 文件
# 4. 设置必要的环境变量,例如:
export WEBUI_SECRET_KEY="my‑random‑secret"
export AZURE_AI_API_KEY="<key>"
# 5. 保存 – 该管道现在会出现在模型选择器中。

文档与支持

  • Docs 文件夹 – 每个集成功能的详细指南(Azure 引用、N8N 使用、Google Gemini 设置等)。
  • Tests – 基于 Docker 的端到端测试位于 tests/e2e/。
  • Issues 与 PRs – 欢迎社区贡献新的管道或过滤器。
  • 授权 – MIT (参阅 LICENSE)。

Open‑WebUI‑Functions 本身不提供 LLM;它仅通过现成的连接器与工具,为现有的 Open WebUI 平台扩展功能,以支持实际的 AI 工作流。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目