自动聚合 AI 信息源,使用 AI 智能总结,生成多平台适配的日报文章。
核心功能:
- 多信息源融合(Newsletter 邮件 + AI Builders 动态 + 优质来源推荐)
- AI 智能总结(深入展开,不缩略,纯文本输出适配公众号)
- 自动生成小红书、微信公众号风格文章(自动清除 Markdown 格式)
- 参考链接自动去重,避免重复编号
- 推荐来源自动加入追踪列表
- AI 生成封面配图(可选)
- GitHub Actions 每天北京时间 16:00 自动运行
- 邮件推送日报
本项目灵感来源于 @zarazhangrui 的 follow-builders skill,用于追踪顶尖 AI Builders 的动态。感谢开源社区的贡献!
每天生成的统一日报包含以下部分:
# AI 日报 - YYYY-MM-DD
## 今日概览
(话题关键词、涉及的主要来源)
## 一、AI Newsletter 精选
(多个 Newsletter 按主题整合,深入展开,纯文本格式)
## 二、AI Builders 动态
(X/Twitter 推文 + 播客摘要,深入展开)
## 三、新发现的优质来源
(推荐的新 Builder/播客,自动加入追踪)
## 参考来源
(所有链接,脚注格式)
特点:
- 深入展开每个话题,补充背景和技术解读
- 纯文本格式,适配微信公众号等平台直接发布
- 分段分行清晰,用「」标注关键术语
- 参考链接自动去重
- 推荐来源自动加入追踪列表
本项目支持多种信息源,自动融合到统一日报:
通过邮箱订阅 AI Newsletter,程序自动从邮箱获取并总结。
优点: 信息来源权威、更新稳定、内容质量高 适合: 有稳定 Newsletter 订阅习惯的用户
配置:
IMAP_SERVER=imap.gmail.com
IMAP_PORT=993
IMAP_USER=your_email@gmail.com
IMAP_PASSWORD=your_password推荐订阅的 AI Newsletter:
| Newsletter | 订阅地址 | 特点 |
|---|---|---|
| Lenny's Newsletter | lenny.substack.com | 产品和技术洞察 |
| TLDR AI | tldr.tech/ai | 每日 AI 新闻摘要 |
| The Batch | deeplearning.ai | DeepLearning.ai 出品 |
| Ben's Bites | bensbites.com | AI 产品和趋势 |
| Import AI | jackclark.net | 深度 AI 分析 |
追踪顶尖 AI Builders(创业者、研究者、工程师)在 X/Twitter 和播客的动态。
优点: 信息最前沿、观点独特、行业趋势洞察 适合: 关注 AI 行业动态的开发者和创业者
依赖:
# 安装 follow-builders skill
git clone https://github.com/zarazhangrui/follow-builders.git ~/.claude/skills/follow-builders
cd ~/.claude/skills/follow-builders/scripts && npm install追踪的 Builders(可自定义):
- Andrej Karpathy (@karpathy) - AI 研究者
- Sam Altman (@sama) - OpenAI CEO
- Yann LeCun (@ylecun) - Meta AI 首席科学家
- Aravind Srinivas (@aravind_srinivas) - Perplexity CEO
- Guillermo Rauch (@rauchg) - Vercel CEO
播客:
- Latent Space - AI 工程播客
- The AI Podcast - NVIDIA 出品
系统会基于已关注来源,自动推荐相似的优质来源,并加入追踪列表。下次运行时自动追踪新来源。
项目架构支持扩展,你可以添加新的信息源模块:
| 信息源 | 实现方式 | 参考 |
|---|---|---|
| RSS Feed | 添加 rss_fetcher.py |
feedparser 库 |
| API 直接调用 | 添加 api_fetcher.py |
各厂商 API 文档 |
| Web Scraping | 添加 web_scraper.py |
BeautifulSoup |
git clone https://github.com/GeziP/DailyAiReport.git
cd DailyAiReportpip install -r requirements.txt
# 如果使用 AI Builders 功能,还需安装 Node.js 依赖
# (见上方「方式二」)cp .env.example .env编辑 .env 文件:
必填配置:
# AI API(必须)
AI_API_KEY=your_api_key
AI_BASE_URL=https://api.openai.com/v1
AI_MODEL=gpt-4o-mini
# 邮箱配置(如果使用 Newsletter 邮件方式)
IMAP_SERVER=imap.gmail.com
IMAP_PORT=993
IMAP_USER=your_email@gmail.com
IMAP_PASSWORD=your_passwordNewsletter 邮件: 编辑 config/newsletters.yaml
AI Builders: 编辑 config/follow-builders-sources.json
python -m src.main输出文件将生成在 output/ 目录。
支持任意 OpenAI 兼容接口:
| 平台 | Base URL | 模型示例 | 价格参考 |
|---|---|---|---|
| OpenAI | https://api.openai.com/v1 |
gpt-4o-mini, gpt-4o |
$0.15/1M tokens |
| 阿里云通义千问 | https://dashscope.aliyuncs.com/compatible-mode/v1 |
qwen-plus, qwen-turbo |
¥0.004/千tokens |
| 智谱 GLM | https://open.bigmodel.cn/api/paas/v4 |
glm-4-flash, glm-4 |
免费/付费 |
| DeepSeek | https://api.deepseek.com/v1 |
deepseek-chat |
¥1/百万tokens |
选择建议:
- 性价比: DeepSeek、阿里云通义千问
- 质量稳定: OpenAI GPT-4o
- 国内友好: 智谱 GLM、阿里云
支持任意 IMAP 邮箱:
| 邮箱 | IMAP 服务器 | 端口 | 备注 |
|---|---|---|---|
| Gmail | imap.gmail.com |
993 | 需开启 IMAP |
| Outlook | outlook.office365.com |
993 | - |
| QQ 邮箱 | imap.qq.com |
993 | 使用授权码 |
| 163 邮箱 | imap.163.com |
993 | 使用授权码 |
注意: 国内邮箱(QQ、163)需使用「授权码」而非密码,在邮箱设置中获取。
git push origin mainSettings → Secrets and variables → Actions → New repository secret
必填:
| Secret | 说明 |
|---|---|
AI_API_KEY |
AI API 密钥 |
IMAP_USER |
邮箱地址(Newsletter 方式) |
IMAP_PASSWORD |
邮箱密码/授权码 |
可选:
| Secret | 说明 | 默认值 |
|---|---|---|
AI_BASE_URL |
API 端点 | OpenAI |
AI_MODEL |
模型 | gpt-4o-mini |
IMAGE_API_KEY |
图片生成密钥 | 使用 AI_API_KEY |
IMAGE_MODEL |
图片模型 | dall-e-3 |
EMAIL_RECIPIENTS |
邮件推送收件人 | 不发送 |
默认北京时间下午 16:00 自动运行(UTC 08:00),可在 .github/workflows/daily-summary.yml 中修改 cron 表达式。
时间说明: 上游 follow-builders 的 feed 在 UTC 06:00(北京 14:00)生成,日报在 2 小时后触发,确保 Builders 数据覆盖率最高。
Actions 运行完成后,下载 Artifact 查看生成的日报文件。日报也会通过邮件推送(需配置 EMAIL_RECIPIENTS)。
每天生成以下文件(保存在 output/ 目录):
| 文件 | 说明 |
|---|---|
YYYY-MM-DD.md |
统一日报(融合 Newsletter + Builders + 推荐) |
YYYY-MM-DD-xiaohongshu.md |
小红书风格文章 |
YYYY-MM-DD-wechat.md |
微信公众号风格文章 |
YYYY-MM-DD-*-cover.png |
封面图(需配置图片 API) |
DailyAiReport/
├── src/ # 核心模块
│ ├── __init__.py # 包初始化
│ ├── config.py # 配置管理
│ ├── email_client.py # IMAP 邮件获取
│ ├── email_sender.py # SMTP 邮件推送
│ ├── newsletter_parser.py # Newsletter 内容解析
│ ├── ai_summarizer.py # AI 总结(深入展开,关键字加粗)
│ ├── article_generator.py # 多平台文章生成(小红书、微信公众号),含 Markdown 格式清洗
│ ├── image_generator.py # 封面图生成(DALL-E 等)
│ ├── builders_digest.py # AI Builders 动态(推文 + 播客)
│ ├── recommender.py # 智能推荐新来源
│ └── main.py # 主程序入口(含 URL 去重、Markdown 清洗)
├── config/ # 配置文件
│ ├── newsletters.yaml # Newsletter 订阅配置
│ ├── follow-builders-sources.json # 自定义 Builders 配置
│ └── watchlist.yaml # 推荐来源追踪列表
├── output/ # 输出目录
├── .github/workflows/ # GitHub Actions 工作流
│ └── daily-summary.yml # 定时任务(北京 16:00)
├── .env.example # 环境变量示例
└── requirements.txt # Python 依赖
编辑 config/newsletters.yaml:
newsletters:
- name: "Newsletter 名称"
sender: "发件人邮箱"
enabled: true编辑 config/follow-builders-sources.json:
{
"x_accounts": [
{
"name": "Builder 名称",
"handle": "twitter_handle"
}
],
"podcasts": [
{
"name": "播客名称",
"url": "播客地址"
}
]
}- 创建
src/your_source.py - 实现
fetch()方法返回内容 - 在
main.py中调用并合并
Q: 邮箱密码填了还是连不上? A: 国内邮箱需要授权码,在邮箱设置中开启 IMAP 并获取授权码。
Q: AI API 费用多少? A: 每次运行约调用 5-10 次 API,使用 gpt-4o-mini 约 $0.01/天。
Q: 图片生成失败? A: 确保配置了支持图片生成的 API(如 OpenAI DALL-E),部分国内 API 不支持。图片生成为可选功能,不影响日报文本生成。
Q: Builders Digest 没有 output? A: 检查 follow-builders skill 是否正确安装,Node.js 依赖是否安装。
Q: 内容太长? A: 本项目设计为深入展开版,不精简缩略。如需精简版,可修改 AI 提示词。
Q: 推荐的 Builder 会被追踪吗?
A: 是的,推荐的来源会自动加入 config/watchlist.yaml,下次运行时自动获取其动态。
Q: 为什么日报在下午 16:00 触发? A: 上游 follow-builders 的推文/播客 feed 在 UTC 06:00(北京 14:00)生成,日报在 2 小时后触发可以获取最新的 Builders 数据,覆盖率约 90%。
MIT License - 欢迎自由使用和二次开发
欢迎提交 Issue 和 PR,分享你的扩展模块或改进建议!