Skip to main content

🎬 动作函数

动作函数允许您为最终用户编写自定义按钮到消息工具栏进行交互。此功能启用更多交互式消息传递,使用户能够在执行任务之前授予权限、生成结构化数据的可视化、下载聊天的音频片段,以及许多其他用例。

动作代码的脚手架可以在社区部分找到。

图形可视化动作的示例可以在下面的视频中看到。

图形可视化动作

动作

动作用于在消息UI中创建按钮(直接在单个聊天消息下方找到的小按钮)。

动作有一个单一的主要组件,称为动作函数。此组件接受一个定义动作类型和正在处理的数据的对象。

示例
async def action(
self,
body: dict,
__user__=None,
__event_emitter__=None,
__event_call__=None,
) -> Optional[dict]:
print(f"action:{__name__}")

response = await __event_call__(
{
"type": "input",
"data": {
"title": "写一条消息",
"message": "在这里写一条要追加的消息",
"placeholder": "输入您的消息",
},
}
)
print(response)

示例 - 指定动作前置内容

每个动作函数都可以在顶部包含一个文档字符串来定义按钮的元数据。这有助于自定义动作在Open WebUI中的显示和行为。

支持的前置内容字段示例:

  • title:动作的显示名称。
  • author:创建者的姓名。
  • version:动作的版本号。
  • required_open_webui_version:Open WebUI的最低兼容版本。
  • icon_url(可选):自定义图标的URL或Base64字符串。

Base64编码示例:

"""
title: 总结文本
author: @你
version: 1.0.0
required_open_webui_version: 0.5.0
icon_url: data:image/svg+xml;base64,<图像字符串>...
"""