# rss-reader-ai **Repository Path**: li-zhenyi/rss-reader-ai ## Basic Information - **Project Name**: rss-reader-ai - **Description**: 文章阅读器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-19 - **Last Updated**: 2025-10-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 📰 RSS 阅读器 + AI 摘要 > 🤖 一个现代化的 RSS 阅读器,利用 AI 自动生成文章摘要,提升信息获取效率 [![Go Version](https://img.shields.io/badge/Go-1.21+-00ADD8?style=flat&logo=go)](https://go.dev/) [![React Version](https://img.shields.io/badge/React-18.2+-61DAFB?style=flat&logo=react)](https://react.dev/) [![License](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) --- ## ✨ 功能特性 - 📡 **多源订阅**:支持 RSS/Atom 格式,自动定时抓取更新 - 🤖 **AI 摘要**:集成 Coze API,自动生成 100-200 字中文摘要 - 🏷️ **智能分类**:AI 自动提取文章标签,支持标签过滤 - 📚 **笔记收藏**:为文章添加笔记,一键收藏重要内容 - 🔍 **全文搜索**:基于 MySQL FULLTEXT 索引的快速搜索 - 📊 **周报导出**:一键导出 Markdown 格式周报,回顾本周阅读 - 🎨 **现代 UI**:三栏布局,深色模式,快捷键支持 - 🐳 **一键部署**:Docker Compose 快速启动 --- ## 🖼️ 界面预览 ``` ┌──────────────────────────────────────────────────────────┐ │ Header: RSS 阅读器 | 🔍 搜索框 | ⚙️ 设置 │ ├────────┬─────────────────────┬──────────────────────────┤ │ │ │ │ │ Feed │ Article List │ Article Reader │ │ List │ ┌─────────────┐ │ ┌────────────────────┐ │ │ │ │ 📰 文章标题 │ │ │ 📰 文章详情 │ │ │ 📁 技术 │ │ 🤖 AI摘要... │ │ │ 👤 作者 | ⏰ 2小时前 │ │ │ (12) │ │ ⏰ 2小时前 │ │ ├────────────────────┤ │ │ 📁 新闻 │ └─────────────┘ │ │ 🤖 AI 摘要: │ │ │ (8) │ ┌─────────────┐ │ │ 本文介绍了... │ │ │ 📁 博客 │ │ 📰 文章标题 │ │ ├────────────────────┤ │ │ (5) │ │ 🤖 AI摘要... │ │ │ 📖 文章正文 │ │ │ │ │ ⏰ 1天前 │ │ │ Lorem ipsum... │ │ │ │ └─────────────┘ │ │ │ │ │ │ │ │ ⭐ 收藏 | 📝 笔记 │ │ └────────┴─────────────────────┴──────────────────────────┘ ``` --- ## 🚀 快速开始 ### 环境要求 - Go 1.21+ - Node.js 18+ - MySQL 8.0+ - Docker & Docker Compose(可选) ### 方式一:Docker 部署(推荐) ```bash # 1. 克隆项目 git clone https://github.com/yourusername/rss-reader-ai.git cd rss-reader-ai # 2. 配置环境变量 cp .env.example .env # 编辑 .env 文件,填入 MySQL 密码和 Coze API Key # 3. 启动服务 docker-compose up -d # 4. 访问应用 # 前端:http://localhost:5173 # 后端:http://localhost:8080 ``` ### 方式二:手动部署 #### 1️⃣ 数据库初始化 ```bash # 创建数据库 mysql -u root -p CREATE DATABASE rss_reader CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 执行迁移脚本 mysql -u root -p rss_reader < backend/migrations/init.sql ``` #### 2️⃣ 后端启动 ```bash cd backend # 安装依赖 go mod download # 配置文件 cp config.example.yaml config.yaml # 编辑 config.yaml,填入数据库和 Coze API 配置 # 运行 go run cmd/server/main.go ``` #### 3️⃣ 前端启动 ```bash cd frontend # 安装依赖 npm install # 启动开发服务器 npm run dev ``` --- ## 📖 使用指南 ### 添加订阅源 1. 点击左侧 **"+ 添加订阅"** 按钮 2. 输入 RSS 源地址(例如:`https://rsshub.app/juejin/trending/frontend/weekly`) 3. 选择分类(技术/新闻/博客等) 4. 点击 **"确定"**,系统会自动抓取文章 ### 阅读文章 1. 点击左侧订阅源,右侧显示文章列表 2. 点击文章标题,右侧显示文章详情 3. 查看 **AI 生成的摘要**,快速了解文章内容 4. 点击 **"阅读原文"** 在新标签页打开完整文章 ### 收藏和笔记 - 点击 ⭐ 按钮收藏文章 - 点击 📝 按钮添加笔记(支持 Markdown) - 在顶部过滤器选择 **"收藏"** 查看所有收藏文章 ### 导出周报 1. 点击顶部 **"导出"** 按钮 2. 选择时间范围(本周/本月/自定义) 3. 选择是否包含 AI 摘要和笔记 4. 点击 **"导出"**,下载 Markdown 文件 --- ## 🛠️ 技术栈 ### 后端 - **语言**:Go 1.21+ - **框架**:Gin(HTTP 框架) - **ORM**:GORM - **数据库**:MySQL 8.0+ - **RSS 解析**:gofeed - **定时任务**:robfig/cron - **AI 服务**:Coze API ### 前端 - **框架**:React 18.2 - **语言**:TypeScript 5.3 - **构建工具**:Vite 5.0 - **UI 库**:Ant Design 5.12 - **HTTP 客户端**:Axios - **Markdown 渲染**:markdown-it --- ## 📁 项目结构 ``` rss-reader-ai/ ├── backend/ # 后端代码 │ ├── cmd/server/ # 程序入口 │ ├── internal/ │ │ ├── config/ # 配置管理 │ │ ├── model/ # 数据模型 │ │ ├── repository/ # 数据访问层 │ │ ├── service/ # 业务逻辑层 │ │ ├── handler/ # HTTP 处理器 │ │ └── scheduler/ # 定时任务 │ ├── pkg/ # 公共工具 │ ├── migrations/ # 数据库迁移 │ └── go.mod ├── frontend/ # 前端代码 │ ├── src/ │ │ ├── components/ # React 组件 │ │ ├── pages/ # 页面 │ │ ├── services/ # API 调用 │ │ └── types/ # TypeScript 类型 │ └── package.json ├── docs/ # 项目文档 │ ├── 设计文档.md │ └── 开发指南.md ├── .github/chatmodes/ # 自定义聊天配置 │ └── rss-mentor.chatmode.md ├── docker-compose.yml └── README.md ``` --- ## 🔧 配置说明 ### 后端配置(config.yaml) ```yaml server: port: 8080 mode: debug # debug / release database: host: localhost port: 3306 username: root password: your_password database: rss_reader coze: api_key: your_coze_api_key bot_id: your_bot_id fetcher: default_interval: 3600 # 抓取间隔(秒) timeout: 30 # 请求超时(秒) ``` ### 前端配置(.env) ```env VITE_API_BASE_URL=http://localhost:8080 VITE_APP_TITLE=RSS 阅读器 ``` --- ## 📊 数据库表结构 ### feeds(订阅源) ```sql id, url, title, description, category, last_fetched_at, fetch_interval, is_active ``` ### articles(文章) ```sql id, feed_id, guid, title, link, content, ai_summary, ai_tags, is_read, is_starred, user_note ``` ### tags(标签) ```sql id, name, color, article_count ``` ### article_tags(文章-标签关联) ```sql id, article_id, tag_id ``` 详细表结构请查看 [`docs/设计文档.md`](docs/设计文档.md) --- ## 🎯 开发计划 - [x] 项目初始化和文档编写 - [ ] 数据库设计和迁移脚本 - [ ] 后端基础框架搭建 - [ ] RSS 抓取模块开发 - [ ] AI 摘要集成 - [ ] 前端界面开发 - [ ] 前后端联调 - [ ] Docker 部署支持 - [ ] 性能优化和测试 - [ ] 开源发布 --- ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request! 1. Fork 本项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 提交 Pull Request --- ## 📄 开源许可 本项目采用 [MIT License](LICENSE) 开源协议。 --- ## 🙏 致谢 - [gofeed](https://github.com/mmcdole/gofeed) - 优秀的 Go RSS 解析库 - [Ant Design](https://ant.design/) - 企业级 UI 设计语言 - [Coze API](https://www.coze.cn/) - 强大的 AI 能力支持 --- ## 📮 联系方式 - 项目主页:https://github.com/yourusername/rss-reader-ai - 问题反馈:https://github.com/yourusername/rss-reader-ai/issues - 邮箱:your.email@example.com --- **⭐ 如果这个项目对你有帮助,请给我一个 Star!**