Dify变量太乱?模板转换节点帮你一键格式化输出
Dify的“模板转换”节点就像是一个智能文字处理器,可以将内容以统一的标准格式化输出。例如:
- 统一格式: 将用户的姓名、年龄、问题拼成一段规范的草稿。
- 防止混乱: AI 有时处理多个变量会“打架”,先用模板节点理顺,再喂给 AI。
- 生成结果统一/Markdown: 自动生成一份固定样式的报告或表格。
一. 什么是模板转换节点?
- 输入:杂乱的数据。
- 输出:统一格式化后的内容。
| 功能 | 说明 |
|---|---|
| 数据重组 | 把多个变量组合成一段文字 |
| 格式美化 | 添加换行、标题、列表等格式 |
| 条件拼接 | 根据条件选择不同内容 |
| 变量计算 | 简单的数学运算和逻辑处理 |

二. 参数设置
- 输入变量:前面要有个变量名称,后面的变量值里可以选择之前节点里产生的变量内容。
- 代码:Dify 使用 Jinja2 模板引擎,掌握以下几个语法就能应对 90% 的场景。
语法一:变量插入
{# 基本语法:双大括号包裹变量名 #}
你好,{{name}}!
{# 使用 Dify 节点的输出变量 #}
用户问题是:{{#start.user_question#}}
实际例子:
输入变量:name = "小明"
模板:你好,{{name}}!
输出:你好,小明!
语法二:条件判断
{% if score >= 90 %}
🏆 优秀!成绩:{{score}}分
{% elif score >= 60 %}
✅ 及格!成绩:{{score}}分
{% else %}
❌ 不及格,成绩:{{score}}分,需要补考
{% endif %}
语法三: 循环
{# 假设 items = ["苹果", "香蕉", "橙子"] #}
购物车商品:
{% for item in items %}
- {{item}}
{% endfor %}
输出结果:
购物车商品:
- 苹果
- 香蕉
- 橙子
语法四:过滤器(数据加工)
{# 常用过滤器 #}
{{ name | upper }} {# 转大写 #}
{{ name | lower }} {# 转小写 #}
{{ num | round(2) }} {# 保留2位小数 #}
{{ text | truncate(100) }} {# 截断100字符 #}
{{ list | length }} {# 获取列表长度 #}
{{ text | default("无") }} {# 设置默认值 #}
三. 邮件模板案例
目标:根据订单数据生成统一风格的邮件。假设下面是前面节点变量:
{
"customer": "李四",
"amount": 1299.00,
"items": ["无线耳机", "保护套"],
"is_vip": true,
"status": "paid"
}
代码内容:
{% if order.is_vip %}
尊敬的 VIP 会员 {{order.customer}},
{% else %}
亲爱的 {{order.customer}},
{% endif %}
{% if order.status == "paid" %}
🎉 您的订单已支付成功!
订单金额:¥{{order.amount | round(2)}}
商品清单:
{% for item in order.items %}
✓ {{item}}
{% endfor %}
{% if order.is_vip %}
💎 VIP专属福利:您的订单已享受免费加急配送!
{% endif %}
预计发货时间:24小时内
{% else %}
⏳ 您的订单状态:{{order.status}},请耐心等待。
{% endif %}
如有问题,请联系客服:400-xxx-xxxx
输出结果(VIP用户):
尊敬的 VIP 会员 李四,
🎉 您的订单已支付成功!
订单金额:¥1299.00
商品清单:
✓ 无线耳机
✓ 保护套
💎 VIP专属福利:您的订单已享受免费加急配送!
预计发货时间:24小时内
如有问题,请联系客服:400-xxx-xxxx
最后再加入一个输出即可得到格式标准的答案。
订阅评论
登录
0 评论
最新












