Meridian 是一个基于 Cloudflare Workers 和 Durable Objects 的新闻聚合和智能摘要系统,专为处理大量新闻源并生成智能摘要而设计。
- 多源新闻聚合: 支持从多个 RSS 源自动抓取新闻
- 智能内容分析: 使用 Google Gemini 2.0 Flash 模型进行内容分析和摘要生成
- 自动聚类: 基于内容的相似性自动将新闻聚类
- 多语言支持: 支持中文、英文等多种语言的新闻处理
- 实时更新: 基于 Durable Objects 的实时新闻源监控
- 高性能: 利用 Cloudflare Workers 的全球分布式网络
- 可扩展: 模块化设计,易于扩展和维护
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ RSS Sources │───▶│ Durable Objects │───▶│ Content │
│ │ │ (Per Source) │ │ Processing │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Frontend │◀───│ API Gateway │◀───│ AI Analysis │
│ (Dashboard) │ │ (Worker) │ │ (Gemini 2.0) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│
▼
┌──────────────────┐
│ Cloudflare R2 │
│ (Storage) │
└──────────────────┘
- 运行时: Cloudflare Workers
- 存储: Cloudflare D1 (SQLite) 和 R2 (对象存储)
- AI 模型: Google Gemini 2.0 Flash
- 前端: HTML, CSS, JavaScript (原生)
- 部署: Cloudflare
- Node.js 18+
- Cloudflare 账户
- Wrangler CLI
- 克隆仓库
git clone https://github.com/your-username/meridian.git
cd meridian- 安装依赖
npm install- 配置环境变量
cp .dev.vars.example .dev.vars
# 编辑 .dev.vars 文件,填入必要的配置- 初始化数据库
npm run db:init- 启动开发服务器
npm run dev- 访问应用
打开浏览器访问
http://localhost:8787
在 .dev.vars 文件中配置以下变量:
# 数据库配置
DATABASE_URL="your-d1-database-url"
# AI 模型配置
GEMINI_API_KEY="your-gemini-api-key"
# 认证配置
API_TOKEN="your-api-token"
# 存储配置
R2_BUCKET_NAME="your-r2-bucket-name"
# 其他配置
ENVIRONMENT="development"系统支持多种新闻源,可以通过以下方式添加:
- 通过 API 接口添加
- 直接在数据库中添加
- 通过管理界面添加
示例新闻源配置:
{
"name": "BBC News",
"url": "http://feeds.bbci.co.uk/news/rss.xml",
"category": "general",
"language": "en",
"frequency_tier": "high"
}详细的 API 文档请参考 API 文档。
GET /ping- 健康检查GET /reports- 获取报告列表GET /reports/{id}- 获取单个报告POST /reports- 创建新报告GET /sources- 获取新闻源列表GET /sources/{id}- 获取单个新闻源POST /sources- 添加新闻源GET /articles- 获取文章列表GET /articles/{id}- 获取单篇文章GET /articles/search- 搜索文章GET /openGraph- 生成 OpenGraph 图像
- 配置 Wrangler
npx wrangler auth login- 设置环境变量
npx wrangler secret put GEMINI_API_KEY
npx wrangler secret put API_TOKEN
npx wrangler secret put DATABASE_URL- 部署应用
npm run deploynpm run db:migratemeridian/
├── .github/ # GitHub 配置文件
│ └── workflows/ # CI/CD 工作流
├── .vscode/ # VS Code 配置
├── apps/ # 应用程序
│ └── web/ # Web 应用
│ ├── public/ # 静态资源
│ └── src/ # 源代码
├── docs/ # 项目文档
│ ├── components/ # 组件文档
│ ├── guides/ # 指南文档
│ ├── overview.md # 项目概述
│ ├── getting-started.md # 快速开始
│ ├── api.md # API 文档
│ └── README.md # 文档索引
├── packages/ # 共享包
│ ├── config/ # 配置文件
│ ├── database/ # 数据库相关
│ └── types/ # 类型定义
├── services/ # 服务
│ ├── backend/ # 后端服务
│ ├── ml-service/ # ML 服务
│ └── scraper/ # 抓取服务
├── tools/ # 工具和脚本
├── package.json # 项目依赖
├── turbo.json # Turborepo 配置
└── README.md # 项目说明
- 创建新功能分支
git checkout -b feature/new-feature- 进行开发
npm run dev- 运行测试
npm test- 提交代码
git add .
git commit -m "feat: add new feature"
git push origin feature/new-feature- 创建 Pull Request
- 使用 ESLint 进行代码检查
- 使用 Prettier 进行代码格式化
- 遵循 JavaScript Standard Style
- 使用 Cloudflare Workers KV 缓存频繁访问的数据
- 实现智能缓存失效机制
- 优化 API 响应时间
- 合理设计数据库索引
- 使用分页查询减少数据传输
- 定期清理过期数据
- 批量处理减少 API 调用
- 实现智能重试机制
- 优化提示词提高响应质量
- API 响应时间
- 错误率
- 新闻源更新频率
- AI 模型调用次数
- 结构化日志记录
- 错误日志告警
- 性能日志分析
-
新闻源更新失败
- 检查新闻源 URL 是否可访问
- 验证 RSS 格式是否正确
- 查看错误日志获取详细信息
-
AI 模型调用失败
- 检查 API 密钥是否正确
- 验证请求格式是否符合要求
- 查看配额是否已用尽
-
数据库连接问题
- 检查数据库 URL 配置
- 验证网络连接是否正常
- 查看数据库状态
- 使用 Wrangler 本地调试
npx wrangler dev --local- 查看详细日志
npx wrangler tail- 使用 Cloudflare Dashboard 监控
我们欢迎社区贡献!请遵循以下步骤:
- Fork 项目
- 创建功能分支
- 提交更改
- 创建 Pull Request
- 等待代码审查
- 修复 Bug
- 添加新功能
- 改进文档
- 性能优化
- 测试用例
本项目采用 MIT 许可证。详情请参考 LICENSE 文件。
- 项目主页: https://github.com/your-username/meridian
- 问题反馈: https://github.com/your-username/meridian/issues
- 邮箱: your-email@example.com
- 新增文章搜索功能
- 改进新闻源管理界面
- 优化 AI 模型调用性能
- 修复已知 Bug
- 新增 OpenGraph 图像生成
- 改进报告生成流程
- 优化数据库查询性能
- 添加更多新闻源
- 初始版本发布
- 基本新闻聚合功能
- AI 摘要生成
- 管理界面
最后更新时间: 2025-06-20