AI资讯自动化:基于N8N与AiOnly大模型的高效日报系统实战
1. 为什么你需要一个AI资讯日报系统?
每天早上醒来,你是不是也和我一样,面对信息过载的焦虑?手机里塞满了各种新闻App的推送,科技、财经、行业动态……一个个点开看,半小时就没了,真正有价值的信息可能还淹没在标题党里。更头疼的是,作为开发者或者团队管理者,你需要快速了解AI领域的最新进展,但手动筛选、阅读、总结,这工作量想想就头大。
我之前就是这么过来的,直到我决定把这件事彻底自动化。我的目标很简单:每天上午9点,准时收到一封邮件,里面是过去24小时最值得关注的AI资讯,并且每一条都经过AI提炼,用一两句话告诉我核心要点。我不再需要打开十几个网页,不再需要自己费力总结,所有工作交给系统自动完成。
听起来很复杂?其实用对了工具,搭建这样一个系统比你想象中简单得多。核心就是两个神器:N8N和AiOnly。N8n是一个开源、强大的可视化工作流自动化工具,你可以把它理解成一个更灵活、更强大的“高级版IFTTT”或“开源版Zapier”。而AiOnly是一个一站式的大模型API聚合平台,它把GPT、Claude、Gemini、DeepSeek等全球顶尖模型的API统一了起来,让你用一个接口、一个密钥就能调用几乎所有主流模型,再也不用为每个平台单独注册、充值、管理了。
这套组合拳打下来,效果惊人。我实测下来,原本每天需要花30-60分钟做的信息收集和整理工作,现在完全不用管了。系统稳定运行了小半年,帮我抓住了好几个技术趋势的早期信号,省下的时间用来喝咖啡、思考战略问题,它不香吗?无论你是想做好个人知识管理,还是想为团队同步行业信息,这个自动化日报系统都能成为你的“外挂大脑”。接下来,我就手把手带你从零开始,搭建属于你自己的AI资讯管家。
2. 核心工具准备:N8N与AiOnly快速上手
工欲善其事,必先利其器。在开始搭建工作流之前,我们得先把两个核心工具配置好。别担心,整个过程就像搭积木,每一步我都踩过坑,会带你绕开所有弯路。
2.1 三步搞定AiOnly平台接入
首先,我们搞定大模型的能力来源——AiOnly。它的最大优势就是“聚合”和“省心”。你不用再纠结是选GPT-4o还是Claude 3.5,在AiOnly上可以随时切换,哪个效果好、哪个成本低就用哪个。
第一步:注册与获取通行证 打开AiOnly官网,用手机号注册个账号。新用户登录控制台后,一般都有新人代金券自动到账,比如15元,足够你折腾很久了。这第一步,一分钟搞定。
第二步:找到你的“钥匙”和“地址”
登录后,进入“API密钥”页面,创建一个新的API Key。这个Key就是你的身份凭证,一定要保管好,就像密码一样。同时,你还需要记住一个固定的接口URL:https://api.aiionly.com/v1/chat/completions。这个地址是兼容OpenAI API格式的,意味着所有能调用ChatGPT的代码或工具,几乎都能通过这个地址调用AiOnly上的任何模型,这是实现后面一切自动化的基础。
第三步:开通你想用的模型
去“模型广场”逛一逛,里面分门别类列着文本生成、图像、视频、语音各种模型。比如我们今天要用到的文本总结功能,DeepSeek-V3.2-Exp、Claude 3.5 Haiku、Gemini 2.5 Flash都是不错的选择。找到你心仪的模型,点击“开通”。开通时记得选择“先用后付”模式,这样没有预付压力。开通成功后,在“开通管理”页面,你会看到每个模型对应的唯一“模型ID”,比如deepseek-v3.2-exp。这个ID就是我们后面在代码里指定用哪个模型的依据。
简单总结,从AiOnly平台,我们一共需要拿到三个东西:API Key、统一的接口URL和具体的模型ID。有了这三样,我们就拥有了调用全球顶尖AI能力的通行证。
2.2 十分钟部署你的N8N自动化中枢
接下来是自动化大脑N8N的部署。我强烈推荐使用Docker来安装,这是最省心、跨平台的方式,能避免各种环境依赖的坑。
第一步:安装Docker 如果你电脑上还没装Docker,去Docker官网下载对应你操作系统(Windows/macOS/Linux)的Docker Desktop安装包。安装过程基本就是一路“下一步”。安装完成后启动Docker Desktop,并完成登录(用Docker Hub账号或GitHub账号都行)。
第二步:一个命令启动N8N 打开你的终端(Windows用PowerShell或CMD,macOS/Linux用Terminal),只需要一行命令,N8N服务就会跑起来:
docker run -d --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n n8nio/n8n
我来解释下这行命令在干嘛:-d是让它在后台运行;--name n8n给容器起个名字;-p 5678:5678是把本地的5678端口映射到容器的5678端口(等下我们就用这个端口访问);-v n8n_data:/home/node/.n8n是把数据卷挂载出来,这样即使容器删了,你的工作流配置也不会丢;最后n8nio/n8n就是官方镜像名。
执行命令后,Docker会自动从网络拉取镜像并启动。看到一串容器ID输出,就说明启动成功了。
第三步:访问并初始化
打开浏览器,访问 http://localhost:5678。第一次访问,你会看到一个创建管理员账户的页面,设置好邮箱、用户名和密码。登录之后,你就会看到N8N清爽的主界面了。左边是节点库,中间是画布,右边是属性面板,整个逻辑非常直观。至此,你的本地自动化服务器就准备就绪了。
3. 构建核心工作流:从抓取、总结到发送
工具就位,现在开始搭建最核心的自动化流水线。我们把这个工作流拆解成几个关键环节,就像工厂里的生产线,每个环节负责一个特定任务,最终组装出成品。
3.1 第一步:设置定时触发器与获取资讯源
任何自动化流程都得有个起点。在我们的场景里,起点就是“时间”。我们希望系统每天上午9点自动运行,所以第一个节点就是 Schedule Trigger(定时触发器)。
在N8N画布上,点击“添加节点”,搜索“Schedule Trigger”并添加。在它的配置面板里,规则(Rule)选择“Every Day”(每天),然后设置时间(Hour)为9,分钟(Minute)为0。这样,每天上午9点整,这个触发器就会“点火”,启动整个工作流。
触发器有了,接下来就要去抓取资讯了。这里我选择用RSS源,因为它格式标准、获取简单。比如“36氪”的科技资讯质量就不错。我们添加一个 HTTP Request 节点,把它连接到触发器之后。
在这个HTTP Request节点里,我们需要配置一个能解析RSS的公共服务。这里我用一个免费的转换服务:https://api.rss2json.com/v1/api.json?rss_url=https://36kr.com/feed&count=10。这个方法(Method)选GET。这个URL的作用是:访问36氪的RSS源(https://36kr.com/feed),并将其转换成更易处理的JSON格式,同时只取最新的10条(count=10)。你可以把这里的RSS地址换成任何你感兴趣的源,比如TechCrunch、Hacker News的feed地址。
3.2 第二步:调用AiOnly大模型进行智能摘要
抓取到的原始资讯是一条条包含标题、链接、摘要和发布时间的数据。接下来就是最智能的一环:让AI帮我们读新闻,并提炼核心要点。
首先,我们需要用一个 Code 节点来处理上一步获取的JSON数据,把它整理成N8N内部便于循环处理的结构。代码如下:
// 从第一个输入项中获取JSON数据
const data = $input.first().json;
// 检查RSS获取是否成功
if (data.status !== 'ok') {
throw new Error('RSS获取失败: ' + data.message);
}
// 将items数组中的每条新闻,转换成N8N能循环处理的标准格式
return data.items.map(item => ({
json: {
title: item.title,
link: item.link,
// 清理描述中的HTML标签,并截取前300个字符作为内容摘要
contentSnippet: item.description.replace(/<[^>]*>/g, '').substring(0, 300),
pubDate: item.pubDate,
author: item.author || '未知'
}
}));
数据整理好后,我们添加一个 Split In Batches 节点(在循环类目里)。这个节点的作用是把上一步输出的10条新闻数组,“拆开”成一条一条的,让后续节点能对每一条新闻单独处理。批处理大小(Batch Size)设置为1,意思就是每次只处理一条。
现在,重头戏来了:为每一条新闻调用AI进行总结。我们再添加一个 Code 节点,它的任务是构造发送给AiOnly API的请求体。这里就是体现AiOnly便利性的地方,它的API格式和OpenAI完全兼容。
// 获取当前循环项(即单条新闻)的数据
const item = $input.item.json;
// 构建符合AiOnly/OpenAI格式的请求体
const requestBody = {
model: "deepseek-v3.2-exp", // 这里填写你在AiOnly开通的模型ID
messages: [
{
role: "system",
content: "你是专业的科技资讯总结助手。请用1-2句话总结新闻的核心要点,突出关键信息,语言简洁明了。"
},
{
role: "user",
content: `请总结以下科技资讯:\n标题:${item.title}\n内容摘要:${item.contentSnippet}`
}
],
temperature: 0.3, // 较低的温度值,让输出更稳定、更聚焦
max_tokens: 150 // 限制总结的长度
};
// 将构建好的请求体和原始数据一起传递给下一个节点
return {
json: {
requestBody: requestBody,
originalData: item
}
};
构造好请求体,下一步就是真正发送请求了。再添加一个 HTTP Request 节点,配置如下:
- 方法(Method): POST
- URL:
https://api.aiionly.com/v1/chat/completions(就是AiOnly那个固定地址) - Headers(请求头): 需要添加一个
Authorization头,值为Bearer 你的AiOnly_API_KEY。请务必把“你的AiOnly_API_KEY”替换成你之前在平台创建的真实Key。 - Body(请求体): 类型选择“JSON”,然后在下方的JSON框里填入
{{ $json.requestBody }}。这个双大括号语法是N8N的表达式,意思是动态引用上一个节点输出的requestBody字段。
这个节点执行后,AiOnly的模型就会处理我们的请求,并返回一个包含总结结果的JSON响应。
3.3 第三步:格式化结果与邮件发送
AI返回的结果是原始的JSON格式,我们需要从中提取出我们需要的总结文本。再加一个 Code 节点来处理:
// 从AI的返回结果中提取总结内容
const aiResponse = $input.item.json;
const summary = aiResponse.choices[0].message.content;
// 获取之前保存的原始新闻数据
const originalData = $('构建 AI 请求体').item.json.originalData; // 这里的‘构建 AI 请求体’是你上一个Code节点的名字
// 将总结内容和原始信息合并
return {
json: {
title: originalData.title,
link: originalData.link,
summary: summary.trim(), // 去除总结文本首尾的空格
pubDate: originalData.pubDate,
author: originalData.author
}
};
到这里,循环结束,10条新闻都完成了“获取->AI总结”的过程。接下来,我们需要把10条总结好的新闻打包成一份漂亮的日报。
再添加一个 Code 节点,这次它要接收所有循环结束后的数据(注意节点配置里选择“Run Once for All Items”)。在这个节点里,我们将数据组装成HTML格式,方便邮件展示:
// 获取所有处理好的新闻数据
const allNews = $input.all();
const currentDate = new Date().toLocaleDateString('zh-CN', { year: 'numeric', month: 'long', day: 'numeric', weekday: 'long' });
// 构建HTML邮件正文
const htmlContent = `
<!DOCTYPE html>
<html>
<head>
<style>
body { font-family: sans-serif; line-height: 1.6; max-width: 800px; margin: auto; background: #f9f9f9; }
.header { background: #2c3e50; color: white; padding: 20px; border-radius: 8px 8px 0 0; }
.news-item { background: white; margin: 20px 0; padding: 15px; border-left: 5px solid #3498db; border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.news-title { color: #2c3e50; margin-top: 0; }
.news-summary { color: #555; }
.news-meta { color: #7f8c8d; font-size: 0.9em; margin-top: 10px; }
.footer { text-align: center; margin-top: 30px; color: #95a5a6; font-size: 0.9em; }
</style>
</head>
<body>
<div class="header">
<h1>🤖 AI精选科技日报</h1>
<p>日期:${currentDate} | 共 ${allNews.length} 条摘要</p>
</div>
${allNews.map((item, idx) => `
<div class="news-item">
<h3 class="news-title">${idx + 1}. ${item.json.title}</h3>
<p class="news-summary"><strong>📌 核心要点:</strong>${item.json.summary}</p>
<p class="news-meta">发布时间:${item.json.pubDate} | 作者:${item.json.author}</p>
<a href="${item.json.link}" target="_blank">阅读原文</a>
</div>
`).join('')}
<div class="footer">
<p>本日报由N8N + AiOnly自动生成,数据来源:36氪。</p>
<p>生成时间:${new Date().toLocaleString('zh-CN')}</p>
</div>
</body>
</html>
`;
return {
json: {
htmlContent: htmlContent,
subject: `AI科技日报 ${currentDate}`
}
};
最后一步,把这份精美的HTML日报发送到你的邮箱。添加 Email (SMTP) 节点。首先需要配置邮箱凭证(Credentials):
- SMTP主机(Host): 比如
smtp.163.com(163邮箱)或smtp.gmail.com(Gmail)。 - 端口(Port): 通常用465(SSL)。
- 用户(User): 你的发件邮箱地址。
- 密码(Password): 这里注意,不是邮箱登录密码,而是SMTP授权码。在邮箱设置里找到“POP3/SMTP服务”并开启,就能获取。
配置好凭证后,在节点参数里设置:
- 发件人(From): 你的邮箱。
- 收件人(To): 你想接收日报的邮箱。
- 主题(Subject):
{{ $json.subject }}(引用上一步生成的标题)。 - 邮件格式(Email Format): 选择HTML。
- HTML内容(HTML):
{{ $json.htmlContent }}。
点击“执行工作流”测试一下,几分钟内,一封排版专业、内容精炼的AI资讯日报就应该出现在你的收件箱了。那种“机器替我干活”的成就感,第一次收到时真的很爽。
4. 进阶玩法与个性化定制
基础流水线跑通后,这个系统的可玩性就非常高了。你可以根据自己的需求,把它改造成更强大、更个性化的信息中枢。
4.1 扩展资讯源与多模型策略
单一的资讯源难免有局限。你完全可以同时监控多个来源。在N8N里,这很简单:在初始的HTTP Request节点之后,并联添加多个不同的RSS抓取节点,比如一个抓36氪,一个抓Hacker News,一个抓某个优质科技博客的feed。然后用一个 Merge 节点把这些节点输出的数据流合并成一个列表,再交给后面的AI总结环节。这样你的日报信息维度就丰富多了。
AI模型的选择也可以更灵活。AiOnly平台的优势就在这里,切换模型几乎零成本。你可以在构建AI请求体的那个Code节点里,动态决定使用哪个模型。比如,你可以写个简单的逻辑:如果新闻标题包含“开源”,就用DeepSeek(它对代码和开源社区理解可能更深);如果包含“产品发布”,就用Claude Haiku(可能更擅长商业分析)。甚至,你可以让AI自己先判断新闻类型,再决定用哪个模型总结,实现一个简单的“AI调度AI”。
// 示例:简单的模型选择逻辑
let chosenModel = "deepseek-v3.2-exp"; // 默认模型
if (item.title.includes("开源") || item.title.includes("GitHub")) {
chosenModel = "deepseek-v3.2-exp";
} else if (item.title.includes("融资") || item.title.includes("市场")) {
chosenModel = "claude-3-5-haiku-latest";
}
const requestBody = {
model: chosenModel,
// ... 其他参数
};
4.2 输出渠道多元化:不止于邮件
邮件只是其中一种通知方式。N8N有海量的集成节点,你可以轻松地把日报推送到其他你常用的平台:
- 飞书/钉钉/企业微信机器人:添加一个 Webhook 节点,将日报内容格式化成Markdown,发送到群聊机器人,让整个团队一起看。
- Notion或语雀:使用对应的节点,将总结好的内容自动追加到指定的知识库页面,日积月累就是一份宝贵的行业动态档案。
- Telegram或Discord:如果你有海外团队或社区,可以推送到这些频道。
- 生成静态页面:用Code节点生成一个HTML文件,通过SFTP节点上传到你的服务器,形成一个可公开访问的“每日AI简报”网页。
我自己的做法是“一鱼多吃”:核心摘要发邮件和飞书群,完整的总结(带我的个人批注)则自动同步到Notion的数据库里,方便日后检索。N8N的“分支”逻辑可以让你很容易实现这一点:在生成HTML的节点后,连接多个不同的输出节点即可。
4.3 错误处理与系统健壮性
一个要长期运行的系统,必须考虑健壮性。N8N提供了很好的错误处理机制。你可以在关键的节点(尤其是调用AI API的HTTP Request节点)上启用错误处理(Error Trigger)。
具体操作是,选中该节点,在右侧属性面板找到“错误处理”选项卡,勾选“在错误时激活”。然后,从这个节点的“错误输出”端口(通常是一个红色的虚线出口)拉出一条线,连接到一个新的分支。这个分支可以用来记录错误日志(比如写到某个文件或发送错误通知邮件),甚至可以设置重试逻辑。
例如,当AI API调用失败(可能因为网络或额度问题),错误分支可以触发一个 Wait 节点等待5分钟,然后再通过 Function 节点重新执行原任务。或者,更简单一点,配置一个 Email 节点,当任何环节出错时,立即给你发送一封报警邮件,附上错误信息,让你能及时介入处理。
5. 将AI能力接入常用客户端:ChatBox与Cherry Studio
除了在自动化工作流里“后台”调用AI,我们当然也希望能在日常聊天窗口里方便地使用AiOnly集成的各种模型。这就需要在一些好用的AI客户端里配置AiOnly。这里我以两个流行的跨平台客户端为例:ChatBox和Cherry Studio。
5.1 在ChatBox中接入Claude 3.5 Haiku
ChatBox是一个设计简洁、支持多模型的桌面客户端。让它连接AiOnly,你就能在漂亮的界面里直接和Claude Haiku等模型对话了。
首先,去ChatBox官网下载并安装客户端。打开后,进入设置(Settings),找到模型提供商(Model Provider)部分。点击“添加”,提供商名称可以填“AiOnly”,类型选择“OpenAI API Compatible”(因为AiOnly兼容OpenAI接口)。
关键配置有两项:
- API密钥(API Key):填入你在AiOnly平台获取的API Key。
- API地址(API Endpoint):填入AiOnly的统一地址
https://api.aiionly.com/v1。(注意,ChatBox这里只需要到/v1,后面的路径/chat/completions客户端会自动补全)。
配置好后,点击“新建模型”。这里需要填入具体的模型ID,比如Claude 3.5 Haiku的ID是 claude-3-5-haiku-latest(记得先在AiOnly控制台开通这个模型)。给它起个显示名,比如“AiOnly-Claude-Haiku”。保存后,点击“检查连接”,如果显示成功,就说明配置对了。
现在,你就可以在ChatBox里新建一个对话,选择刚刚添加的“AiOnly-Claude-Haiku”模型,开始畅聊了。Claude Haiku的特点是响应速度极快,在代码和逻辑推理上表现均衡,成本还低,非常适合日常高频次的问答。
5.2 在Cherry Studio中接入Gemini 2.5 Flash
Cherry Studio是另一个功能全面的AI助手平台,界面美观,支持知识库等高级功能。接入AiOnly的步骤类似。
安装并打开Cherry Studio后,点击右上角的设置图标。在“模型服务”里,找到“唯一AI”(这通常就是AiOnly的选项)。同样,填入API Key,在API地址栏填写 https://api.aiionly.com(Cherry Studio的配置格式可能略有不同,只需域名部分)。
然后点击“添加模型”。我们这次试试谷歌的Gemini 2.5 Flash,它的模型ID是 gemini-2.5-flash。这个模型在长上下文、多模态理解和性价比方面有独特优势。填写好ID和名称后,点击“检测”。连接成功后,你就可以在对话界面选择这个模型进行测试了。
通过这种方式,你相当于用AiOnly这一个后台,为多个前端客户端提供了统一的模型供应。管理起来非常方便,不用在每个模型的官方平台来回切换了。
6. 避坑指南与效能优化
在实际搭建和运行过程中,我踩过不少坑,也总结出一些让系统跑得更稳、更省钱的技巧。
第一坑:API调用超时与频率限制。 AiOnly的API和所有云服务一样,有调用频率限制。如果你一次性循环处理几十上百条资讯,短时间内密集请求,可能会被限流。解决办法是在循环处理(Split In Batches)节点后,增加一个“Wait”节点,设置每次循环后暂停1-2秒。虽然总时间变长了一点,但稳定性大大提升。N8N也内置了重试机制,可以在HTTP Request节点的设置里配置“失败后重试次数”。
第二坑:AI总结的“废话”太多。 有时候AI生成的总结不够精炼,还是像原文一样啰嗦。这通常可以通过优化“系统提示词(System Prompt)”来解决。不要简单地说“总结一下”,试试更明确的指令,比如:“请用不超过20个中文词总结该资讯的核心事件、技术或产品名称,以及可能的影响。避免描述性语言和背景介绍,直接输出事实要点。”多调整几次提示词,效果立竿见影。
第三坑:HTML邮件在某些客户端显示错乱。 不同邮箱客户端对CSS的支持差异很大。为了最大兼容性,建议邮件HTML使用内联样式(Inline Styles),避免使用复杂的Flexbox或Grid布局。我上面提供的示例用的是最基础的<div>和<style>块,在绝大多数客户端都能正常显示。如果追求更精美的排版,可以考虑使用像MJML这样的邮件专用模板语言,但复杂度会高一些。
关于成本优化: AiOnly采用动态计费,用多少算多少。为了控制成本,你可以:
- 精选资讯源:只抓取真正高价值的几个源,避免信息垃圾。
- 控制总结长度:
max_tokens参数不要设得太大,150-200通常足够。 - 选择性价比模型:对于摘要这种任务,不一定非要用最顶级的模型。像Claude Haiku、DeepSeek-V3.2-Exp、Gemini Flash这些模型,在保持不错效果的同时,成本要低很多。可以在AiOnly模型广场对比一下各模型的定价。
- 设置备用方案:在调用AI的Code节点里,可以加入简单的逻辑,如果新闻内容非常短(比如少于50字),或许可以直接用原文摘要,不必再调用AI,进一步节省token。
最后,别忘了定期“保养”你的工作流。偶尔打开N8N,看看“执行历史”里有没有失败的记录。检查一下你订阅的RSS源是否还有效。根据你阅读日报的实际感受,微调一下AI的提示词。这个系统就像你养的一个数字员工,花一点点时间优化它,它能给你带来的回报是持续而巨大的。当每天早上的咖啡时间,都能收到一份为你量身定制的AI资讯简报时,你会觉得这一切的搭建都无比值得。
更多推荐

所有评论(0)