70 个群都来问我的 AI 日报,是这么做的。

news/2025/2/23 0:39:02/文章来源:https://www.cnblogs.com/ryanyangcs/p/18567365

最近我给 FastGPT 用户交流群里接入了 AI 日报,每天早上 10 点会自动向群里推送 AI 日报,让群里的小伙伴们第一时间了解到昨天 AI 领域都发生了哪些大事。

效果大概是这个样子的:

如果你对 FastGPT 感兴趣,可以直接扫码入群:

除此之外,我还同步一份到公司的飞书群里,这样公司的小伙伴们也能及时了解到 AI 领域的最新动态。

每一条资讯除了提供标题和概要之外,还附上了相关链接,方便大家进一步了解。

你以为这就完了?

我还给公司飞书群里每天发送一份 AI 领域的最新论文摘要,帮助研发同学汲取最新的科研成果。

为什么我要做这么一个日报呢?

因为现在 AI 领域的发展速度实在是太快了,每天都有新的论文、新的技术、新的产品发布,如果不持续关注,真的很容易被时代抛弃。

但是网上的信息量实在是太多太杂了,往往读上几十分钟都感觉没啥收获,但是又怕自己错过什么信息。

所以我就想,如果能开发个机器人,自动爬取并总结一些最新的信息,将简化后的信息每天定时发给我,如果感兴趣可以再进一步搜索,这样我就能每天都能高效获取到有价值的信息了。

有了需求之后,再进一步分析,可以发现这个需求主要的难点有两个:

  1. 写一个爬虫,爬取对应网站的信息
  2. 将获取到的信息,通过工作流编排总结归纳

恰好这两个需求分别可以被两个工具快速解决。

创建爬虫

首先,我需要创建一个爬虫,爬取对应网站的信息。

这就需要用到一个牛叉的开源项目 Crawl4ai。

这个项目性能超快,还能输出适合大语言模型的格式,比如 JSON、清理过的 HTML 和 markdown。它还支持同时爬取多个网址,能提取所有媒体标签 (图片、音频、视频),以及所有内外部链接。目前 star 数已经超过 1.5k。

问题来了,这个项目是基于 Python 开发的,而我既不懂 Python,也不会写爬虫

这个倒是难不倒我,我可以用 Cursor 嘛,让它帮我写就好了。

但是我一想到写完之后还要打包部署,以及配置域名解析、申请 SSL 证书等各种繁琐的事情,瞬间就头大。

嘿嘿,这个问题也可以解决,直接用 Sealos Devbox 就好了,Devbox 直接摒弃了各种繁琐的配置,开箱即用,让你写完爬虫就能直接上线,啥都不需要配置

我用 Devbox 和 Cursor 半个小时就写完了爬虫并且上线了,你就说快不快吧?

直接来看步骤。

创建开发环境

首先进入 Sealos 桌面,然后打开 Debox 应用,创建一个新项目。Devbox 支持多种主流语言与框架,这里我们需要开发爬虫服务,所以直接选择 Python 作为运行环境。

点击创建,几秒钟即可启动开发环境。

接下来在操作选项中点击 Cursor,将会自动打开本地的 Cursor 编程 IDE。

接着会提示安装 Devbox 插件,安装后即可自动连接开发环境。

Cursor 打开开发环境之后,执行 ./entrypoint.sh 就能看到项目成功跑起来了。

是不是非常简单?直接省略了配置域名解析、申请 SSL 证书,配置网关等与开发无关的繁琐操作,爽!

开发爬虫

接下来,我们就可以开始写爬虫了。

整个开发过程 Cursor 都可以全权代理,你只需要告诉他你要做什么,Cursor 就能帮你完成。

可以看到 Cursor 已经帮我们写好了 crawler 这个基础函数,只要填上需要爬取的地址,就能自动爬取。

它甚至还帮我们想好了下一步应该做什么,即添加一个新的路由来处理请求。

于是我顺着他的话继续往下问。

它也是非常快速地帮我们修改出了路由,这样我们就可以通过请求某个接口实现对应网站的爬取了。

接下来我想优化一下性能,便直接让它在代码上改,也是很快地帮我们优化好了。

最终爬取的效果如下:

有标题,有内容,有时间,有链接,这不就齐活了嘛。

整个开发过程我一行代码都没有写,都是 Cursor 帮我写的,包括爬虫库的使用、路由接口的编排、性能的优化等等,你说爽不爽?

上线爬虫

这个爬虫服务不需要一直运行,只需要每天定时运行一会儿,等我发完了日报就可以关闭了。最重要的是这样省钱啊,每天运行一小会儿,一个月下来也没多少钱,比自己买服务器划算多了。

而 Sealos 正好是按量付费的,运行多长时间就花多长时间的钱,用多少资源就花多少资源的钱,非常划算。

