def create_image_message(self, image: str) -> ToolInvokeMessage: """ Return an image URL message Dify will automatically download the image from the provided URL and display it to the user. Args: image: URL to an image file Returns: ToolInvokeMessage: Message object for the tool response """ pass
def create_link_message(self, link: str) -> ToolInvokeMessage: """ Return a clickable link message Args: link: URL to be displayed as a clickable link Returns: ToolInvokeMessage: Message object for the tool response """ pass
def create_text_message(self, text: str) -> ToolInvokeMessage: """ Return a text message Args: text: Text content to be displayed Returns: ToolInvokeMessage: Message object for the tool response """ pass
def create_blob_message(self, blob: bytes, meta: dict = None) -> ToolInvokeMessage: """ Return a file blob message For returning raw file data such as images, audio, video, or documents (PPT, Word, Excel, etc.) Args: blob: Raw file data in bytes meta: File metadata dictionary. Include 'mime_type' to specify the file type, otherwise 'octet/stream' will be used Returns: ToolInvokeMessage: Message object for the tool response """ pass
def create_json_message(self, json: dict) -> ToolInvokeMessage: """ Return a formatted JSON message Useful for data transmission between workflow nodes. In agent mode, most LLMs can read and understand JSON data. Args: json: Python dictionary to be serialized as JSON Returns: ToolInvokeMessage: Message object for the tool response """ pass
参数
string
必填
将被下载并显示的图片 URL
string
必填
将显示为可点击链接的 URL
string
必填
要显示的文本内容
bytes
必填
字节格式的原始文件数据
dict
文件元数据,包括:
mime_type:文件的 MIME 类型(例如 image/png)
与文件相关的其他元数据
dict
必填
要序列化为 JSON 的 Python 字典
处理文件 blob 时,请始终在 meta 字典中指定 mime_type,以确保文件得到正确处理。例如:{"mime_type": "image/png"}。
变量
from typing import Anydef create_variable_message(self, variable_name: str, variable_value: Any) -> ToolInvokeMessage: """ Create a named variable for workflow integration For non-streaming output variables. If multiple instances with the same name are created, the latest one overrides previous values. Args: variable_name: Name of the variable to create variable_value: Value of the variable (any Python data type) Returns: ToolInvokeMessage: Message object for the tool response """ pass
def create_stream_variable_message( self, variable_name: str, variable_value: str) -> ToolInvokeMessage: """ Create a streaming variable with typewriter effect When referenced in an answer node in a chatflow application, the text will be output with a typewriter effect. Args: variable_name: Name of the variable to create variable_value: String value to stream (only strings supported) Returns: ToolInvokeMessage: Message object for the tool response """ pass
identity: author: example_author name: example_tool label: en_US: Example Tool zh_Hans: 示例工具 ja_JP: ツール例 pt_BR: Ferramenta de exemplodescription: human: en_US: A simple tool that returns a name zh_Hans: 返回名称的简单工具 ja_JP: 名前を返す簡単なツール pt_BR: Uma ferramenta simples que retorna um nome llm: A simple tool that returns a name variableoutput_schema: type: object properties: name: type: string description: "The name returned by the tool" age: type: integer description: "The age returned by the tool" profile: type: object properties: interests: type: array items: type: string location: type: string
def run(self, inputs): # Process inputs and generate a name generated_name = "Alice" # Return the name as a variable that matches the output_schema return self.create_variable_message("name", generated_name)
def run(self, inputs): # Generate complex structured data user_data = { "name": "Bob", "age": 30, "profile": { "interests": ["coding", "reading", "hiking"], "location": "San Francisco" } } # Return individual variables self.create_variable_message("name", user_data["name"]) self.create_variable_message("age", user_data["age"]) self.create_variable_message("profile", user_data["profile"]) # Also return a text message for display return self.create_text_message(f"User {user_data['name']} processed successfully")