n8n 实战:Nano Banana Pro 自动生成图文并茂的科技早报

大家早上好啊,是否好奇今天科技圈又有什么新风向呢?

下面是今天早上 n8n 工作流自动运行生成的科技早报,完全没有人工干预。

是不是比冷冰冰的文字版新闻列表更生动,一下就读懂了新闻大致的内容~

做这个自动化的起因很简单,最近加了一些社群,群里不管是运营还是技术,发的资讯早报全是密密麻麻的文字。说实话,我自己发出去的我都懒得回看。后来看到有人用 Nano Banana Pro 生成图文并茂的信息图,我就琢磨,是不是可以结合一下?

于是就有了这个工作流。把以前那种"理解成本极高"的纯文字,变成了一眼就能看懂的信息卡片。

今天就手把手带大家搭建一遍,中间有几个关于节省 Token大模型调用黑洞 的大坑,我都帮大家踩完了。

数据源

最开始我图省事,直接抓了抖音热榜。结果跑了两天发现不对劲,全是明星八卦和娱乐段子,做成科技早报显得特别违和,根本没有科技含量,最多的新闻是菊花手机的发布,占了 50%,因为和科技相关的内容实在太少了。

后来我把源换成了 BestBlogs 的 RSS,这里面全是经过筛选的前沿科技内容,含金量高多了。

搭建流程

先看一下完整的 n8n 工作流长什么样。

获取资讯数据

获取数据使用了网上公开的媒体 RSS 订阅源,n8n 提供了 RSS Feed Read 可以直接读取订阅源的内容列表。

这边先用 Code 节点把所有想采集的 RSS 订阅源链接组装成一个数组

然后连接 RSS Feed Read 节点,节点内把前面数组内的 url 填入。

节点会自动循环读取所有订阅源并且合并结果提供给后面的节点。

数据过滤

RSS 订阅获取到的新闻列表有一些是和我们想要的主题无关的,而且新闻是讲究时效性的,这边做一个过滤,超过 24 小时的内容就不要了,已经不够新了

时间的过滤可以直接使用 Filter 节点,设置如果新闻发布时间 isoDate 在当前运行时间 -1 天之后,说明是 24 小时之内的新闻。

经过这一步,已经剔除了超过 24 小时的新闻。

精简列表

这时候我们拿到的新闻列表里面的数据还很复杂,我们只需要根据标题来判断新闻与我们的关键词是否相关,所以再增加一个 Edit Fields 节点,提取所有新闻的标题。

上面做的这两步是为了精简输入的上下文,如果先让 AI 去挑新闻,它得处理几百条数据,Token 消耗量巨大,而且慢得要死。先用时间把旧新闻筛掉,并且剔除掉多余的信息,剩下的几十条再喂给 AI,效率直接起飞,成本也降下来了。

判断新闻是否相关

新手做 n8n 最容易在这一步卡住。

经过 Filter 筛选后,假设我们剩下了 20 条新闻。如果你直接把这 20 条数据连到 AI 节点,n8n 会默认运行 20 次 AI 节点

这意味着你会陷在这个黑洞里,每条新闻都触发一次大模型的调用,这边应该是只调用一次大模型去分析前面我们整理好的新闻列表。

解决办法很简单,加一个 Aggregate 节点,合并模式选择 All Item Data

注意观察,从输入的 47 个项目变成输出 1 个项目,这样后面的大模型节点就只会运行一次了

现在我们手里有一堆标题了,怎么选出最热门、最相关的?

我在工作流的最开头,放了一个 Edit Fields 节点,专门用来设置"关键词"。

这样设计的好处是,以后你想改早报的主题,比如改成"财经早报"或者"体育早报",只需要改这一个地方,不用去复杂的 Prompt 里改。

然后,就是核心的 AI 处理环节了,创建一个 AI Agent 节点,模式改为 Define Below,并且开启输出格式化选项。

