Skip to main content

Open WebUI 集成

概览

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

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


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

首先,你需要启动 openapi-servers 仓库中提供的参考工具服务器之一。为了进行快速测试,我们将以 time(时间)工具服务器为例。

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

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

# 进入 time 服务器目录
cd servers/time

# 安装所需的依赖项
pip install -r requirements.txt

# 启动服务器
uvicorn main:app --host 0.0.0.0 --reload

运行后,这将在 http://localhost:8000 托管一个本地 OpenAPI 服务器,你可以将 Open WebUI 指向该地址。

时间服务器


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

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

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

设置页面

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

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

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

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

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

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

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

主要区别:请求从哪里发起?

用户工具服务器全局工具服务器之间的主要区别在于 API 连接和请求实际发起的位置:

  • 用户工具服务器

    • 对工具服务器的请求是直接从你的浏览器(客户端)发起的。
    • 这意味着你可以安全地连接到 localhost URL(如 http://localhost:8000 )—— 甚至可以公开私有或仅限开发的端点(如本地文件系统或开发工具)—— 而不会冒着向互联网或其他用户暴露的风险。
    • 你的连接是隔离的;只有你的浏览器可以访问该工具服务器。
  • 全局工具服务器

    • 请求是从 Open WebUI 后端/服务器发送的(而不是你的浏览器)。
    • 后端必须能够访问你指定的工具服务器 URL —— 因此 localhost 指的是后端服务器的 localhost,而不是你电脑的 localhost。
    • 使用此方法与整个部署中的其他用户共享工具,但请注意:由于请求是由后端发起的,你无法通过此方法访问个人的本地资源(如你自己的文件系统)。
    • 注意安全!仅公开那些安全且旨在供多用户访问的远程/全局端点。

总结表:

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

用户工具服务器最适合个人或实验性工具,尤其是运行在你本地机器上的工具;而全局工具服务器则是生产环境或共享环境的理想选择,因为在这些环境中每个人都需要访问相同的工具。

👉 可选:通过 mcpo 使用配置文件

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

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

例如,如果你通过 mcpo 同时使用 memorytime 工具,它们将分别在不同的路由上可用:

这意味着:

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

MCPO 配置工具设置

✅ 正确:

http://localhost:8000/time http://localhost:8000/memory

🚫 无效:

http://localhost:8000

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


第 3 步:确认工具服务器已连接 ✅

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

📍 你现在将在输入框下方看到这个图标:

工具服务器指示器

点击此图标会打开一个弹出窗口,你可以在其中:

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

🔍 以下是工具信息模态框的样子:

工具信息模态框展开

🛠️ 全局工具服务器外观不同 —— 且默认隐藏!

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

相反:

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

如下所示:

全局工具服务器消息输入

⚠️ 全局工具服务器的重要提示:

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

这对于团队设置或共享环境非常理想,在这些环境中,常用的工具(如文档搜索、记忆或网页查找)应该由多个用户集中访问。


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

信息

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

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

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

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

原生工具调用


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

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

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

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


故障排除与提示 🧩

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

需要帮助?请访问 👉 讨论页面提交 Issue