跳到主要内容

🔗 Open WebUI 集成

概述

Open WebUI v0.6+ 支持通过 OpenAPI 服务器与外部工具无缝集成 — 这意味着您可以使用自定义或社区驱动的工具服务器轻松扩展您的 LLM 工作流 🧰。

在本指南中,您将学习如何启动一个兼容 OpenAPI 的工具服务器,并通过直观的用户界面将其连接到 Open WebUI。让我们开始吧!🚀


步骤 1:启动 OpenAPI 工具服务器

首先,您需要启动 openapi-servers 仓库中可用的参考工具服务器之一。为了快速测试,我们将以时间工具服务器为例。

🛠️ 示例:在本地启动 time 服务器

git clone https://github.com/open-webui/openapi-servers
cd openapi-servers

# Navigate to the time server
cd servers/time

# Install required dependencies
pip install -r requirements.txt

# Start the server
uvicorn main:app --host 0.0.0.0 --reload

运行后,这将在 https://:8000 托管一个本地 OpenAPI 服务器,您可以将 Open WebUI 指向此处。

Time Server


步骤 2:在 Open WebUI 中连接工具服务器

接下来,将您正在运行的工具服务器连接到 Open WebUI

  1. 在浏览器中打开 Open WebUI。
  2. 打开 ⚙️ 设置
  3. 点击 ➕ 工具 以添加新的工具服务器。
  4. 输入您的 OpenAPI 工具服务器正在运行的 URL(例如,https://:8000)。
  5. 点击“保存”。

Settings Page

🧑‍💻 用户工具服务器 vs. 🛠️ 全局工具服务器

在 Open WebUI 中注册工具服务器有两种方式

1. 用户工具服务器(通过常规设置添加)

  • 仅对注册该工具服务器的用户可见。
  • 连接由用户直接从浏览器(客户端)建立。
  • 非常适合个人工作流或测试自定义/本地工具。

2. 全局工具服务器(通过管理员设置添加)

管理员可以管理在整个部署中对所有或选定用户可用的共享工具服务器

  • 前往 🛠️ 管理员设置 > 工具
  • 像在用户设置中一样添加工具服务器 URL。
  • 这些工具与 Open WebUI 的内置工具类似。

主要区别:请求从何处发出?

用户工具服务器全局工具服务器之间的主要区别在于 API 连接和请求实际从何处发出

  • 用户工具服务器

    • 对工具服务器的请求直接从您的浏览器(客户端)执行。
    • 这意味着您可以安全地连接到 localhost URL(如 https://:8000)——甚至可以暴露私人或仅用于开发的目的地(如您的本地文件系统或开发工具)——而不会面临暴露给更广泛的互联网或其他用户的风险。
    • 您的连接是独立的;只有您的浏览器可以访问该工具服务器。
  • 全局工具服务器

    • 请求从 Open WebUI 后端/服务器发送(而不是您的浏览器)。
    • 后端必须能够访问您指定的工具服务器 URL——因此 localhost 意味着后端服务器的 localhost,而不是您计算机的。
    • 此方法用于与部署中的其他用户共享工具,但请注意:由于请求由后端发出,您无法通过此方法访问您的个人本地资源(如您自己的文件系统)。
    • 考虑安全性!只暴露安全且旨在由多个用户访问的远程/全局端点。

总结表

工具服务器类型请求来源使用 Localhost?使用场景示例
用户工具服务器用户的浏览器(客户端)是(对您私人)个人工具,本地开发/测试
全局工具服务器Open WebUI 后端(服务器端)否(除非在后端自身运行)团队/共享工具,企业集成
提示

用户工具服务器最适合个人或实验性工具,尤其是那些在您自己机器上运行的工具,而全局工具服务器则非常适合需要所有人都访问相同工具的生产或共享环境。

👉 可选:使用 mcpo 的配置文件

如果您通过 mcpo 使用配置文件运行多个工具,请注意

🧩 每个工具都挂载在其自己的唯一路径下!

例如,如果您通过 mcpo 同时使用内存和时间工具,它们将分别在不同的路由下可用

这意味着

  • 在 Open WebUI 中连接工具时,您必须输入该特定工具的完整路由——不要只输入根 URL (https://:8000)。
  • 在 Open WebUI 设置中,使用各自的子路径 URL 逐个添加每个工具。

MCPO Config Tools Setting

✅ 正确

https://:8000/time
https://:8000/memory

🚫 无效

https://:8000

这确保了 Open WebUI 能够正确识别并与每个工具服务器通信。


步骤 3:确认您的工具服务器已连接 ✅

一旦您的工具服务器成功连接,Open WebUI 将直接在消息输入区域显示一个 👇 工具服务器指示器

📍 您现在会在输入框下方看到此图标

Tool Server Indicator

点击此图标会弹出一个窗口,您可以在其中

  • 查看已连接的工具服务器信息
  • 查看哪些工具可用以及它们由哪个服务器提供
  • 根据需要调试或断开任何工具

🔍 这是工具信息模态框的显示效果

Tool Info Modal Expanded

🛠️ 全局工具服务器看起来不同——并且默认隐藏!

如果您连接了全局工具服务器(即,由管理员配置的),它不会像用户工具服务器那样自动出现在输入区域。

相反

  • 全局工具默认是隐藏的,必须由每个用户明确激活。
  • 要启用它们,您需要点击消息输入区域(聊天框左下角)的 ➕ 按钮,并手动切换您想要使用的特定全局工具。

这是其显示效果

Global Tool Server Message Input

⚠️ 全局工具服务器的重要注意事项

  • 在从 ➕ 菜单启用之前,它们不会显示在工具指示器弹出窗口中。
  • 每个全局工具必须单独打开才能在您当前的聊天中激活。
  • 一旦打开,它们的功能与用户工具相同。
  • 管理员可以通过基于角色的权限控制对全局工具的访问。

这非常适合团队设置或共享环境,在这些环境中,常用的工具(例如文档搜索、内存或网页查找)应由多个用户集中访问。


(可选) 步骤 4:使用“原生”函数调用(ReACT 风格)工具使用 🧠

信息

为了使其有效工作,您选择的模型必须支持原生工具调用。一些本地模型声称支持但通常产生较差的结果。我们强烈建议使用 GPT-4o 或其他支持原生函数调用的 OpenAI 模型以获得最佳体验。

想在对话中直接启用 ReACT 风格(推理 + 行动)的原生函数调用吗?您可以将 Open WebUI 切换为使用原生函数调用。

✳️ 如何启用原生函数调用

  1. 打开聊天窗口。
  2. 前往 ⚙️ 聊天控制 > 高级参数
  3. 函数调用参数从 Default 更改为 Native

Native Tool Call


需要更多工具?探索与扩展!🧱

openapi-servers 仓库包含各种有用的参考服务器

  • 📂 文件系统访问
  • 🧠 记忆与知识图谱
  • 🗃️ Git 仓库浏览
  • 🌎 网页搜索 (WIP)
  • 🛢️ 数据库查询 (WIP)

您可以以相同的方式运行其中任何一个,并通过重复上述步骤将其连接到 Open WebUI。


故障排除与技巧 🧩

  • ❌ 无法连接?请确保 URL 正确,并且可以从运行 Open WebUI 的浏览器访问。
  • 🔒 如果您正在使用远程服务器,请检查防火墙和 HTTPS 配置!
  • 📝 为了使服务器持久化,请考虑将其部署在 Docker 或使用系统服务。

需要帮助?请访问 👉 讨论页面提出问题