V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
setimouse
V2EX  ›  分享创造

手把手教你用 Dify 搭建一个教程自动化生成工作流

  •  
  •   setimouse · 49 天前 · 1620 次点击
    这是一个创建于 49 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好,我是北平牧哥。

    过去我们想学习一门技术时,需要在网上找教程来看。有许多教程网站会提供各种教程供人学习。在 AI 时代,我们可以借助大语言模型来帮我们生成任何你想学习的教程。

    在这篇文章里,我将手把手教你用 Dify 来打造一个自动化教程生成工具。

    我们的目标是只要输入一个你想学习的技术(例如:Python, MongoDB ),AI 工作流就能帮你产出一套完整的教学课程。

    那么我们开始吧!

    设计思路

    我们总体的设计思路是:

    1. 用户提供教程的名称后,首先生成课程大纲。
    2. 把课程大纲进行结构化转换后,拆分成更细章节。
    3. 迭代每一个章节,生成章节对应的课程内容。
    4. 整合内容,输出完整教程。

    关于工作流

    工作流( Workflow )是一系列有序的任务、活动或者步骤,被设计用来完成特定的业务流程或者工作流程。通过将复杂任务拆分成较小的子任务(节点) ,降低了系统的复杂度。它可以把上述的设计思路具象化为一系列节点,从而实现我们的目标。

    image.png

    操作步骤

    开始

    工作流都是由从“开始”节点开始执行,在这里可以配置用户输入的变量。我们的例子中,需要配置的是用户需要的教程名称。

    图片

    生成课程大纲

    这一步需要使用 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 创建一个自动化教程生成工具。借助大语言模型的强大能力,我们可以高效地生成完整的教学内容,从大纲到每一章的具体细节,整个过程完全自动化。希望这个工具能够帮助你更轻松地创建高质量的教学资源,提升学习与分享的效率。


    3 条回复    2024-10-29 20:37:03 +08:00
    setimouse
        1
    setimouse  
    OP
       49 天前
    dify 工作流已经开源到了 GitHub

    地址: https://github.com/pekingmuge/dify_course

    需要的请自取。
    Cola98
        2
    Cola98  
       48 天前
    哥们,你的图挂了
    SantinoSong
        3
    SantinoSong  
       48 天前
    看不到图
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2876 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:00 · PVG 21:00 · LAX 05:00 · JFK 08:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.