本文档详细介绍了Dify插件中Tool的数据结构和使用方法。内容包括如何返回不同类型的消息(图片URL、链接、文本、文件、JSON)、如何创建变量和流式变量消息以及如何定义工具的输出变量模式以便于在workflow中引用。
文本
链接
图片
文件BLOB
JSON
等多种消息类型,你可以通过以下不同的接口返回不同类型的消息。
在默认情况下,一个工具在 workflow
中的输出会包含 files
text
json
三个固定变量,且你可以通过下面的方法来返回这三个变量的数据。
例如使用 create_image_message
来返回图片,但是同时工具也支持自定义的输出变量,从而可以更方便地在 workflow
中引用这些变量。
blob
文件的原始数据,bytes 类型。meta
文件的元数据。如果开发者需要明确的文件类型,请指定mime_type
,否则 Dify 将使用octet/stream
作为默认类型。object
一个 Python 的字典对象,会被自动序列化为 JSON。chatflow
应用中使用 answer
节点并引用了该变量,那么文本将以“打字机”的效果输出。但目前该方法仅支持字符串类型的数据。
workflow
应用中引用 tool
的输出变量,则有必要提前定义有哪些变量可能被输出。Dify 插件支持使用 json_schema
格式的输出变量定义,以下是一个简单的示例:
output_schema
,其中包含一个 name
字段,此时可以在 workflow
中引用该字段。但是请注意,还需要在工具的实现代码中返回一个变量才可以真正使用,否则将得到一个 None
返回结果。