1.前言
热点新闻是指在特定时间段内,受到公众广泛关注和讨论的新闻事件或话题。这些新闻通常具有时效性、影响力和传播性,能够引发社会的广泛关注和讨论。热点新闻不仅反映了当前社会的热点问题,也体现了公众的兴趣和关注点。
在当今信息化浪潮席卷的时代,海量媒体资讯如潮水般每日涌来。然而,受制于有限的时间与精力,人们往往更倾向于聚焦两类信息:一类是与自身兴趣深度契合的个性化新闻,另一类则是当下全网热议的焦点事件。在此背景下,能否快速、精准地捕捉实时热点资讯,成为现代人高效获取信息、把握时代脉搏的关键所在。
上期给大家介绍过《dify案例分享-Dify+RSS 聚合 8 大平台实时热点,新闻获取效率飙升 300%》之前的工作流是需要手工触发,除了手工触发外,我们希望每天能够在规定时间内收到最新的新闻资讯推送,那么有没有办法实现这样的工作流呢?今天我就带大家一起来实现这个工作流。
这里我们使用2个工作流实现一个整合。 使用N8N来调用dify来实现这个效果

N8N工作流

dify工作流

测试的效果是N8N 每天早上8点会触发定时任务调度,调度任务会调用dify chatflow工作流接口,chatflow工作会收到消息发送QQ 邮箱接受消息。

话不多说下面就给大家一步一步拆解上面的的工作流是如何制作的。
2.工作流的制作
上面的工作流分2个 一个是N8N 一个是dify。 这里可能有小伙伴疑问了,为什么不在一个工作流里面制作呢?
一开始我也是打算在一个dify工作流实现的,目前dify工作流这块没有定时触发功能,需要实现可以通过代码或者其他第三方工具来实现。由于代码实现很多小白不会。 我最近在看N8N 它这里有个比较好的功能就是实现定时任务触发。 这样我们就可以实现一行代码不写执行定时任务调度的需求了。
2.1 dify工作流
这个dify工作流我是基于上期文章来实现的,已经实现的功能这里我们就不展开讲了,不熟悉的小伙伴可以看我上期文章
《dify案例分享-Dify+RSS 聚合 8 大平台实时热点,新闻获取效率飙升 300%》

我们直接复制上期的工作流,名字改成 《63-dify案例分享-xxxx》

打开新复制的工作流
模版转换
上个工作流直接回复是由3个参数合并而成的,这次写到邮件里面 所以我们借用模版转换 把3个参数合并成一个参数输出

三个输入参数分别是开始节点用户输入的 type 、获取当前系统时间、 LLM大语言模型返回的markdown格式数据
合并的代码如下
python
{{ arg3 }}|热榜新闻|{{ arg1 }}|{{ arg2 }}
163SMTP邮件发送
这里我们使用163SMTP邮件这个第三方组件来实现邮件的发送,之前也有给大家介绍过 企业微信和飞书发送,本次教程我们换一个163邮件发送和收邮件的方案。
dify 插件市场上搜索"163"

我们点击"安装"

插件安装完成后,我们可以在我们已经安装的插件检索到

上面我们完成了163邮件发送插件的安装。 接下来我们回到dify工作流平台

接下来我们配置一下163邮件发送
1 邮箱用户名 这里是我163邮件的发送人的信息,我的邮箱是[email protected]
-
授权码 这个授权从哪里来呢?
打开163邮箱,点击设置
我们需要在 授权密码管理 新创建一个授权密码。点击授权后我们需要保存这个授权码,把上面的授权码填写到
3.收件人邮箱,多个邮箱逗号隔开,我这里就填写我QQ 邮箱 [email protected]
-
主题, 这个就是发送邮件的主题内容,这里我们填写 "每日实时热点新闻"
-
内容, 这里地方就是我们上面模版转换的输出。
整体邮箱配置如下图:
上面我们就完成了工作流的主体配置。
工作流调试
这里我们需要把这个工作流做成第三方调用的API 接口。
API密钥创建
点击访问API

进入API 页面,显示API 接口的调用访问的文档,我们点击右边api 密钥,先创建这个chatflow 的 api


