News Agent Web 是一个基于 AI 的智能资讯采集与推送系统。它能够从多个 RSS 源自动采集最新资讯,使用 AI 生成结构化的日报文章,并通过 Web 界面进行展示和管理。
- 支持从多个 RSS 源采集资讯
- 覆盖 AI/科技、加密货币、财经等领域
- 灵活的源管理:添加、编辑、删除、启用/禁用
- 自动去重和内容过滤
- 使用 OpenAI 兼容格式的 API
- 自动生成结构化的日报文章
- 支持自定义 AI 模型和参数
- 智能摘要和分类
- 支持自定义推送时间
- 每天自动生成新内容
- 灵活的时区选择
- 现代化的响应式设计
- 文章浏览和管理
- 设置页面完成所有配置
- 无需修改代码即可使用
| 组件 | 技术 |
|---|---|
| 后端 | FastAPI + SQLite + APScheduler |
| 前端 | Next.js 16 + React 19 + TailwindCSS |
| AI | OpenAI 兼容格式 API |
| 部署 | Docker + Docker Compose |
news-agent-web/
├── backend/ # FastAPI 后端
│ ├── app/
│ │ ├── main.py # 主应用入口
│ │ ├── models.py # 数据库模型
│ │ ├── schemas.py # Pydantic 模型
│ │ ├── collector.py # RSS 采集器
│ │ ├── generator.py # AI 生成器
│ │ ├── news_service.py # 新闻服务
│ │ ├── settings_service.py # 设置服务
│ │ └── scheduler.py # 定时任务
│ ├── scripts/
│ │ └── init_feeds.py # 初始化脚本
│ ├── requirements.txt # Python 依赖
│ └── Dockerfile
├── frontend/ # Next.js 前端
│ ├── src/
│ │ ├── app/ # 页面路由
│ │ ├── components/ # React 组件
│ │ ├── lib/ # 工具库
│ │ └── types/ # TypeScript 类型
│ ├── package.json # Node 依赖
│ └── Dockerfile
├── data/
│ └── feeds.yaml # 默认 RSS 源配置
├── docker-compose.yml # Docker 编排配置
├── LICENSE # MIT 许可证
└── README.md # 项目说明
# 克隆项目
git clone https://github.com/zt6453928/news-agent.git
cd news-agent
# 一键启动
docker-compose up -d
# 查看日志
docker-compose logs -f访问 http://localhost:3000 开始使用。
cd backend
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 安装依赖
pip install -r requirements.txt
# 启动服务
uvicorn app.main:app --reload --port 8000cd backend
python -m scripts.init_feedscd frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev- 前端界面: http://localhost:3000
- 后端 API: http://localhost:8000
- API 文档: http://localhost:8000/docs
在设置页面配置 OpenAI 兼容的 API:
| 配置项 | 说明 | 示例 |
|---|---|---|
| API Base URL | API 服务地址 | https://api.openai.com |
| API Key | API 密钥 | sk-xxx... |
| Model | 使用的模型名称 | gpt-4o-mini |
支持的 API 提供商:
- OpenAI 官方
- Azure OpenAI
- 各类第三方兼容服务
支持的源分类:
- AI/科技
- 加密货币
- 财经
操作:
- 添加自定义 RSS 源
- 编辑现有源配置
- 启用/禁用单个源
- 删除不需要的源
- 设置每天固定时间运行采集任务
- 选择合适的时区(默认北京时间)
- 支持立即手动触发采集
# 构建并启动
docker-compose up -d
# 停止服务
docker-compose down
# 重新构建
docker-compose up -d --build创建 .env 文件配置以下变量:
# 后端
PORT=8000
# 前端
NEXT_PUBLIC_API_URL=http://localhost:8000- 使用 HTTPS
- 配置反向代理(Nginx)
- 设置数据库备份
- 限制 API 访问频率
- 使用进程管理器(PM2/Systemd)
欢迎贡献代码、报告问题或提出建议!
请阅读 CONTRIBUTING.md 了解详情。
请阅读 SECURITY.md 了解安全报告流程。
A: 检查 RSS 源是否可访问,部分源可能有地区限制。
A: 确认 API 配置正确,检查 API Key 是否有效,以及模型名称是否正确。
A: 可以修改 backend/app/generator.py 中的提示词模板。
本项目采用 MIT License 开源协议。
感谢所有开源项目的贡献者!
如果这个项目对您有帮助,请给一个 Star ⭐