每日科技资讯推送机器人
一个基于 Bun 运行时的自动化日报推送系统,集成加密货币市场数据、AI 科技资讯、宏观金融新闻、技术社区热点及 LLM 智能分析,支持多渠道消息推送。
| 模块 | 说明 |
|---|---|
| 贵金属行情 | 实时金价、银价 (Au/Ag) |
| 加密货币 | BTC, ETH, BNB, SOL 等主流代币的 24h 价格、涨跌幅 |
| 恐惧贪婪指数 | 市场情绪指标 |
高可用设计:主接口 Binance API,备用 CoinGecko API,失败自动重试 + 降级切换。
| 模块 | 数据源 |
|---|---|
| 加密货币新闻 | CryptoCompare / Coinpaprika |
| AI 行业资讯 | TechCrunch, Wired AI, MIT Tech Review, Google AI Blog, OpenAI Blog, ArXiv CS.AI |
| Agent Code 前沿 | GitHub Blog, Anthropic, OpenAI, Smol AI, Reddit, Lobste.rs, Hacker News, GitHub Trending |
| V2EX 精选 | V2EX 热门话题(Hacker News 风格评分算法) |
| 宏观金融新闻 | CNBC Markets, Reuters Business, Bloomberg Markets |
| X/Twitter 热门 | Claude Code, Cursor AI, GitHub Copilot, Vibe Coding, LLM Agents, AI Code Assistant |
| Reddit 技术社区 🆕 | r/programming, r/webdev, r/javascript, r/Python, r/rust, r/golang, r/MachineLearning, r/LocalLLaMA, r/datascience, r/devops, r/docker, r/kubernetes, r/blockchain, r/cybersecurity 等 20+ 子版块 |
| 掘金技术社区 🆕 | 中文开发者社区热门文章(前端、后端、AI、DevOps 等) |
| SegmentFault 技术问答 🆕 | 中文技术问答社区热门问题与技术文章 |
| 自动翻译 | 所有英文内容自动翻译为中文(并行优化) |
- AI 锐评 🆕:基于 LLM 对当日市场数据和资讯进行智能点评分析(支持多种风格)
- AI 精选推荐:从所有资讯中智能筛选最有价值的内容,并给出推荐理由
- 新闻亮点 🆕:AI 自动识别当日最重要的头条新闻
| 服务 | 默认状态 | 环境变量 |
|---|---|---|
| Telegram Bot | ✅ 启用 | NOTIFY_TELEGRAM |
| 钉钉群机器人 | ✅ 启用 | NOTIFY_DINGTALK |
| 企业微信群机器人 | ❌ 禁用 | NOTIFY_WX_BOT |
| 企业微信应用消息 | ❌ 禁用 | NOTIFY_WX_APP |
- Runtime: Bun
- HTTP Client: Axios (带重试机制)
- RSS Parser: Cheerio
- Translation: google-translate-api-x (并行优化)
- LLM: OpenAI / OpenRouter 兼容 API
- CI/CD: GitHub Actions (每日北京时间 9:00 自动执行)
bun installcp .env.example .env编辑 .env 文件,填入必要的配置 (详见下方「推送服务 Token 获取指南」)。
# 开发模式
bun run dev
# 生产模式
bun run startFork 本仓库后,在 Settings > Secrets and variables > Actions 中配置相应的 Secrets,即可实现每日自动推送。
src/
├── app.js # 程序入口
├── config/
│ ├── env.js # 环境变量管理
│ ├── modules.js # 模块开关配置
│ ├── constants.js # 全局配置常量 🆕
│ └── prompts.js # LLM Prompt 配置 🆕
├── cache/
│ └── RSSEnhancedCache.js # RSS 缓存机制 🆕
├── services/
│ ├── DailyReportGenerator.js # 日报生成器
│ ├── crypto/ # 加密货币服务
│ ├── finance/ # 金融服务
│ ├── tech/ # 科技资讯服务
│ │ ├── aiNews.js # AI 行业资讯
│ │ ├── agentCodeNews.js # Agent Code 前沿资讯
│ │ ├── v2exNews.js # V2EX 精选
│ │ ├── xTwitterNews.js # X/Twitter 热门
│ │ ├── macroNews.js # 宏观金融新闻 🆕
│ │ ├── redditNews.js # Reddit 技术社区 🆕
│ │ ├── juejinNews.js # 掘金技术社区 🆕
│ │ └── segmentfaultNews.js # SegmentFault 技术问答 🆕
│ ├── llm/
│ │ ├── LLMService.js # LLM 服务
│ │ └── NewsHighlightsService.js # 新闻亮点服务 🆕
│ └── notification/ # 通知服务
└── utils/
├── http.js # HTTP 客户端 (重试优化) 🆕
├── translation.js # 并行翻译工具 🆕
├── performance.js # 性能监控工具 🆕
├── logger.js # 结构化日志 🆕
├── common.js # 通用工具
└── formatters/ # 格式化工具
├── DingTalkMarkdownUtils.js
├── AiNewsFormatter.js
├── AgentCodeFormatter.js
├── V2exFormatter.js
├── XTwitterFormatter.js
├── MacroFormatter.js # 宏观新闻格式化器 🆕
├── NewsHighlightsFormatter.js # 新闻亮点格式化器 🆕
├── RedditFormatter.js # Reddit 格式化器 🆕
├── JuejinFormatter.js # 掘金格式化器 🆕
└── SegmentFaultFormatter.js # SegmentFault 格式化器 🆕
通过环境变量灵活控制启用/禁用各功能模块:
| 变量 | 默认 | 说明 |
|---|---|---|
MODULE_GOLD |
true | 贵金属行情 |
MODULE_CRYPTO |
true | 加密货币行情 |
MODULE_AI_NEWS |
true | AI 科技资讯 |
MODULE_AGENT_CODE |
true | Agent Code 前沿资讯 |
MODULE_V2EX |
true | V2EX 精选 |
MODULE_MACRO_NEWS |
true | 宏观金融新闻 🆕 |
MODULE_X_TWITTER |
false | X/Twitter 热门 |
MODULE_REDDIT |
true | Reddit 技术社区 🆕 |
MODULE_JUEJIN |
true | 掘金技术社区 🆕 |
MODULE_SEGMENTFAULT |
true | SegmentFault 技术问答 🆕 |
MODULE_NEWS_HIGHLIGHTS |
true | AI 新闻亮点 🆕 |
MODULE_AI_RECOMMENDATIONS |
true | AI 精选推荐 |
MODULE_LLM_COMMENTARY |
true | LLM 智能锐评 |
MODULE_WEATHER |
false | 天气预报 |
MODULE_QUOTE |
false | 每日一言 |
MODULE_REDDIT |
true | Reddit 技术社区 🆕 |
MODULE_JUEJIN |
true | 掘金技术社区 🆕 |
MODULE_SEGMENTFAULT |
true | SegmentFault 技术问答 🆕 |
| 变量 | 默认 | 说明 |
|---|---|---|
LLM_API_KEY |
- | LLM API 密钥 |
LLM_BASE_URL |
OpenRouter | LLM API 基础 URL |
LLM_MODEL |
gpt-4o-mini | LLM 模型 |
LLM_COMMENTARY_STYLE |
humor | 评论风格 (humor/professional/concise) |
| 变量 | 默认 | 说明 |
|---|---|---|
TRANSLATION_BATCH_SIZE |
5 | 翻译批次大小 |
TRANSLATION_DELAY |
200 | 翻译延迟 (ms) |
RSS_CACHE_TTL |
900 | RSS 缓存时间 (秒) |
ENABLE_PERF_LOG |
false | 启用性能日志 |
NODE_ENV |
- | 环境模式 |
- 在 Telegram 中搜索 @BotFather 并发送
/newbot - 按提示创建机器人,获得
TELEGRAM_BOT_TOKEN - 获取 Chat ID:
- 将机器人拉入群组(或私聊机器人)
- 访问
https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates - 发送任意消息后刷新页面,在返回 JSON 中找到
chat.id
- 配置环境变量:
TELEGRAM_BOT_TOKEN=your_bot_token TELEGRAM_CHAT_ID=your_chat_id
- 进入钉钉群 → 群设置 → 智能群助手 → 添加机器人 → 自定义机器人
- 设置机器人名称,安全设置选择加签方式
- 复制 Webhook URL 中的
access_token和页面显示的签名密钥 (Secret) - 配置环境变量:
DINGTALK_ACCESS_TOKEN=your_access_token DINGTALK_SECRET=SEC...your_secret
- 进入企业微信群 → 群设置 → 群机器人 → 添加机器人
- 复制 Webhook URL 中的
key参数 - 配置环境变量:
BOT_KEY=your_bot_key NOTIFY_WX_BOT=true
- 登录企业微信管理后台
- 获取企业 ID (CorpID):我的企业 → 企业信息 → 企业 ID
- 创建自建应用:应用管理 → 自建 → 创建应用
- 获取应用的 AgentId 和 Secret
- 配置环境变量:
WX_COMPANY_ID=your_corp_id WX_APP_ID=your_agent_id WX_APP_SECRET=your_app_secret NOTIFY_WX_APP=true
# 每日播报
_3月24日 周一_
---
## 📌 今日头条
> _AI 识别的重要市场动态_
1. **[美联储暗示降息时间表提前](https://...)** - 加息周期可能结束
2. **[OpenAI 发布 GPT-5 预览版](https://...)** - 多模态能力大幅提升
---
## 🏆 今日金价
---
## 💰 加密行情
---
## 🏛️ 宏观要闻
> _美联储 · 加息 · 通胀 · GDP_
- **[美联储纪要:通胀正在放缓](https://cnbc.com/...)**
> 央行官员表示...
> *CNBC Markets · 2小时前*
---
## 🤖 AI 前沿资讯
> _大模型动态 · 研究前沿 · 行业新闻_
---
## 👨💻 Agent Code 前沿
> _AI编程助手 · Vibe Coding · 热门项目_
---
## 🇻🇳 V2EX 精选
> _技术社区热点 · 开发者话题_
---
## ⭐ AI 精选推荐
1. **[Claude 3.5 Sonnet 发布](https://...)**
_Anthropic_ · 💡 编码能力大幅提升,原生支持 Agent 模式
---
## 🎯 AI 锐评
> _基于今日数据的市场洞察与建议_
> 今日市场情绪偏向贪婪,但宏观面传来降息信号...
- 宏观金融新闻模块 - 追踪美联储、加息、通胀等影响市场的宏观因素
- 新闻亮点 AI 识别 - 自动筛选当日最重要的头条新闻
- 多风格 AI 评论 - 支持幽默、专业、简洁三种评论风格
- 并行翻译优化 - 翻译速度提升 60%+
- HTTP 重试机制 - 自动重试 + 指数退避,提高可靠性
- RSS 缓存机制 - 减少 80% 重复请求
- 性能监控工具 - 可视化各模块耗时
- 加密货币市场 - BTC、ETH、SOL 等主流代币实时行情
- AI 行业动态 - 大模型、Agent Code、开发者工具前沿
- 宏观金融 - 美联储政策、加息、通胀、GDP 等
- 技术社区 - V2EX、Hacker News、GitHub Trending
- 社交媒体 - X/Twitter 技术圈热门讨论
- 智能分析 - AI 锐评 + 精选推荐 + 新闻亮点
| 优化项 | 提升幅度 |
|---|---|
| 并行翻译 | ~60% |
| LLM 并行调用 | ~50% |
| RSS 缓存 | ~80% (后续运行) |
| 总体 | ~40% |
- 配置集中化(所有魔法数字提取到配置文件)
- 结构化日志(统一的日志接口)
- 格式化器重构(支持对象参数,向后兼容)
- 数据验证(LLM 在数据不足时跳过生成)
查看 CHANGELOG.md 了解版本更新历史。
MIT