这个API 秘钥我们需要用个记事本保存一下,后面会用到。
CURL 请求接口创建
我们参考接口文档发送对话消息接口文档

编写我们自己调试的curl 命令
代码如下:
shell
curl --location --request POST 'http://14.103.204.132/v1/chat-messages' \
--header 'Authorization: Bearer XXXXXX' \
--header 'Content-Type: application/json' \
--data-raw '{
"inputs": {
"type": "36kr"
},
"query": "测试内容",
"response_mode": "blocking",
"conversation_id": "",
"user": "abc-123"
}'
chatflow工作流验证测试
我们把上面的代码复制到postman接口调试工具中(或者使用apifox)

点击发送按钮

我们看到接口answer 返回,这里有我们在之前工作流返回的新闻信息。
另外我刷新一个 dify 工作流 可以查看到接口调用的记录

点击打开后我们可以看到工作流详细信息返回。

好了,我们这里就已经确保我们创建dfiy工作流可以给第三方系统调用了。
3.N8N工作流制作
接下来我们回到N8N工作流平台。关于N8N如何安装和使用,可以看我之前的文章《02-N8N教程-手把手教你用 PostgreSQL 实现 N8N 数据持久化,生产环境部署实战!》

我们新创建一个工作流,可以点击N8N 右上角"创建工作流流程"

Schedule Trigger
我们点击添加第一步,弹出的右边组件搜索"Schedule Trigger"


我们这里设置一下触发时间8AM,上面的触发间隔大家根据自己需要设置,我这里就设置1天

也可以自定义cron 实现每多少小时 分钟触发,这里就不做详细展开。
Edit Fields
接下来我们在Schedule Trigger 点击"+" 搜索"Edit Fields"


我们点击fields to set 点击添加字段
填入 type value 我们填写 今日头条。(我们这里就列举一个热点新闻,其他小伙伴可以发挥自己想象力制作多个)

设置完成后,我们返回工作流画布

http request
接下来我们还是按照上面步骤 添加一个http request 节点


上面弹出HTTP request 设置,这里有的点小伙伴可能不会设置,这个工具提供了一个"导入curl"一键命令
我们把上面使用postman 测试通过的CURL 命令复制到这里

注意上面的命令密码 需要替换成你自己的。 点击执行先前节点

执行完成后,左边的节点完成测试,返回如下信息

我们把左边type 拖拽到 http request body json对应的 type 目的是 让这个参数从上面Edit Fields 获取 而不是写死

这个N8N 有个比较好的地方能够在单个节点里面测试验证,下面的 结果返回 type 显示"今日头条" 也是我们期望看到的这个结果。
配置完成后,我们返回画布。

这样我们就完成了N8N工作流的配置了。 配置完成后,记得点击左上角"保存",并把工作流设置活动状态

4.验证及测试
之前我们的测试都是基于dify 工作流的测试,当然你也可以把上面配置的DIFY 工作流按照之前方法测试,这里就不做详细展开了。
我们接下来使用N8N 来触发实现接口调用DIFY工作流。
在N8N工作流画布中,点击中间的"执行工作流程"

测试结果 N8N


工作流节点都打上勾,说明执行OK了
dify 日志显示一条新生成的接口调用记录

我的QQ 邮箱 也收到一条热点新闻消息。(我们这里取了N8N 定时任务发的邮件信息。为什么是20点 应该是时区导致的)

通过以上验证测试我们也就完成了定时发送热点新闻的功能了(我这里是手工触发的,也可以等第二天查看邮箱消息)
体验地址
工作流地址:dify.duckcloud.fun/chat/v4veMe...
5.总结
今天主要带大家了解并实现了使用 N8N 和 Dify 整合,搭建多平台热点新闻定时发布工作流的方案。通过整合 N8N 的定时任务触发功能和 Dify 的新闻聚合与邮件发送功能,该方案不仅解决了之前工作流需要手工触发的问题,还能够让用户在规定时间内收到最新的新闻资讯推送。感兴趣的小伙伴可以按照本文步骤去尝试搭建自己的多平台热点新闻定时发布工作流。今天的分享就到这里结束了,我们下一篇文章见。
关注「 wwzhouhui」公众号,点赞分享这篇文章,后台私信:"dsl" 领取dsl工作流文件