1. 项目背景与需求分析
在信息爆炸的时代,AI领域每天都有大量新模型、工具和概念涌现。作为一名长期关注AI技术发展的从业者,我深刻体会到及时获取高质量行业信息的重要性。传统的信息获取方式存在几个痛点:
- 信息滞后:重要新闻往往在社交媒体传播后才被主流媒体跟进,存在时间差
- 信息过载:手动追踪多个平台导致信息碎片化,难以有效过滤噪音
- 个性化缺失:通用资讯平台无法针对个人兴趣进行精准筛选
基于这些痛点,我设计开发了AI Daily系统,一个基于RSS和LLM的智能信息聚合与推送平台。它的核心价值在于:
- 实时性:能在重大新闻发布后1小时内推送通知
- 个性化:可根据个人关注点定制信息筛选标准
- 结构化:将碎片信息整理为易消化的日报格式
- 轻量化:仅需Python环境和基础配置即可运行
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 系统架构设计
2.1 整体架构
系统采用模块化设计,主要包含以下组件:
code复制┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ RSS采集模块 │───▶│ LLM处理引擎 │───▶│ 推送模块 │
└─────────────┘ └─────────────┘ └─────────────┘
▲ ▲ ▲
│ │ │
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ RSS源管理 │ │ 评分规则库 │ │ 推送渠道管理│
└─────────────┘ └─────────────┘ └─────────────┘
2.2 关键技术选型
RSS协议选择:
- 采用RSS而非直接爬取网站,因为:
- 标准化程度高:所有源输出统一XML格式
- 维护成本低:无需处理各网站反爬机制
- 扩展性强:新增源只需添加订阅链接
LLM集成方案:
- 使用OpenAI兼容API(通过OpenRouter中转)
- 选择Grok-4.1 Fast模型,因其:
- 性价比高($0.2/M输入token)
- 响应速度快(平均1.5秒/请求)
- 对技术类内容理解准确
数据存储设计:
- 采用文件系统而非数据库,因为:
- 数据结构简单(仅需存储文章元数据和评分)
- 读写频率低(每30分钟一次批量操作)
- 便于调试和迁移(纯文本可读性强)
3. 核心功能实现
3.1 信息采集流程
采集模块工作流程如下:
- 定时触发:每30分钟执行一次采集任务
- 源更新检查:
- 对每个RSS源检查过去150分钟(30+120)的内容
- 120分钟缓冲期解决源更新延迟问题
- 内容解析:
- 提取标题、链接、发布时间、正文等字段
- 转换为统一Markdown格式存储
- 去重处理:
- 基于URL哈希值排除重复条目
- 相似标题检测(编辑距离<30%视为重复)
关键代码片段:
python复制def fetch_rss(feed_url, lookback_minutes):
entries = []
feed = feedparser.parse(feed_url)
cutoff = datetime.now() - timedelta(minutes=lookback_minutes)
for entry in feed.entries:
pub_date = datetime(*entry.published_parsed[:6])
if pub_date > cutoff:
entries.append({
'title': entry.title,
'link': entry.link,
'published': pub_date.isoformat(),
'content': html2md(entry.description)
})
return entries
3.2 智能评分系统
评分是系统的核心智能所在,实现要点:
评分标准:
code复制90-100分:里程碑级发布(如GPT-5发布)
80-89分:重要技术突破(如新SOTA模型)
70-79分:实用工具更新(如VS Code插件)
60-69分:一般行业新闻
<60分:过滤掉(广告、低质内容)
LLM提示词设计:
markdown复制请根据以下标准评分(0-100):
[评分标准如上...]
输入文章内容:
标题:{title}
来源:{source}
内容:{content}
请输出JSON格式:
{
"score": 分数,
"reason": "评分理由",
"tags": ["标签1", "标签2"]
}
批量处理优化:
- 将20-30篇文章打包为一个请求
- 设置max_tokens=150限制响应长度
- 超时自动重试机制(最多3次)
3.3 推送策略设计
系统支持两种推送模式:
即时推送:
- 触发条件:评分≥90的热点新闻
- 处理流程:
- 检查过去2天内是否推送过相关主题
- 如为新事件,立即生成简讯
- 通过Webhook发送到指定平台
定时汇总:
- 触发条件:预设的cron时间点(如早8点)
- 处理流程:
- 聚合过去24小时60分以上的内容
- 按主题聚类(使用LLM识别关联性)
- 生成结构化日报(含持续跟踪标记)
推送内容示例:
markdown复制🌟 今日AI热点(2026-03-04)
【重磅发布】
• Gemini 3.1 Flash发布 - 谷歌新一代轻量模型(评分:95)
• Qwen团队人事变动 - 核心成员离职(持续跟踪)
【技术进展】
• Stable Diffusion 4.1推出新采样器 - 速度提升2倍
4. 系统部署与实践
4.1 环境配置
基础要求:
- Python 3.10+
- 可访问的LLM API(OpenAI/OpenRouter等)
- 推送渠道Webhook(飞书/Discord等)
详细步骤:
- 克隆仓库:
bash复制git clone https://github.com/YeeKal/ai-daily.git
cd ai-daily
- 创建虚拟环境:
bash复制python -m venv .venv
source .venv/bin/activate # Linux/Mac
# .venv\Scripts\activate # Windows
- 安装依赖:
bash复制pip install -r requirements.txt
- 配置文件(.env):
ini复制OPENROUTER_API_KEY=sk_xxxxxx
FEISHU_WEBHOOK_URL=https://open.feishu.cn/xxxx
4.2 自定义配置
RSS源管理:
- 基础源:400+预配置源(AI领域KOL、企业博客等)
- 添加新源:修改config.json的sources.add字段
json复制{
"sources": {
"add": [
{
"title": "My Blog",
"xmlUrl": "https://example.com/feed.xml",
"category": "Tech"
}
]
}
}
评分标准调整:
修改prompts/score.txt中的评分规则,例如增加:
code复制- +10分:如果内容涉及"大模型安全"
- -20分:如果标题包含"震惊""必看"等夸张词汇
4.3 运行监控
启动命令:
bash复制python -m src.main
日志示例:
code复制[2026-03-04 08:00:00] INFO - 开始定时推送任务
[2026-03-04 08:02:15] INFO - 处理42篇文章,平均评分72.3
[2026-03-04 08:05:30] INFO - 成功推送日报到飞书(5条重点)
5. 优化经验与问题解决
5.1 关键优化点
内存管理:
- 采用生成器分批读取RSS源
- 限制并发请求数(max_workers=10)
- 自动清理7天前的数据文件
性能提升:
- 缓存已处理URL列表
- 预编译正则表达式
- 异步IO处理网络请求
质量改进:
- 引入持续跟踪标记
- 添加来源可信度权重
- 人工复核高频误判案例
5.2 典型问题解决
问题1:重复推送相同事件
- 原因:多个源报道同一事件
- 解决方案:
- 基于标题相似度去重
- 设置12小时静默期
- 添加"[持续跟踪]"标记
问题2:重要新闻漏报
- 原因:RSS更新延迟
- 解决方案:
- 增加lookback时间窗口(120分钟)
- 关键源单独设置更短间隔
- 人工补充必须监控的源
问题3:评分不稳定
- 原因:LLM对模糊标准判断不一致
- 解决方案:
- 提供更详细的评分示例
- 增加分数修正系数
- 实现多数投票机制(3次评分取中值)
6. 扩展与演进方向
6.1 功能扩展计划
短期规划:
- 添加Telegram推送支持
- 集成GitHub Trending API
- 支持用户自定义关键词监控
中期规划:
- 实现自动生成事件时间线
- 添加多语言支持
- 开发可视化仪表盘
长期规划:
- 引入简单向量检索
- 尝试小模型本地部署
- 建立行业知识图谱
6.2 成本优化实践
当前系统运行成本(日均):
- API费用:约$0.15(Grok-4.1 Fast)
- 服务器:$0(可运行在树莓派上)
进一步优化空间:
- 使用更便宜的模型处理低优先级内容
- 实现请求结果缓存
- 批量处理时动态调整max_tokens
7. 项目价值与使用建议
7.1 适用场景
个人开发者:
- 及时了解技术动态
- 追踪竞争对手动向
- 发现合作机会
技术团队:
- 作为晨会材料来源
- 技术雷达更新参考
- 行业趋势分析基础
内容创作者:
- 热点话题发现
- 内容创作灵感
- 时效性保障
7.2 使用建议
信息源选择:
- 初期使用预设源
- 逐步添加垂直领域源
- 定期清理低质量源
评分标准:
- 先使用默认标准运行1周
- 根据误报/漏报情况调整
- 不同领域可保存多个配置
推送管理:
- 重要时段提高推送频率
- 设置免打扰时间段
- 结合邮件备份关键信息
这个项目目前已在GitHub开源,所有代码和配置均可自由使用。在实际使用中,我发现最重要的不是追求100%的准确率,而是建立持续优化的机制。每周花15分钟review误判案例,调整评分标准,系统就会越来越符合个人需求。
