跳到主要内容

🛠️ 工具与功能

想象一下,你刚刚偶然发现了 Open WebUI,或者你已经在使用了,但面对“工具 (Tools)”、“函数 (Functions)”和“管道 (Pipelines)”这些术语时感到有些困惑。听起来都像是神秘的技术术语,对吧?别担心!让我们一步步清晰地拆解它们。读完本文,你将扎实地理解这些术语的含义、运作方式,以及为什么它们其实并不像看起来那么复杂。

TL;DR

  • 工具 (Tools) 扩展了大型语言模型 (LLM) 的能力,允许它们收集现实世界、实时的数据,如天气、股票价格等。
  • 函数 (Functions) 扩展了 Open WebUI 自身的功能,使你能够添加新的 AI 模型支持(如 Anthropic 或 Vertex AI)或提高易用性(如创建自定义按钮或过滤器)。
  • 管道 (Pipelines) 更多是为高级用户准备的,他们希望将 Open WebUI 的功能转换为兼容 API 的工作流——主要用于卸载繁重的处理任务。

开始使用工具和函数非常简单,因为一切都已经内置在核心系统中了!你只需点击一个按钮直接从社区导入这些功能,无需编写代码或进行深度技术操作。

什么是“工具”和“函数”?


⚠️ 关键安全警告

工具、函数、Pipe、过滤器和管道会在你的服务器上执行任意 Python 代码。 这是设计使然——也是它们强大的原因。然而,这也意味着:

  1. 仅从受信任的来源安装。 永远不要从未知或不可信的来源导入工具或函数。恶意代码可能会危及你的整个系统。

  2. 导入前审查代码。 在安装任何社区工具或函数之前,请审查其源代码。如果你不理解其作用,请勿安装。

  3. 保护你的数据目录。 data 目录(在 Docker 中挂载为 /app/backend/data)包含你的数据库、配置以及缓存的工具/函数。如果攻击者获得该目录的写入权限,他们可以植入将在你服务器上执行的恶意代码。

  4. 限制工作区访问权限。 只有受信任的管理员才应拥有创建、导入或修改工具和函数的权限。除非明确需要,否则普通用户不应拥有工作区访问权限。

  5. 定期审计已安装的插件。 定期通过 工作区 → 工具管理员面板 → 函数 查看实例中安装的插件。

可能出现什么问题? 恶意的工具或函数可能会窃取数据、安装恶意软件、挖掘加密货币、渗透到你网络中的其他系统或损坏你的实例。


首先,我们可以将 Open WebUI 看作是一个能够执行许多与使用大型语言模型 (LLM) 相关的任务的“基础”软件。但有时,你需要一些并非开箱即用的额外功能或能力——这就是工具函数发挥作用的地方。

工具 (Tools)

工具是一个令人兴奋的功能,因为它们允许 LLM 不仅仅处理文本。它们提供了 LLM 自身不具备的外部能力

工具示例:

想象一下,你正在与 LLM 聊天,你希望它能实时提供最新的天气更新或股票价格。通常情况下,LLM 无法做到这一点,因为它只能基于预训练的知识工作。这时工具就派上用场了!

  • 工具就像插件,LLM 可以使用它们来获取现实世界、实时的数据。因此,在启用了“天气工具”的情况下,模型可以访问互联网,收集实时天气数据,并将其显示在你的对话中。

工具本质上是你赋予 AI 的能力,帮助它与外部世界互动。通过添加这些工具,LLM 可以根据对话上下文“抓取”有用信息或执行专门的任务。

工具示例(扩展 LLM 能力):

  1. 实时天气预测 🛰️。
  2. 股价检索器 📈。
  3. 航班跟踪信息 ✈️。

函数 (Functions)

虽然 AI 在对话中使用工具,但函数有助于扩展或自定义 Open WebUI 本身的功能。想象一下,工具就像是在菜肴中添加新食材,而函数则是你用来控制厨房的流程! 🚪

让我们来拆解一下:

  • 函数让你能够调整或添加 Open WebUI 内部的功能特性
  • 你不是在赋予 LLM 新能力,而是在扩展平台本身的界面、行为或逻辑

例如,你可能想要:

  1. 在 WebUI 中添加一个新的 AI 模型,如 Anthropic
  2. 在工具栏中创建一个自定义按钮,执行常用命令。
  3. 实现一个更好的过滤器函数,拦截输入文本中的不当信息或垃圾信息

如果没有函数,这些都无法实现。但有了 Open WebUI 的这个框架,你可以轻松扩展这些功能!

在哪里找到并管理函数

函数与工具不在同一个地方。

  • 工具与模型访问相关,位于你的工作区选项卡中(你在此处添加模型、提示词和知识库)。如果被授予权限,用户可以添加工具。
  • 函数平台自定义相关,位于管理员面板中。它们仅由希望为所有用户扩展平台界面或行为的管理员进行配置和管理。

区别总结:

  • 工具允许 LLM 做更多超出其默认能力的事情(例如检索实时信息或基于外部数据执行自定义任务)。
  • 函数帮助 WebUI 本身 做更多事情,例如添加新的 AI 模型或创建更智能的数据过滤方式。

两者都被设计为可插拔的,这意味着你可以通过社区一键轻松导入到你的系统中!🎉 你无需花费数小时编写代码或反复钻研。

什么是管道 (Pipelines)?

然后,我们还有 管道 (Pipelines)……这里的事情听起来开始有些技术化了,但不要灰心。

管道是 Open WebUI 倡议的一部分,旨在使 WebUI 的每个部分都能与 OpenAI 的 API 系统互操作。从本质上讲,它们扩展了工具函数已经具备的功能,但现在具有更大的灵活性。它们允许你将功能转换为兼容 OpenAI API 的格式。 🧠

但有一点……

除非你正在处理超高级的设置,否则你可能不需要管道。

  • 管道是为谁准备的? 通常是专家或运行复杂用例的人。
  • 你什么时候需要它们? 如果你试图将处理任务从主要的 Open WebUI 实例分流到另一台机器上(这样你就不会让主系统超负荷)。

在大多数情况下,作为初学者甚至中级用户,你不需要担心管道。只需专注于享受工具函数为你的 Open WebUI 体验带来的好处即可!

想尝试一下吗? 🚀

进入 Open WebUI,前往社区部分,尝试导入一个像天气更新这样的工具,或者通过函数在工具栏中添加一个新功能。探索这些工具将向你展示 Open WebUI 是多么强大和灵活!

🌟 总有更多的东西值得学习,所以请保持好奇心,不断实验!