一个智能 RSS 订阅监控、摘要生成和通知系统。它能自动从指定的 RSS 源拉取更新,利用大语言模型(LLM)生成内容摘要,并将新动态通过飞书(Feishu)等渠道发送通知。
前置条件,自建rsshub,然后参考不同网站的路由格式,获得一个可用的rss链接。rsshub的好处是配置简单,功能强大。
✨ 功能特性
- RSS 源管理: 通过 Web 界面方便地添加、删除和管理 RSS 订阅源。
- 自动化抓取: 内置定时任务,周期性地检查并获取 RSS 源的最新文章。
- AI 内容摘要: 集成大语言模型(LLM),自动为新增的文章生成核心内容摘要。
- 变更检测: 监控文章内容的变化,并对更新进行提醒。
- 飞书集成: 将新文章及其摘要实时推送到指定的飞书群组或联系人。
- Web 用户界面: 提供一个现代化的 React 前端,用于轻松配置监控任务和查阅历史记录。
- 数据持久化: 使用数据库存储 RSS 源、文章、日志等信息。
🛠️ 技术栈
- 后端: Node.js, Express.js
- 前端: React, Vite
- 数据库: SQLite (或其他兼容
knex的数据库) - 通知渠道: 飞书 Webhook
🚀 快速开始
环境准备
- Node.js (推荐 v18 或更高版本)
- npm 或 pnpm
后端设置
-
进入后端目录并安装依赖:
cd backend npm install -
配置环境变量: 复制
.env.example文件并重命名为.env。cp .env.example .env然后编辑
.env文件,填入必要的配置,例如数据库路径、飞书 Webhook 地址以及 LLM 的 API Key。 -
初始化数据库: 执行数据库迁移脚本来创建所需的表结构。
npx knex migrate:latest -
启动后端服务:
npm start服务默认将在
http://localhost:3000上运行。
前端设置
-
进入前端目录并安装依赖:
cd frontend npm install -
启动前端开发服务:
npm run dev应用将在
http://localhost:5173(或另一个可用端口) 上运行。 -
访问应用: 打开浏览器并访问前端应用的地址即可开始使用。
部署
关于如何将此项目部署到生产环境,请参考 DEPLOY.md 文件和 deploy.sh 脚本。
项目结构
rss_monitor/
├── backend/ # 后端 Node.js/Express 应用
│ ├── src/
│ │ ├── api/ # API 路由、控制器和中间件
│ │ ├── core/ # 核心业务逻辑(抓取、摘要、通知)
│ │ ├── database/# 数据库连接、迁移和模型
│ │ └── ...
│ └── server.js # 服务入口
├── frontend/ # 前端 React/Vite 应用
│ ├── src/
│ │ ├── components/ # UI 组件
│ │ ├── pages/ # 页面级组件
│ │ ├── services/ # API 请求服务
│ │ └── ...
│ └── vite.config.js # Vite 配置
├── deploy.sh # 部署脚本
└── ...