本文适用对象:中级水平
目标:利用Jinja模版排版格式内容
上一节Dify应用实战课,让大家知道如何通过TTS将内容进行语音生成。
往期课程电梯:
[Dify应用实战(1) - 知识库检索](https://mp.weixin.qq.com/s?__biz=MzAxNjQxMTQ3NA==&mid=2452385024&idx=1&sn=301fe9d7e9c9720b0f9ca1a3afe9d4f6&scene=21#wechat_redirect)
[Dify应用实战(2) - 联网工具](https://mp.weixin.qq.com/s?__biz=MzAxNjQxMTQ3NA==&mid=2452385066&idx=1&sn=31e4341615d5ecca7fb3996452bebb73&scene=21#wechat_redirect)
[Dify应用实战(3) - 代码处理](https://mp.weixin.qq.com/s?__biz=MzAxNjQxMTQ3NA==&mid=2452385086&idx=1&sn=8bfa760a94c1cf1671187adc48161660&scene=21#wechat_redirect)
[Dify应用实战(4) - 生成语音](https://mp.weixin.qq.com/s?__biz=MzAxNjQxMTQ3NA==&mid=2452385099&idx=1&sn=20bd1fb7bbeeb3c31510d423be527564&scene=21#wechat_redirect)
除了语音生成,我们还有几种形态的生成,需要继续完成。今天教大家使用Jinja模版,将内容进行格式输出。
学习完成,你将掌握生成内容时,可以用固定的模版,填入动态变化的内容,来生成文案内容等。
01.
动手做一做
基于上上一节课的流程,在"代码执行"节点之后,新增一个"模版转换"的节点。
添加之后,连接"代码执行"节点和新增节点,再连接新增节点和结束节点(这里先移除语音输出处理,后面会加回来,要多路生成不同的内容)。新增参数(一定要先连接)"模版转换"的输入,选择"代码执行"的Object。这里注意,需要将"代码执行"节点也做一些调整。
输出的时候,要按字典而非之前的字符串输出。输出变量也选对象输出。
新增节点修改参数,输入模版内容,不变的内容和动态内容分开,动态内容的值需要有双大括号转义。
点击"发布",保存。提示"操作成功"。就可以进行测试了。测试如下:
结果输出是一个按模版填入动态获取内容的整段文案结果。
02.
补充说明
今天的任务,也非常简单,但为什么是中级水平呢?原因是,这里的Jinja模版的使用,也需要一定的编程经验。
Jinja原本是Python的模板引擎,最初是为Flask框架开发的,功能非常强大,可以动态生成网页,XML,CSV或者Markdown文本。
所以,在实际项目中,利用模板转换的功能,将中间数据,通过模板渲染成需要的格式,才能体现它真正的威力,千万不要被本文例子中的简单写法迷惑,觉得它过于简单哦。
下面例子展示了循环,判断等处理能力。
<ul>
{% for item in items %}
{% if item.cash %}
<p>小计金额:{{ item.total }}</p>
{% else %}
<p>无需付费。</p>
{% endif %}
{% endfor %}
</ul>
总结
今天在上次的工作流基础上,进一步增加利用模板进行数据的转换处理,可以定制以固定格式呈现的内容,并插入动态值,生成完整的内容。
如果你对AI的发展感兴趣,欢迎一键三连。有任何问题可以扫码添加好友,我们共同探讨。