微信扫码
与创始人交个朋友
我要投稿
在本文中,我们将展示如何使用 Dify 的工作流来搭建一个资讯推送应用。
我们的目标是从 Hacker News 获取最新的文章资讯,并将整理后的资讯推送到飞书群中。通过这个过程,我们将体验到 Dify 工作流的强大功能和自动化处理的便捷性。
在开始之前先简单了解一下工作流。
工作流(Workflow)是一系列有序的任务、活动或者步骤,被设计用来完成特定的业务流程或者工作流程。工作流程描述了任务的顺序、条件、责任人和其他相关信息,以确保工作按照既定的流程和规则进行。工作流程通常涉及多个参与者和系统之间的协调和交互。
工作流通过将复杂任务拆分成较小的子任务(节点) ,降低系统的复杂度,减少了对提示词技术和模型推理能力的依赖,提高了 LLM 应用面向复杂任务的性能,提升了系统的可解释性、稳定性和容错性。
在实现过程中,我们将使用以下节点类型:
1. 开始节点 :配置程序启动的初始参数。
2. HTTP 请求节点 :发送 HTTP 请求获取数据。
3. 迭代节点 :遍历数组执行多次步骤。
4. 参数提取器节点 :处理和提取参数。
5. 模板节点 :允许借助 Jinja2 的 Python 模板语言灵活地进行数据转换、文本处理等。
6. LLM 节点 :调用大语言模型处理自然语言。
7. 发送飞书消息节点 :将整理后的资讯推送到飞书。
通过开始节点,我们可以配置程序启动的初始参数,例如 API Key、运营的类目等。这样我们便迈出了第一步。接下来我们开始抓取想要的数据。
以 Hacker News 为例子,先找到获取列表数据的APIhttps://hacker-news.firebaseio.com/v0/beststories.json?print=pretty
。
创建一个 HTTP 请求节点,可以通过配置 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 请求来获取文章的详细信息。这样,我们就能逐一处理每个文章的 id
,确保每篇文章都能被正确地获取和处理。
然后我们添加好请求详情的 HTTP 节点,运行就可以得到详情的结果。
吸取刚才的经验,我们留意一下迭代器输出的变量是 Array[String]。
而接下来我们要做的就是使用 LLM 节点对返回的结果进行整理总结,我们来看看LLM 节点。
LLM 节点的作用是调用大语言模型回答问题或者处理自然语言。
如果你是初次使用 Dify ,在 LLM 节点选择模型之前,需要在 系统设置—模型供应商 内提前完成模型配置
我们新建一个 LLM 节点链接到迭代中,并配置好我们的 prompt。在我们输入 User 内容的时候发现无法获取到文章详情,因为LLM节点不支持数组格式的入参,因此需要将数组转成文本才能进行下去。
通过查看文档 如何将数组转换为文本,得知我们需要使用 代码节点
转换或者 模板节点
转换。
这里我们使用 模板节点 转换 :
如此我们的 LLM 节点就能正常运行了,点击运行进行调试。
成功运行。
接下来我们将整理好的资讯推送到飞书,添加节点 - 工具 - 发送飞书消息。
在飞书群中创建机器人后获得 WEBHOOK 的 KEY 后填入:
再次运行,结果展示:
至此,我们就完成了一个资讯获取 - 数据处理 - 推送到 IM 的 Dify 应用。通过这个过程,我们展示了如何使用 Dify 的工作流来实现自动化资讯推送,并体验到了工作流的强大功能和便捷性。
今天我们学习了如何使用 Dify 的工作流来搭建一个资讯推送应用。从配置初始参数开始,我们逐步通过 HTTP 请求获取数据,使用迭代节点处理数据,再通过 LLM 节点进行数据整理,最后将整理好的资讯推送到飞书。整个过程不仅展示了工作流的强大功能,也让我们体验到了自动化处理的便捷性。
当然,Dify 工作流的强大功能远不止于此。它还提供了更多的节点和功能,等待我们去探索和应用。后续我们将继续发布相关文章,带领大家一起深入学习和探索 Dify 工作流的更多可能性。
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-04-25
2024-04-24
2024-07-20
2024-07-16
2024-05-08
2024-05-07
2024-05-09
2024-06-21
2024-04-25
2024-08-06