我们需要往 entrypoint.sh 这个文件中写入项目的启动命令 (因为 Devbox 项目发布之后的启动命令就是执行 entrypoint.sh 脚本)。

脚本修改完并保存之后,点击【发布版本】:

填写完信息后点击【发版】。

注意:发版会暂时停止 Devbox,发版后会自动启动,请先保存好项目避免丢失数据。

稍等片刻,即可在版本列表中找到发版信息,点击上线后会跳转到部署页面,点击部署应用即可部署到生产环境。

CPU 和内存可以根据自己的项目情况进行调整。

生产环境分配的 HTTPS 域名与开发环境独立,部署后即可通过生产环境域名访问这个爬虫的接口。

接入 FastGPT 工作流

现在有了爬虫接口,获取了资讯信息,就可以借助 AI 来总结提炼其中的核心信息了。

使用 AI 最简单的方式就是 FastGPT 工作流。

FastGPT 国内版
FastGPT 国际版

以我们要抓取的一个网站为例,直接使用 HTTP 节点接入即可。

在 HTTP 节点中,我们使用 GET 方法请求爬虫接口,并且设置超时时长为三分钟 (防止信息过多)。

因为爬虫接口的原始响应就是一个文章数组,所以我们可以不用自定义输出字段,直接将原始响应发送给 AI 对话节点即可。

这里用到的是李继刚老师研究的结构化提示词,以 lisp 语言的形式极简高效地实现了对 AI 的提示,我实测下来效果相当不错。

然后进行二次排版,将前面获取到的多个来源的文章总结进行进一步的整合和排版,便于输出。

最后调用 FastGPT 的飞书机器人插件,将整合好后的信息输出到公司的飞书群。

接下来配置一下工作流的定时执行,那么每天十点,早报机器人就会自动运行,总结过去 24h 发生的科技大事,然后以简洁准确的报告形式发送到工具群。

整体的工作流大致如下:

省钱

既然 Sealos 是按量付费,那我干嘛要一直运行着爬虫服务?

我只需要每天早上十点运行一次,然后爬取信息,总结信息,发送信息,然后就可以关闭服务了。

这样每天运行爬虫服务的时间也就几分钟,太省钱了哈哈 😄

那么该如何定时开机关机爬虫服务呢?

哈哈,我直接写到 FastGPT 的工作流里,在工作流的最前面和最后面分别接入一个 HTTP 节点,这样就可以在每天运行工作流之前和之后分别运行爬虫服务,然后关闭爬虫服务,我真是太有才了!

具体的步骤如下。

首先从 Sealos 桌面下载 kubeconfig 文件。

然后执行以下命令,将输出的内容作为请求接口时的 Authorization Header 值:

cat kubeconfig.yaml | jq -sRr @uri

在 FastGPT 工作流的最前面接入一个 HTTP 节点,URL 填入 Sealos【应用管理】的 API 接口地址:

https://applaunchpad.hzh.sealos.run/api/v1alpha/updateReplica

请求方法选择 POST。

在 Header 中添加 Authorization 字段,值为上一步获取到的内容。

然后在 Body 中输入以下内容 (在 x-www-form-urlencoded 中填入参数):

其中 appName 是你的爬虫服务名称,可以在【应用管理】中查看:

而 replica 就是你的服务需要启动的实例数量,一般设置为 1 即可。

下面点击【调试】来测试一下:

搞定!

下面再接入一个 HTTP 节点,URL 填入以下地址:

https://applaunchpad.hzh.sealos.run/api/getAppPodsByAppName

这个接口可以获取到当前爬虫服务运行的 Pod 信息,然后我们就可以根据 Pod 信息来判断爬虫到底有没有启动成功

请求方法选择 GET。

在 Header 中添加 Authorization 字段,值和前面一样。

然后在 Params 中输入以下内容:

其中 name 是你的爬虫服务名称。

输出字段添加一个变量 data[0].status.containerStatuses[0].state.running,类型为 String。

再添加一个没用的【变量更新】节点,然后再接到【判断器】节点。

  • 如果变量 data[0].status.containerStatuses[0].state.running 存在,则表示爬虫服务还没运行成功,则接回到前面的【获取爬虫服务状态】节点,继续获取服务状态。
  • 如果变量 data[0].status.containerStatuses[0].state.running 不存在,则表示爬虫服务已经运行成功,则接入后面的 HTTP 节点开始调用爬虫服务。

最后发送完日报后,再接入一个 HTTP 节点来关闭爬虫服务。参数和前面的【自动开启爬虫服务】节点一样,只需要把 replica 设置为 0 即可。

这样就搞定了,每天早上十点,爬虫服务会自动运行,发送完日报后会自动关闭,爽!

总结

