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