1. 模板转换节点 (Template)
功能
模板转换节点允许使用 Jinja2 的 Python 模板语言进行灵活的数据转换和文本处理。通过定义模板,可以将输入数据格式化为所需的输出格式。
使用场景
- 数据格式化: 将原始数据转换为特定格式,例如将 JSON 数据转换为 HTML 或 Markdown 格式。
- 动态内容生成: 根据输入动态生成文本内容,例如生成个性化的邮件或报告。
示例
假设你有一个用户信息的字典,你可以使用模板转换节点生成一封个性化的欢迎邮件:
Hello {{ user.name }},
Welcome to our service! Your registration date is {{ user.registration_date }}.
Best regards,
The Team
2. 变量聚合节点 (Variable Aggregator)
功能
变量聚合节点用于将来自多个分支的变量聚合为一个变量,以便在后续节点中统一配置和使用。
使用场景
- 数据整合: 当工作流中有多个分支产生不同的输出时,可以使用变量聚合节点将这些输出整合为一个统一的变量,方便后续处理。
- 简化数据传递: 减少在多个节点之间传递多个变量的复杂性。
示例
如果有多个分支分别输出用户的姓名、地址和联系方式,可以使用变量聚合节点将这些信息整合为一个用户信息对象。
3. 变量赋值节点 (Variable Assigner)
功能
变量赋值节点用于向可写入变量(例如会话变量)进行赋值操作。可以动态更新变量的值。
使用场景
- 动态更新: 在工作流的执行过程中,根据条件或用户输入动态更新变量的值。
- 状态管理: 管理工作流中的状态信息,例如跟踪用户的进度或选择。
示例
在用户选择不同选项时,可以使用变量赋值节点更新用户的选择状态:
{"user_selection": "option_1"}
4. 迭代节点 (Iteration)
功能
迭代节点用于对列表对象执行多次步骤,直到输出所有结果。可以在工作流中处理批量数据。
使用场景
- 批量处理: 当需要对一组数据(如用户列表、订单列表)进行相同的操作时,可以使用迭代节点。
- 结果收集: 在每次迭代中收集结果,最终输出所有处理结果。
示例
如果你有一个用户列表,可以使用迭代节点逐个处理每个用户的信息,并生成相应的报告。
5. 参数提取节点 (Parameter Extractor)
功能
参数提取节点利用大语言模型(LLM)从自然语言中推理并提取结构化参数,用于后续的工具调用或 HTTP 请求。
使用场景
- 信息提取: 从用户输入的自然语言中提取关键信息,例如提取日期、地点、数量等。
- 自动化处理: 在自动化工作流中,根据用户的自然语言输入提取必要的参数,以便后续处理。
示例
用户输入:“我想在明天上午10点预约医生。”,参数提取节点可以提取出以下结构化参数:
{
"date": "tomorrow",
"time": "10:00 AM",
"service": "doctor appointment"
}
6. HTTP 请求节点 (HTTP Request)
功能
HTTP 请求节点允许通过 HTTP 协议发送服务器请求,适用于获取外部数据、调用 API、生成图片等场景。
使用场景
- 外部数据获取: 从外部 API 获取数据,例如天气信息、股票价格等。
- Webhook 处理: 处理来自其他服务的 webhook 请求。
- 数据提交: 向外部服务提交数据,例如用户注册信息。
示例
发送一个 POST 请求以获取天气信息:
http
POST
/weatherHost:
api.weather.comContent-Type: application/json
{
"location": "Beijing"
}
总结
这些节点在 Dify 工作流中扮演着重要角色,通过灵活的组合和配置,可以实现复杂的业务逻辑和自动化处理。