函数 (Functions)
🚀 什么是函数 (Functions)?
函数就像是 Open WebUI 的插件。它们帮助您扩展其功能——无论是添加对 Anthropic 或 Vertex AI 等新 AI 模型提供商的支持、调整消息的处理方式,还是在界面中引入自定义按钮以提高可用性。
与可能需要复杂集成的外部工具不同,**函数是内置的,并在 Open WebUI 环境中运行。**这意味着它们运行速度快、模块化,且不依赖于外部依赖项。
将函数想象成模块化构建块,让您可以根据自己的需求精确地增强 WebUI 的工作方式。它们轻量级、高度可定制,并使用纯 Python 编写,因此您可以自由地创造任何东西——从新的 AI 驱动的工作流,到与您使用的任何东西(如 Google 搜索或 Home Assistant)的集成。
🏗️ 函数的类型
Open WebUI 中有三种类型的函数,每种都有特定的用途。让我们拆解并解释它们各自的作用:
1. Pipe 函数 – 创建自定义“智能体/模型”
Pipe 函数用于创建自定义智能体/模型或集成,然后它们会像独立模型一样出现在界面中。
它的作用是什么?
- Pipe 允许您定义复杂的工作流。例如,您可以创建一个 Pipe,将数据发送给模型 A 和模型 B,处理它们的输出,并将结果合并为一个最终答案。
- Pipe 甚至不需要使用 AI!它们可以是 搜索 API、天气数据,甚至是 Home Assistant 等系统的设置。基本上,任何您想要交互的东西都可以成为 Open WebUI 的一部分。
用例示例: 想象一下,您想直接从 Open WebUI 查询 Google 搜索。您可以创建一个 Pipe 函数:
- 将您的消息作为搜索查询。
- 将查询发送到 Google 搜索的 API。
- 处理响应并像普通的“模型”响应一样将其返回到 WebUI 中。
启用后,Pipe 函数会作为其自己的可选模型显示。每当您需要像界面中的模型一样工作的自定义功能时,请使用 Pipe。
有关详细指南,请参阅 Pipe 函数。
2. Filter 函数 – 修改输入和输出
Filter 函数就像一个在数据发送到 AI 之前或返回之后对其进行微调的工具。
它的作用是什么? 过滤器充当工作流中的“钩子 (hooks)”,主要由两个部分组成:
- Inlet (入口):调整发送到模型的输入。例如,添加额外的指令、关键词或格式调整。
- Outlet (出口):修改从模型接收到的输出。例如,清理响应、调整语气或将数据格式化为特定样式。
用例示例: 假设您正在处理一个需要精确格式的项目。您可以使用过滤器来确保:
- 您的输入始终转换为所需的格式。
- 模型的输出在显示之前被清理干净。
过滤器可以链接到特定模型,也可以根据您的需求全局为所有模型启用。
查看完整指南以获取更多示例和说明:Filter 函数。
3. Action 函数 – 添加自定义按钮
Action 函数用于在聊天界面中添加自定义按钮。
它的作用是什么? 动作允许您定义交互式快捷方式,直接从聊天中触发特定功能。这些按钮显示在单条聊天消息 下方,让您可以方便地一键访问您定义的动作。
用例示例: 假设您经常需要总结长消息或生成特定输出(如翻译)。您可以创建一个 Action 函数:
- 在每条收到的消息下方添加一个“总结 (Summarize)”按钮。
- 点击后,它会触发您的自定义函数来处理该消息并返回摘要。
按钮提供了一种简洁且用户友好的方式来与您定义的扩展功能进行交互。
在 Action 函数指南中了解如何设置它们。
🛠️ 如何使用函数
以下是在 Open WebUI 中使用函数的方法:
1. 安装函数
您可以通过 Open WebUI 界面安装函数,也可以手动导入它们。您可以在 Open WebUI 社区网站上找到社区创建的函数。
⚠️ 请谨慎操作。 仅安装来自受信任来源的函数。运行未知代码会带来安全风险。
2. 启用函数
安装后必须明确启用函数:
- 当您启用 Pipe 函数时,它 在界面中作为其自己的模型可用。
- 对于 Filter 和 Action 函数,仅启用是不够的——您还需要将它们分配给特定模型,或为所有模型全局启用。
3. 将过滤器或动作分配给模型
- 导航至
工作区 => 模型并在那里将您的过滤器或动作分配给相关模型。 - 或者,通过转到
工作区 => 函数,选择 "..." 菜单并切换 Global (全局) 开关,为所有模型全局启用函数。