https://github.com/GongLingRui/rss-aigc
Vibe-Coding|RSS-AIGC是一个非常简易的现代化的 RSS 订阅与 AI 内容聚合平台,专为内容创作者、研究人员和知识工作者设计。系统集成了 AI 报告生成、飞书机器人推送、多源内容聚合等高级功能,帮助用户高效地获取、管理和分析来自 Hacker News、GitHub、ArXiv 等专业平台的内容
https://github.com/GongLingRui/rss-aigc
Last synced: 8 days ago
JSON representation
Vibe-Coding|RSS-AIGC是一个非常简易的现代化的 RSS 订阅与 AI 内容聚合平台,专为内容创作者、研究人员和知识工作者设计。系统集成了 AI 报告生成、飞书机器人推送、多源内容聚合等高级功能,帮助用户高效地获取、管理和分析来自 Hacker News、GitHub、ArXiv 等专业平台的内容
- Host: GitHub
- URL: https://github.com/GongLingRui/rss-aigc
- Owner: GongLingRui
- Created: 2025-11-22T07:58:39.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2025-11-23T06:07:03.000Z (5 months ago)
- Last Synced: 2026-01-26T14:45:26.682Z (2 months ago)
- Language: Python
- Homepage:
- Size: 3.7 MB
- Stars: 110
- Watchers: 2
- Forks: 11
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- Awesome-GitHub-Repo - RSS-AIGC - 现代 RSS 订阅与 AI 内容加工平台,支持 Hacker News / GitHub / ArXiv 等源聚合与 AI 处理。 (信息获取 / RSS + AI 增强)
README
# RSS-AIGC 系统
一个现代化的 RSS 订阅与 AI 内容聚合平台,集成了 AI 报告生成、飞书机器人推送、多源内容聚合等高级功能。
## 📋 目录
- [系统概述](#系统概述)
- [核心功能](#核心功能)
- [技术架构](#技术架构)
- [系统组件](#系统组件)
- [快速开始](#快速开始)
- [配置说明](#配置说明)
- [部署指南](#部署指南)
- [开发指南](#开发指南)
- [API 文档](#api-文档)
- [常见问题](#常见问题)
## 🎯 系统概述
RSS-AIGC 是一个功能强大的 RSS 订阅与内容聚合平台,具备以下核心能力:
- **智能内容聚合**:支持 Hacker News、GitHub、ArXiv 等专业内容源的自动聚合
- **AI 内容加工**:集成 AI 模型进行内容分类、总结、翻译等智能处理
- **飞书集成**:支持飞书机器人定时推送、文档导出等功能
- **全文阅读**:自动抓取文章全文,提供更好的阅读体验
- **多角色架构**:采用 API、Worker、Scheduler 多角色分离架构,支持高并发和分布式部署
## ✨ 核心功能
### RSS 订阅管理
- ✅ 订阅源管理(添加、删除、分组、重命名)
- ✅ 文章列表与详情查看
- ✅ 收藏和已读状态管理
- ✅ OPML 导入/导出
- ✅ RSSHub 集成,支持将网站行为转换为 RSS 订阅
- ✅ 订阅源自动发现与去重
- ✅ 全文内容抓取与缓存
### 内容聚合
- **Hacker News**:自动聚合 HN 热门文章,支持 AI 分类与洞察提取
- **GitHub**:GitHub 仓库动态订阅,支持自动发现 AI 相关仓库
- **ArXiv**:学术论文订阅与引用分析
- **AI 娱乐**:AI 影视与娱乐资讯搜索与报告生成
- **AIGC**:AIGC 行业资讯聚合与报告生成
### AI 功能
- **内容分类**:使用 AI 对文章进行智能分类
- **内容总结**:自动生成文章摘要与总结
- **内容翻译**:支持多语言翻译
- **报告生成**:自动生成行业报告(AI 娱乐、AIGC 等)
- **洞察提取**:从 Hacker News 等平台提取关键洞察
### 飞书集成
- **机器人推送**:支持定时推送新闻总结到飞书群
- **文档导出**:将报告导出到飞书文档
- **卡片消息**:美观的飞书卡片消息格式
### 其他功能
- 图片代理与缓存
- 多用户支持与权限管理
- GitHub OAuth 登录
- 数据统计与分析
- 暗色模式支持(前端)
## 🏗️ 技术架构
### 整体架构
```
┌─────────────┐
│ Frontend │ React + TypeScript + Vite + Tailwind
│ (React) │
└──────┬──────┘
│ HTTP/REST API
┌──────▼──────────────────────────────────────────┐
│ Backend Services │
├──────────────────────────────────────────────────┤
│ API Server (Django + DRF) │
│ - 用户认证与授权 │
│ - 订阅源与文章管理 │
│ - AI 服务接口 │
│ - 飞书集成接口 │
└──────┬───────────────────────────────────────────┘
│
┌──────▼───────────────────────────────────────────┐
│ Worker Service (异步任务处理) │
│ - RSS 抓取与解析 │
│ - 全文内容提取 │
│ - 图片下载与处理 │
└──────┬───────────────────────────────────────────┘
│
┌──────▼───────────────────────────────────────────┐
│ Scheduler Service (任务调度) │
│ - 订阅源定期同步 │
│ - 任务重试与失败处理 │
│ - 数据清理与维护 │
└──────┬───────────────────────────────────────────┘
│
┌──────▼───────────────────────────────────────────┐
│ AsyncAPI Service (异步 API) │
│ - 图片代理服务 │
│ - 异步任务接口 │
└──────┬───────────────────────────────────────────┘
│
┌──────▼───────────────────────────────────────────┐
│ Harbor Service (数据持久化) │
│ - Feed/Story 数据保存 │
│ - 任务派发 │
└──────┬───────────────────────────────────────────┘
│
┌──────▼───────────────────────────────────────────┐
│ PostgreSQL Database │
└───────────────────────────────────────────────────┘
```
### 技术栈
#### 后端
- **框架**:Django 2.2 + Django REST Framework
- **数据库**:PostgreSQL 11+
- **异步框架**:aiohttp(用于 Worker、Scheduler、AsyncAPI)
- **任务调度**:自研调度器(rssant_scheduler)
- **认证**:Django AllAuth(支持 GitHub OAuth)
- **静态文件**:Whitenoise
- **进程管理**:Supervisor
#### 前端
- **框架**:React 18 + TypeScript
- **构建工具**:Vite
- **样式**:Tailwind CSS
- **UI 组件**:Radix UI / shadcn/ui
- **状态管理**:Zustand
- **路由**:React Router
- **HTTP 客户端**:Axios
#### 基础设施
- **容器化**:Docker + Docker Compose
- **Web 服务器**:Nginx
- **代理**:支持 HTTP/HTTPS/SOCKS5 代理
- **RSS 代理**:Cloudflare Worker(可选)
## 🔧 系统组件
### 1. rssant/ - Django 项目核心
- URL 路由配置
- 中间件
- 认证系统
- 模板与静态文件
### 2. rssant_api/ - 业务应用
主要业务逻辑模块:
- **models/**:数据模型(Feed、Story、UserFeed、WorkerTask 等)
- **views/**:API 视图(Feed、Story、HackerNews、GitHub、ArXiv、AI 娱乐、AIGC、飞书机器人等)
- **services/**:业务服务层
- `ai_service.py`:AI 服务封装
- `hacker_news_*`:Hacker News 相关服务
- `github_*`:GitHub 相关服务
- `arxiv_*`:ArXiv 相关服务
- `ai_entertainment_*`:AI 娱乐相关服务
- `aigc_report_generator.py`:AIGC 报告生成
- `rsshub_client.py`:RSSHub 客户端
### 3. rssant_scheduler/ - 调度服务
- 订阅源定期同步调度
- 任务重试机制
- 数据清理任务
### 4. rssant_worker/ - 工作服务
- RSS 抓取与解析
- 全文内容提取
- 图片处理
### 5. rssant_harbor/ - 数据持久化服务
- Feed/Story 数据保存
- 任务派发与管理
### 6. rssant_asyncapi/ - 异步 API 服务
- 图片代理服务
- 异步任务接口
### 7. rssant_common/ - 公共库
- 网络请求封装
- RSS 解析与处理
- 工具函数
- 日志配置
### 8. rssant_feedlib/ - Feed 处理库
- Feed 解析器
- 全文提取
- Feed 校验
### 9. frontend/ - 前端应用
React + TypeScript 单页应用,提供现代化的用户界面。
### 10. feishu/ - 飞书集成
- 飞书机器人推送脚本
- 飞书卡片格式化
- 报告生成与推送
## 🚀 快速开始
### 环境要求
- Python 3.8+
- Node.js 16+
- PostgreSQL 11+
- Docker & Docker Compose(可选,用于容器化部署)
### 本地开发环境搭建
#### 1. 克隆项目
```bash
git clone
cd rrs-aigc
```
#### 2. 后端环境配置
```bash
# 创建虚拟环境(推荐使用 conda)
conda create -n rssant python=3.8
conda activate rssant
# 安装依赖
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,配置数据库、AI API Key 等
```
#### 3. 数据库初始化
```bash
# 创建数据库
createdb rssant
# 运行迁移
python manage.py migrate
# 创建超级用户
python manage.py createsuperuser
```
#### 4. 前端环境配置
```bash
cd frontend
npm install
# 配置环境变量
cp .env.example .env
# 编辑 .env,设置 API 地址
```
#### 5. 启动服务
**启动后端 API 服务:**
```bash
# 在项目根目录
python manage.py runserver 0.0.0.0:6789
```
**启动 Worker 服务:**
```bash
# 设置角色为 worker
export RSSANT_ROLE=worker
python manage.py runserver 0.0.0.0:6793
```
**启动 Scheduler 服务:**
```bash
cd rssant_scheduler
python main.py
```
**启动前端开发服务器:**
```bash
cd frontend
npm run dev
```
### Docker 部署
项目提供了完整的 Docker 部署方案:
```bash
# 构建镜像
cd box
./build.sh
# 启动服务
./run.sh
# 或使用 docker-compose
docker-compose up -d
```
详细部署说明请参考 `box/` 目录下的脚本和配置文件。
## ⚙️ 配置说明
### 环境变量配置
主要配置项(通过 `.env` 文件或环境变量设置,前缀 `RSSANT_`):
#### 基础配置
- `RSSANT_DEBUG`:调试模式(默认:False)
- `RSSANT_LOG_LEVEL`:日志级别(DEBUG/INFO/WARNING/ERROR,默认:INFO)
- `RSSANT_ROOT_URL`:系统根 URL
- `RSSANT_ROLE`:服务角色(api/worker/scheduler/asyncapi,默认:api)
#### 数据库配置
- `RSSANT_PG_HOST`:PostgreSQL 主机(默认:localhost)
- `RSSANT_PG_PORT`:PostgreSQL 端口(默认:5432)
- `RSSANT_PG_DB`:数据库名(默认:rssant)
- `RSSANT_PG_USER`:数据库用户(默认:rssant)
- `RSSANT_PG_PASSWORD`:数据库密码
#### AI 服务配置
- `RSSANT_AI_API_KEY`:AI API 密钥(智谱 AI 或 OpenRouter)
- `RSSANT_AI_API_BASE_URL`:AI API 基础 URL(默认:智谱 AI)
- `RSSANT_AI_MODEL_CONFIG`:AI 模型配置(格式:model_id,model_name)
- `RSSANT_AI_TRANSLATE_MODEL_CONFIG`:翻译模型配置
- `RSSANT_ZHIPU_API_KEY`:智谱 AI API Key(用于总结,可选)
#### 搜索服务配置
- `RSSANT_TAVILY_API_KEY`:Tavily API Key(用于 AI 影视和 AIGC 搜索)
- `RSSANT_BAIDU_API_KEY`:百度搜索 API Key
#### GitHub 配置
- `RSSANT_GITHUB_TOKEN`:GitHub API Token(提高 API 速率限制)
- `RSSANT_GITHUB_CLIENT_ID`:GitHub OAuth Client ID
- `RSSANT_GITHUB_SECRET`:GitHub OAuth Secret
#### 飞书配置
- `RSSANT_FEISHU_APP_ID`:飞书应用 App ID
- `RSSANT_FEISHU_APP_SECRET`:飞书应用 App Secret
- `RSSANT_FEISHU_FOLDER_TOKEN`:飞书文件夹 Token(可选)
- `RSSANT_FEISHU_ENABLE`:是否启用飞书功能(默认:False)
#### RSSHub 配置
- `RSSANT_RSSHUB_BASE_URL`:RSSHub 实例地址(默认:https://rsshub.app)
- `RSSANT_RSSHUB_ENABLE`:是否启用 RSSHub(默认:True)
#### 代理配置
- `RSSANT_PROXY_ENABLE`:是否启用代理(默认:False)
- `RSSANT_PROXY_URL`:代理地址(支持 http/https/socks5)
- `RSSANT_RSS_PROXY_ENABLE`:是否启用 RSS 代理(默认:False)
- `RSSANT_RSS_PROXY_URL`:RSS 代理地址
#### 其他配置
- `RSSANT_CHECK_FEED_MINUTES`:订阅源检查间隔(分钟,默认:30)
- `RSSANT_FEED_STORY_RETENTION`:每个订阅源保留的文章数(默认:5000)
- `RSSANT_IMAGE_PROXY_ENABLE`:是否启用图片代理(默认:True)
完整配置项请参考 `rssant_config/env.py`。
## 📦 部署指南
### 生产环境部署
#### 1. 使用 Docker 部署(推荐)
```bash
# 构建生产镜像
cd box
./build-all.sh
# 配置环境变量
cp rssant.env.example rssant.env
# 编辑 rssant.env
# 启动服务
./run.sh
```
#### 2. 手动部署
**后端部署:**
```bash
# 使用 Gunicorn 运行
gunicorn rssant.wsgi:application --bind 0.0.0.0:6789 --workers 4
# 使用 Supervisor 管理进程
supervisord -c /path/to/supervisord.conf
```
**前端部署:**
```bash
cd frontend
npm run build
# 将 dist 目录部署到 Nginx 或静态文件服务器
```
**Nginx 配置示例:**
```nginx
server {
listen 80;
server_name your-domain.com;
# 前端静态文件
location / {
root /var/www/rssant-html;
try_files $uri $uri/ /index.html;
}
# 后端 API
location /api/ {
proxy_pass http://127.0.0.1:6789;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
```
### 多服务部署
系统支持将不同角色部署到不同服务器:
- **API 服务**:处理用户请求,运行 `role=api`
- **Worker 服务**:处理异步任务,运行 `role=worker`
- **Scheduler 服务**:任务调度,运行 `role=scheduler`
- **AsyncAPI 服务**:异步 API,运行 `role=asyncapi`
通过 `RSSANT_ROLE` 环境变量指定角色。
## 💻 开发指南
### 项目结构
```
rrs-aigc/
├── rssant/ # Django 项目核心
│ ├── settings/ # 配置文件
│ ├── urls.py # URL 路由
│ └── middleware/ # 中间件
├── rssant_api/ # 业务应用
│ ├── models/ # 数据模型
│ ├── views/ # API 视图
│ ├── services/ # 业务服务
│ └── migrations/ # 数据库迁移
├── rssant_scheduler/ # 调度服务
├── rssant_worker/ # 工作服务
├── rssant_harbor/ # 数据持久化服务
├── rssant_asyncapi/ # 异步 API 服务
├── rssant_common/ # 公共库
├── rssant_feedlib/ # Feed 处理库
├── rssant_config/ # 配置管理
├── frontend/ # 前端应用
├── feishu/ # 飞书集成
├── box/ # Docker 部署配置
├── deploy/ # 部署脚本
├── scripts/ # 工具脚本
└── tests/ # 测试文件
```
### 开发流程
1. **创建功能分支**
```bash
git checkout -b feature/your-feature
```
2. **运行测试**
```bash
pytest
```
3. **代码规范**
- Python:遵循 PEP 8
- TypeScript:使用 ESLint 检查
4. **提交代码**
```bash
git add .
git commit -m "feat: 添加新功能"
git push origin feature/your-feature
```
### 添加新的 API 端点
1. 在 `rssant_api/views/` 创建视图类
2. 在 `rssant_api/urls.py` 注册路由
3. 编写相应的服务层代码(如需要)
4. 更新 API 文档
### 添加新的数据模型
1. 在 `rssant_api/models/` 定义模型
2. 创建迁移文件:`python manage.py makemigrations`
3. 应用迁移:`python manage.py migrate`
## 📚 API 文档
系统提供完整的 API 文档:
- **Swagger UI**:`http://your-domain/docs/v1/swagger/`
- **ReDoc**:`http://your-domain/docs/v1/`
- **Schema**:`http://your-domain/docs/v1/schema/`
### 主要 API 端点
#### 订阅源管理
- `POST /api/v1/feed.query` - 查询订阅列表
- `POST /api/v1/feed.get` - 获取订阅详情
- `POST /api/v1/feed.create` - 创建订阅
- `POST /api/v1/feed.import` - 导入订阅(OPML)
- `POST /api/v1/feed.delete` - 删除订阅
#### 文章管理
- `POST /api/v1/story.query` - 查询文章列表
- `POST /api/v1/story.get` - 获取文章详情
- `POST /api/v1/story.set_favorited` - 设置收藏状态
- `POST /api/v1/story.set_watched` - 设置已读状态
#### Hacker News
- `POST /api/v1/hacker_news.query` - 查询 HN 文章
- `POST /api/v1/hacker_news.get` - 获取 HN 文章详情
- `POST /api/v1/hacker_news.report` - 生成 HN 报告
#### GitHub
- `POST /api/v1/github.query` - 查询 GitHub 仓库
- `POST /api/v1/github.subscribe` - 订阅仓库
#### ArXiv
- `POST /api/v1/arxiv.query` - 查询论文
- `POST /api/v1/arxiv.report` - 生成论文报告
#### AI 娱乐
- `POST /api/v1/ai_entertainment.search` - 搜索 AI 影视资讯
- `POST /api/v1/ai_entertainment.report` - 生成 AI 娱乐报告
#### AIGC
- `POST /api/v1/aigc.report` - 生成 AIGC 报告
#### 飞书机器人
- `POST /api/v1/feishu_bot.query` - 查询机器人配置
- `POST /api/v1/feishu_bot.create` - 创建机器人配置
- `POST /api/v1/feishu_bot.push` - 手动触发推送
#### RSSHub
- `GET /api/v1/rsshub.routes` - 获取可用路由
- `POST /api/v1/rsshub.generate` - 生成 RSSHub 订阅
详细 API 文档请访问 Swagger UI。
## ❓ 常见问题
### 1. 如何配置 AI 服务?
系统支持两种 AI 服务:
- **智谱 AI**(默认):设置 `RSSANT_AI_API_KEY` 为智谱 AI 的 API Key
- **OpenRouter**:设置 `RSSANT_AI_API_BASE_URL=https://openrouter.ai/api/v1` 并配置相应的 API Key
### 2. 如何启用飞书功能?
1. 在飞书开放平台创建应用,获取 App ID 和 App Secret
2. 配置环境变量:
- `RSSANT_FEISHU_APP_ID`
- `RSSANT_FEISHU_APP_SECRET`
- `RSSANT_FEISHU_ENABLE=True`
3. 在数据库中配置飞书机器人(通过 API 或管理后台)
### 3. 订阅源同步失败怎么办?
- 检查网络连接和代理配置
- 查看 Worker 服务日志
- 检查订阅源 URL 是否可访问
- 查看 `WorkerTask` 表中的任务状态
### 4. 如何添加自定义订阅源?
- 通过前端界面添加
- 通过 API `feed.create` 添加
- 通过 OPML 导入
### 5. 如何配置 RSSHub?
- 使用公共实例:保持默认配置 `RSSANT_RSSHUB_BASE_URL=https://rsshub.app`
- 使用自部署实例:设置 `RSSANT_RSSHUB_BASE_URL` 为你的实例地址
### 6. 数据库迁移失败?
```bash
# 检查迁移状态
python manage.py showmigrations
# 手动应用迁移
python manage.py migrate --fake-initial
# 重置迁移(谨慎使用)
python manage.py migrate --fake zero
python manage.py migrate
```
## 📄 许可证
本项目遵循开源许可证。
## 🤝 贡献
欢迎提交 Issue 和 Pull Request!
## 📞 联系方式
如有问题或建议,请通过以下方式联系:
- 提交 GitHub Issue
- 发送邮件
---
**注意**:本项目在 conda 虚拟环境下开发和测试,使用 terminal 命令时请确保已激活相应的 conda 环境。