手把手教你用Dify搭建一个教程自动化生成工作流
手把手教你用 Dify 搭建一个教程自动化生成工作流
大家好,我是北平牧哥。
过去我们想学习一门技术时,需要在网上找教程来看。有许多教程网站会提供各种教程供人学习。在 AI 时代,我们可以借助大语言模型来帮我们生成任何你想学习的教程。
在这篇文章里,我将手把手教你用 Dify 来打造一个自动化教程生成工具。
我们的目标是只要输入一个你想学习的技术(例如:Python, MongoDB),AI 工作流就能帮你产出一套完整的教学课程。
那么我们开始吧!
设计思路
总体的设计思路是:
- 用户提供教程的名称后,首先生成课程大纲。
- 把课程大纲进行结构化转换后,拆分成更细章节。
- 迭代每一个章节,生成章节对应的课程内容。
- 整合内容,输出完整教程。
关于工作流
工作流(Workflow)是一系列有序的任务、活动或者步骤,被设计用来完成特定的业务流程或者工作流程。通过将复杂任务拆分成较小的子任务(节点) ,降低了系统的复杂度。它可以把上述的设计思路具象化为一系列节点,从而实现我们的目标。
操作步骤
开始
工作流都是由从“开始”节点开始执行,在这里可以配置用户输入的变量。我们的例子中,需要配置的是用户需要的教程名称。
生成课程大纲
这一步需要使用 LLM 大模型进行生成,所以需要添加一个 LLM 模块。Dify 提供了一些免费的配额使用,这里我使用的是 o1-mini-2024-09-12。
大模型生成内容质量的关键是提示词的设计,下图中的提示词可以作为一个参考。它要求大模型生成一个课程提纲,并且以 JSON 格式输出。
下面是其他可以使用的大模型列表
下图是一个生成结果示例
数据结构化转换
尽管是以 JSON 输出,大模型输出的并不是 JSON 对象而是 markdown 格式文本,并且前后带有json ...
这样的 md 标识符。所以需要进行结构化处理。可以选择 Dify 的模板转换,我这里是用【代码执行】节点去处理,原因是模板转换需要用 Jina 编写解析模板,增加了学习曲线。而用代码则只要正则表达式处理一下就可以拿到 json 文本,再简单处理一下就可以了。
经过这一步就把 LLM 返回的结构转换成按照小节为单位的数组,下一步就可以对每个小节进行迭代生成教程文章了。
迭代生成教程文章
这一步我们要加一个【迭代】节点,它可以把上一步输入的数组逐项代入进行操作。先看下整体迭代。
迭代器需要指定一个输入和一个输出变量,均为数组格式。
在【转 OBJECT】节点里,我们需要把迭代传入的 item 对象做一下拆解转换,这样后续的工作流节点里才能更清晰地使用每一个变量,而不是只能拿到 item Object。
转换后输出 chapter, subtitle, title 三个变量。
生成文章
又要用到 LLM 了,同样也是配置提示词。这里就用到前面转换的变量了,通过把章节标题(title)和子标题(subtitle)带入进提示词,就可以迭代执行 LLM 生成文章内容。
输出
迭代完成后,添加【结束】节点,添加要输出的变量即可。
以上就是整个工作流的核心流程,但输出的只是一个结构化数据,如果想使用还需要后续一些简单处理,这里不再赘述。整体流程执行过程如下:
当然你也可以用这个思路建一个 Chat 流程,以对话的方式直接输出。
总结
你已经学会了如何使用 Dify 创建一个自动化教程生成工具。借助大语言模型的强大能力,我们可以高效地生成完整的教学内容,从大纲到每一章的具体细节,整个过程完全自动化。希望这个工具能够帮助你更轻松地创建高质量的教学资源,提升学习与分享的效率。