手把手教你用 Dify 工作流搭建资讯推送应用
在本文中,我们将展示如何使用 Dify 的工作流来搭建一个资讯推送应用。
目标很明确:从 Hacker News 获取最新的文章资讯,经过梳理后,直接推送到飞书群里。通过这个过程,可以直观感受到 Dify 工作流的强大之处,以及自动化处理带来的便捷体验。
什么是工作流
在动手之前,我们先简单聊一下工作流这个概念。
工作流(Workflow)本质上是一系列有序的任务、活动或步骤,被设计出来就是为了完成特定的业务逻辑或工作流程。它描述了任务的先后顺序、执行条件、责任人以及其他相关信息,确保工作能按照既定的流程和规则顺利推进。通常,一个工作流程会涉及到多个参与者和系统之间的协调与交互。
通过将复杂任务拆解成一个个较小的子任务(也就是节点),工作流能有效降低系统复杂度,减少对提示词技术和模型推理能力的依赖。这不仅提升了 LLM 应用处理复杂任务的性能,也大大增强了系统的可解释性、稳定性和容错性。
使用到的节点类型
在实现过程中,我们会用到以下几种节点类型:
- :配置程序启动时的初始参数。
开始节点
- :发送 HTTP 请求来抓取数据。
HTTP 请求节点
- :遍历数组,多次执行相同步骤。
迭代节点
- :处理和提取关键参数。
参数提取器节点
- :借助 Jinja2 模板语言,灵活地进行数据转换、文本处理等操作。
模板节点
- :调用大语言模型来处理自然语言。
LLM 节点
- :将整理好的资讯推送到飞书群。
发送飞书消息节点
操作步骤
第一步:开始

通过开始节点,我们可以配置程序启动时的初始参数,比如 API Key、想要运营的类目等。这一步看似简单,却是整个流程的起点。接下来,我们就要开始抓取目标数据了。
第二步:HTTP 请求
以 Hacker News 为例,先找到获取文章列表的 API 地址:https://hacker-news.firebaseio.com/v0/beststories.json?print=pretty。
创建一个 HTTP 请求节点,配置好包括 URL、请求头、查询参数、请求体内容以及认证信息等。HTTP 请求的返回值包括响应体、状态码、响应头和文件等,这些变量在后续节点中都可以直接引用,非常方便。

配置完成后,先试着运行一下,看看效果。

请求成功,顺利拿到了文章列表的 IDs。一切顺利,接下来就需要遍历这些 IDs,逐一获取文章的详细信息。
第三步:迭代
迭代节点的作用就是对数组执行多次步骤,直到输出所有结果。它是处理重复性任务的利器,比如生成长篇文章、批量请求数据等场景都非常适用。我们把上一步得到的 IDs 输入到迭代器中即可。

不过,连接上迭代节点后,发现没有可用的变量。查一下文档会知道:
使用迭代的条件是确保输入值已经格式化为列表对象
在上一步列表请求的返回格式中,body 是一个 String。因此,我们需要对返回结果做一下处理,在迭代节点之前引入一个 参数提取器。

将列表返回的 body 作为入参,提取参数设置为数字数组 ids,并简单声明一下指令:
example:
body: [1,2,3,4,5...500]
返回 Array[Number], 并只保留10个
这样不仅能把参数转换提取出来,还能对参数进行预处理,比如限制结果数量。通过这种方式,确保连接到迭代节点时,能够得到格式化且符合要求的数组入参 ids。

在迭代节点中,我们能够获取到每一次遍历的元素,也就是每个文章的 id。接下来,我们可以对每个 id 做进一步处理,比如发送新的 HTTP 请求来获取文章的详细信息。

然后,我们添加好请求详情的 HTTP 节点,运行就能拿到详细信息了。吸取刚才的经验,留意一下迭代器输出的变量是 Array[String]。
接下来,我们要使用 LLM 节点对返回的结果进行整理总结。
第四步:LLM 节点
LLM 节点的作用就是调用大语言模型来回答问题或处理自然语言。
如果你是初次使用 Dify,在 LLM 节点选择模型之前,需要先在
内提前完成模型配置。系统设置—模型供应商
新建一个 LLM 节点,链接到迭代中,并配置好我们的 prompt。但在输入 User 内容时,发现无法获取到文章详情——因为 LLM 节点不支持数组格式的入参,所以需要先将数组转换成文本。

查阅文档,发现可以使用 代码节点 或 模板节点 来完成转换。这里我们选择使用
模板节点


这样一来,LLM 节点就能正常运行了。点击运行进行调试。

运行成功。
第五步:发送飞书消息
接下来,我们将整理好的资讯推送到飞书。添加节点 — 工具 — 发送飞书消息。
在飞书群中创建机器人后,获得 WEBHOOK 的 KEY,填入配置即可:

实现效果
再次运行,看一下最终效果:

至此,一个完整的“资讯获取 — 数据处理 — 推送到 IM”的 Dify 应用就搭建完成了。通过这个流程,我们亲身体验了 Dify 工作流的强大功能和便捷性。
总结
今天,我们手把手演示了如何使用 Dify 的工作流来搭建一个资讯推送应用。从配置初始参数开始,逐步通过 HTTP 请求获取数据,利用迭代节点处理数据,再借助 LLM 节点进行整理,最后将整理好的资讯推送到飞书。整个过程不仅展示了工作流的强大之处,也让我们感受到了自动化处理的便利。
当然,Dify 工作流的强大功能远不止于此。它还提供了更多的节点和功能,等待我们去探索和应用。后续我们会继续带来相关文章,和大家一起深入挖掘 Dify 工作流的更多可能性。
-
- 关于宇宙的好的网名有哪些
- 角色扮演 | 1
- 网名