Tool
Last updated
Last updated
在阅读详细的接口文档之前,请确保你已经阅读过,并对 Dify 插件的工具接入流程已有大致了解。
Dify 支持文本
链接
图片
文件BLOB
JSON
等多种消息类型,你可以通过以下不同的接口返回不同类型的消息。
在默认情况下,一个工具在 workflow
中的输出会包含 files
text
json
三个固定变量,且你可以通过下面的方法来返回这三个变量的数据。
例如使用 create_image_message
来返回图片,但是同时工具也支持自定义的输出变量,从而可以更方便地在 workflow
中引用这些变量。
只需要传递图片的 URL,Dify 将通过链接自动下载图片并返回给用户。
如果你需要返回一个链接,使用以下接口。
如果你需要返回一个文本消息,使用以下接口。
文件
如果你需要返回文件的原始数据,如图片、音频、视频、PPT、Word、Excel 等,可以使用以下接口。
blob
文件的原始数据,bytes 类型。
meta
文件的元数据。如果开发者需要明确的文件类型,请指定mime_type
,否则 Dify 将使用octet/stream
作为默认类型。
如果你需要返回一个格式化的 JSON,可以使用以下接口。这通常用于 workflow 中的节点间的数据传递。在 agent 模式中,大部分大模型也都能够阅读和理解 JSON。
object
一个 Python 的字典对象,会被自动序列化为 JSON。
对于非流式输出的变量,你可以使用以下接口返回,如创建多份,后者将覆盖前者。
如果你想以“打字机”效果输出一段文字,可以使用流式变量输出文本。如果你在 chatflow
应用中使用 answer
节点并引用了该变量,那么文本将以“打字机”的效果输出。但目前该方法仅支持字符串类型的数据。
上述示例代码定义了一个简单的工具,并为它指定了 output_schema
,其中包含一个 name
字段,此时可以在 workflow
中引用该字段。但是请注意,还需要在工具的实现代码中返回一个变量才可以真正使用,否则将得到一个 None
返回结果。
如果想要在 workflow
应用中引用 tool
的输出变量,则有必要提前定义有哪些变量可能被输出。Dify 插件支持使用 格式的输出变量定义,以下是一个简单的示例: