Dify重要节点介绍

4,472 阅读3分钟

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 工作流中扮演着重要角色,通过灵活的组合和配置,可以实现复杂的业务逻辑和自动化处理。