好啦!到这里我们就完成了一个自动化的爬虫服务,它会在每天早上十点准时上班 (启动),完成工作 (发送日报) 后就自动下班 (关闭),比我们还自觉呢!😂

如果你也想搭建一个这样的 “自动打工人”,可以参考以下资源:

  • 爬虫源码:https://github.com/newfish-cmyk/crawl
  • 完整工作流:https://pan.quark.cn/s/019132869eca

快去试试吧,让 AI 帮你完成这些重复性的工作,解放双手享受生活!🎉

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/840820.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vxe-table 使用单元格选取功能

通过参数 mouse-config.area 启用单元格选取功能、Excel 区域选取。<template><div><vxe-tableborderheight="500":column-config="{resizable: true}":mouse-config="{area: true, extension: false}":data="tableData&quo…

vxe-table 单元格选取功能与多个区域选取功能

多区域选取通过 mouse-config。area 与 area-config.multiple 启用,area-config.selectCellByHeader 用于启用表头选取功能,开启后选取表头自定义选取一整列的所有单元格<template><div><vxe-tableborderheight="500":column-config="{resizab…

Java NIO(io模型,三大组件,网络编程)

一、NIO Java NIO(New I/O,新的输入输出)是 Java 1.4 引入的一套 I/O 库,相比传统的 IO(字节流和字符流),它主要用于处理高效的、非阻塞的 I/O 操作,特别是在需要处理大规模数据或高并发的场景中表现突出。Java NIO 提供了非阻塞模式、内存映射文件、缓冲区等一系列增强…

基于bootstrap4封装的消息对话框组件

在线预览 下载这是一款基于bootstrap4封装的消息对话框组件。该消息组件包括dialog,alert,confirm,input,success,error,notice。并且对话框支持鼠标或手指触摸拖拽。使用方法 在页面中引入下面的文件。lt;link rel="stylesheet" href="bootstrap-4.0.0-dist/…

在暴雨中追逐一只白色的猫

写在前面234 字 | 希望 | 苦难 | 永恒 | 唯心主义与唯物主义正文我在暴雨中追逐一只白色的猫,毛发柔顺如云,如羽毛。雨落我身,不亲近猫。 <br />白色的猫左跳右跳,跳上月球,跳上没有暴雨的广寒宫。我听见有人哭,有人笑。 <br />我在暴雨中望着白色的月球,雨…

用于自然语言处理的循环神经网络RNN

前一篇:《人工智能模型学习到的知识是怎样的一种存在?》 序言:在人工智能领域,卷积神经网络(CNN)备受瞩目,但神经网络的种类远不止于此。实际上,不同类型的神经网络各有其独特的应用场景。在接下来的几节中,我将带大家走近循环神经网络(RNN),深入了解其原理及其在处…

【牛客训练记录】牛客周赛 Round 69

训练情况赛后反思 好吧,D 题没想到二进制枚举,以为 \(O(2^knm)\) 不可做。。。 A题 要求要等差数列,我们先求公差,为两元素的最大值-最小值,再在最大值的基础上加上公差即可。 #include <bits/stdc++.h> // #define int long long #define endl \nusing namespace s…

【windows】Windows10休眠文件太大,更改 hiberfil.sys 文件大小

Windows将内存数据复制到磁盘来支持电脑休眠,系统在将内存内容保留在磁盘上之后对其进行压缩,从而将所需的磁盘空间减少到小于系统上的物理内存总量。 如果发现自己电脑 hiber.sys 文件变得太大并占用磁盘空间,您可能需要考虑减小它。现在在 Windows 10 中,默认情况下 hibe…

云计算基础

免责声明 学习视频来自 B 站up主泷羽sec,如涉及侵权马上删除文章。 笔记的只是方便各位师傅学习知识,以下代码、网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负。 B站地址:https://space.bilibili.com/350329294 云计算基础 在过去,搭建一个应用…

matlab: 检查程序运行效率

profile onqiu_ji_fenprofile viewer

LeetCode 1837[K进制表示下的各位数字总和]

LeetCode 1837[K进制表示下的各位数字总和]题目 链接 LeetCode 1837[K进制表示下的各位数字总和] 详情实例提示题解 思路 进制转换,遍历求和 代码 class Solution { public:int sumBase(int n, int k) {int iSum = 0;while (n > 0){iSum += n % k;n = n / k;}return iSum;}…

【PHP漏洞】PHPMyAdmin写shell的几种方式

phpMyAdmin是一个以PHP为基础,以web方式架构在服务器上的MySQL的数据库管理工具。让管理者可以通过Web接口来管理MySQL数据库。 查看phpmyadmin版本: /phpMyAdmin/README在高版本中无法写入一句话 mysql新特性secure_file_priv会对读写文件产生影响,该参数用来限制导入导出查…