AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


手把手教你用Dify 工作流搭建资讯推送应用
发布日期:2024-07-27 08:38:09 浏览次数: 2331 来源:乐豆说


前言

在本文中,我们将展示如何使用 Dify 的工作流来搭建一个资讯推送应用。

我们的目标是从 Hacker News 获取最新的文章资讯,并将整理后的资讯推送到飞书群中。通过这个过程,我们将体验到 Dify 工作流的强大功能和自动化处理的便捷性。

什么是工作流

在开始之前先简单了解一下工作流。

工作流(Workflow)是一系列有序的任务、活动或者步骤,被设计用来完成特定的业务流程或者工作流程。工作流程描述了任务的顺序、条件、责任人和其他相关信息,以确保工作按照既定的流程和规则进行。工作流程通常涉及多个参与者和系统之间的协调和交互。

工作流通过将复杂任务拆分成较小的子任务(节点) ,降低系统的复杂度,减少了对提示词技术和模型推理能力的依赖,提高了 LLM 应用面向复杂任务的性能,提升了系统的可解释性、稳定性和容错性。

使用到的节点类型

在实现过程中,我们将使用以下节点类型:

  1. 1. 开始节点 :配置程序启动的初始参数。

  2. 2. HTTP 请求节点 :发送 HTTP 请求获取数据。

  3. 3. 迭代节点 :遍历数组执行多次步骤。

  4. 4. 参数提取器节点 :处理和提取参数。

  5. 5. 模板节点 :允许借助 Jinja2 的 Python 模板语言灵活地进行数据转换、文本处理等。

  6. 6. LLM 节点 :调用大语言模型处理自然语言。

  7. 7. 发送飞书消息节点 :将整理后的资讯推送到飞书。

操作步骤

第一步:开始

通过开始节点,我们可以配置程序启动的初始参数,例如 API Key、运营的类目等。这样我们便迈出了第一步。接下来我们开始抓取想要的数据。

第二步:HTTP 请求

以 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 节点

LLM 节点的作用是调用大语言模型回答问题或者处理自然语言。

如果你是初次使用 Dify ,在 LLM 节点选择模型之前,需要在 系统设置—模型供应商 内提前完成模型配置

我们新建一个 LLM 节点链接到迭代中,并配置好我们的 prompt。在我们输入 User 内容的时候发现无法获取到文章详情,因为LLM节点不支持数组格式的入参,因此需要将数组转成文本才能进行下去。

通过查看文档 如何将数组转换为文本,得知我们需要使用 代码节点 转换或者 模板节点转换。

这里我们使用 模板节点 转换 :

如此我们的 LLM 节点就能正常运行了,点击运行进行调试。

成功运行。

第五步:发送飞书消息

接下来我们将整理好的资讯推送到飞书,添加节点 - 工具 - 发送飞书消息。

在飞书群中创建机器人后获得 WEBHOOK 的 KEY 后填入:

实现效果

再次运行,结果展示:

至此,我们就完成了一个资讯获取 - 数据处理 - 推送到 IM 的 Dify 应用。通过这个过程,我们展示了如何使用 Dify 的工作流来实现自动化资讯推送,并体验到了工作流的强大功能和便捷性。

总结

今天我们学习了如何使用 Dify 的工作流来搭建一个资讯推送应用。从配置初始参数开始,我们逐步通过 HTTP 请求获取数据,使用迭代节点处理数据,再通过 LLM 节点进行数据整理,最后将整理好的资讯推送到飞书。整个过程不仅展示了工作流的强大功能,也让我们体验到了自动化处理的便捷性。

当然,Dify 工作流的强大功能远不止于此。它还提供了更多的节点和功能,等待我们去探索和应用。后续我们将继续发布相关文章,带领大家一起深入学习和探索 Dify 工作流的更多可能性。


53AI,企业落地应用大模型首选服务商

产品:大模型应用平台+智能体定制开发+落地咨询服务

承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

与创始人交个朋友

回到顶部

 
扫码咨询