在系统提示词里,我让它做两件事:

  1. 根据前面的关键词给新闻打分。
  2. 选出分最高的 10 条,并把日期格式化好。

完整提示词:

bash 复制代码
# selected_news_titles 填充规则
总结我提供的资讯列表 json 内容,整理出完整的早报资讯标题列表,给列表内每个资讯做一个与"{{ $('设置关键词').item.json.keyword }}"相关性的评分,最后评分从高到低选最多 10 条。


# poster_date 字段填充规则
把今日时间格式化为北京时间"yyyy年mm月dd日 星期x"格式放入字段 

直接输出计算结果,不要给需要执行的代码。
下方为最后输出的格式,不要包含其他的内容,只输出下方要求的 json 内容:
{
"selected_news_titles":[
"资讯1",
"资讯2"
],
"poster_date": "yyyy年mm月dd日 星期x"
}

AI Agent 节点下方连接两个节点

大模型节点可以选择你喜欢的模型和渠道,输出格式化节点配置如下图

把返回的结构例子提供给节点即可,打岔的选项不要开启,纯浪费 token。

节点执行以后返回的内容符合预期:

早报绘制

拿到了精选的 10 条标题,终于到了最激动人心的画图环节。

这里我用的是 HTTP Request 节点调用 Nano Banana Pro 的接口。提示词非常关键,想要那种高级感,必须强调几个词:

  • Bento Grid (便当盒布局):这是核心。
  • 手绘风格:避免 AI 生成那种恐怖谷效应的假人。
  • 高信息密度

这里要提一句,官方的 API 在国内网络环境下调用还是有一定门槛的,我用的是一个第三方的中转代理,价格比官方还低一点,缺点是稳定性差一点,做好错误处理或者报错通知,还是可以用的。

PS:为了避免广告嫌疑,中转站地址我就不放文章里了,有需要的同学可以在公众号后台回复"中转站"获取。

发送出去

最后一步,就是把生成好的图片发到群里或者自己的手机上。因为上个节点生成的图片链接是符合 markdown 格式的,可以直接放入钉钉机器人消息体里发送。

也是使用 http 节点来调用钉钉群机器人的 webhook 发送消息,把 markdown 内容添加到消息体内,发送成功钉钉群里就能看到早报图片了

上述流程完整的信息图如下,也是 Nano Banana Pro 生成的。

至于怎么把这张图编辑成图文或者文章自动推送到微信公众号草稿箱,那个流程稍微复杂一点,我把它拆到了另一个工作流里。

下篇文章,我就专门讲讲如何实现无人值守自动生成早报发布到微信公众号。

工作流获取方式:

这套工作流我已经打包好了,包含完整的 Prompt 和节点配置。

关注"曹工不加班"公众号发送 "01",直接下载 JSON 文件,导入你的 n8n 就能用。别忘了填上你自己的 API Key。

好了,感谢能看到最后的小伙伴,曹工不加班,点个关注早点下班~

相关推荐
Java中文社群3 天前
保姆级教程:3分钟带你轻松搭建N8N自动化平台!(内附视频)
人工智能·工作流引擎
麦麦麦造12 天前
2 种方法!用 n8n 自动发公众号
工作流引擎
HuskyYellow12 天前
N8N基础入门指南:开源工作流自动化平台技术实践
ai编程·工作流引擎
麦麦麦造1 个月前
白嫖 Hugging Face 2核16g 服务器部署 n8n 的后续!
工作流引擎
泉城老铁2 个月前
springboot 框架集成工作流的开源框架有哪些呢
spring boot·后端·工作流引擎
逛逛GitHub2 个月前
斩获 2 万多 Star!国外老哥把全网 n8n 工作流都开源了
github·工作流引擎
麦麦麦造3 个月前
0元部署私有n8n,免费的2CPU+16GB服务器,解锁无限制的工作流体验
工作流引擎
shepherd1113 个月前
深入解析Flowable工作流引擎:从原理到实践
java·后端·工作流引擎