menu
猫猫小站 | Lin_Meow的个人博客
search
搜索
close
devices
brightness_5
bookmark
home
首页
view_list
分类
keyboard_arrow_down
普通
1
奇奇怪怪的想法
0
瞎捣鼓
2
access_time
归档
keyboard_arrow_down
2026 年 08 月
2
2026 年 07 月
1
view_carousel
页面
keyboard_arrow_down
关于我
视奸猫猫
rss_feed
RSS订阅
技术 | 做一个自己的情报收集系统(基于 Horizon 与 LLM )
33 浏览 | 2026-08-09 | 阅读时间: 约 4 分钟 | 分类:
瞎捣鼓
| 标签:
report
请注意,本文编写于 72 天前,最后修改于 67 天前,其中某些信息可能已经过时。
####灵感来源:最近突然想起来美国总统奥巴马整的大活——棱镜计划 奥巴马当总统的时候每天早晨都会有“总统简报”可以看 我就在想,我这样的猫猫能不能也有美国总统一般的待遇呢? 搜索了下GitHub上的项目发现————还真行! 本次就用到:[Horizon](https://github.com/Thysrael/Horizon) 很好的一个项目,值得给个Star,本次用的是` GitHub Pages `和` openrouter.ai `的免费API,可以说白嫖党狂喜了 > **快速传送门** > 展示页地址:[猫猫的情报室](https://linmingsi.github.io/Horizon/) **这个系统现在每天定时在固定时刻,由 AI 帮我全面检索我感兴趣的全球信息源,剔除营销废话,生成一份精炼、客观、有深度的中文简报。重点是还能我自己管理信息源**。 ## 一、 系统技术选型与架构设计 在设计这套系统时,我设定了几个硬性指标: 1. **完全自动化**:无需本地电脑常开,全交由云端定时运行。 2. **零运行成本**:利用 GitHub 免费生态(Actions + Pages)与大模型免费 API。 3. **多语种与高度可定制**:不仅能抓中文和英文,还能直接抓希伯来语和阿拉伯语的本土第一手新闻。 最终选定的系统架构如下: * **核心框架**: 开源项目 `Thysrael/Horizon`(基于 Python 的智能信息聚合引擎) * **自动化调度**: GitHub Actions(每日定时触发采编与渲染) * **前端展示**: GitHub Pages(静态网页托管,可随时在手机/电脑浏览器查看) * **AI 总结引擎**: OpenRouter 节点的 `qwen/qwen-2.5-72b-instruct:free`(通义千问 72B 开源免费大模型,中文与多语言能力极强,最重要的还是限速没openai的模型那么厉害啦) --- ## 二、 信息源的挑选:全球化与本地化结合 一个好的简报系统,核心在于**信息源的质量**。我按照关注的领域,配置了三个类型的全球范围高质量信息源: 1. **科技与 AI 大模型厂商**: * 官方博客:OpenAI、Anthropic (Claude)、Google DeepMind、Meta AI(配置 `trafilatura` 正文抽取引擎,剔除网页杂质)。 * 开发者社区:Hacker News、GitHub Releases(监控 vLLM 等重磅开源项目)。 2. **全球财经与国际时政**: * 权威外媒:华尔街日报 (WSJ)、CNBC、BBC、CNN、ABC News。 3. **中东/以阿局势本土第一手视角**: * 希伯来语媒体:以色列 Ynet 主站、Walla 新闻、《国土报》(Haaretz)、《晚报》(Maariv)。 * 阿拉伯语媒体:半岛电视台 (Al Jazeera)、阿里比亚电视台 (Al Arabiya)、天空新闻阿拉伯台、《中东报》。 4. **国内要闻与泛科技博客**: * 新浪新闻国内/国际焦点、财联社 24 小时电报、少数派、酷安精选、虫部落。 --- ## 三、 GitHub Actions 流水线与优化 信息源配置好后,我将其托管在 GitHub 上,并配置了自动化工作流。在这个过程中,有两个关键的调优节点: ### 1. 从“一天一次”到“早报 + 晚报” 最初我设定每天早晨运行一次,但发现时效性不够。于是我将 Cron 表达式修改为每天运行两次(北京时间 **早晨 08:00** 与 **晚上 20:00**): # 00:00 UTC = 北京时间 08:00; 12:00 UTC = 北京时间 20:00 - cron: '0 0,12 * * *' ###2. 解决晚报覆盖早报的问题 Horizon 默认是以当天日期(如 2026-08-09-summary-zh.md)命名的。一天运行两次时,晚上的运行会将早上的同名 Markdown 网页文件覆盖掉。 为了解决这个问题,我做了两项改造: 1. **调整抓取时间窗口:** * 将` data/config.github.json ` 中的 "time_window_hours" 从 24 缩短为 12,让早报只抓昨天夜间 12 小时,晚报只抓家庭白天 12 小时。 2. **Actions 自动识别早晚报:** * 在 .github/workflows/Daily-summary.yml 中添加了 bash 判断脚本,自动给生成的文件追加 -morning 和 -evening 后缀: ```yaml - name: Distinguish Morning and Evening Summaries run: | HOUR=$(TZ="Asia/Shanghai" date +%H) if [ "$HOUR" -lt "12" ]; then TAG="morning" else TAG="evening" fi DATE_STR=$(date +%Y-%m-%d) if [ -f "docs/_posts/${DATE_STR}-summary-zh.md" ]; then mv "docs/_posts/${DATE_STR}-summary-zh.md" "docs/_posts/${DATE_STR}-${TAG}-summary-zh.md" fi ``` #####这样,GitHub Pages 首页上就会同时并存 2026-08-09 早报 与 2026-08-09 晚报,再也不会发生覆盖了! --- ##四、 不要再给我烂新闻啦 :“讨厌新闻训练集” 在运行过程中,我遇到了一个很实际的问题:有些新闻标题看起来很博人眼球,但点进去发现不是我喜欢的类型。 * 如果直接用关键词拦截,很容易“误杀”掉未来写得好的同类话题文章。为了实现精准调教,我利用大模型的` Few-Shot In-Context Learning(少样本上下文学习) `能力,在 profiles/ 的打分规则文件里设计了一个` “讨厌新闻训练集(Disliked Examples)”` 只要我在简报里看到了不满意的新闻,我就会把标题、链接和一句简短的吐槽加到 YAML 文件末尾: ```yaml - name: disliked_examples: - title: "某某大模型迎来史诗级升级,性能碾压 GPT-4" link: "https://example.com/item/123" reason: "挂羊头卖狗肉。标题看起来很重磅,但点进去全是公关通稿,没有给出任何具体基准测试数据。" - title: "专家预测:美联储今年可能随时调整政策" link: "https://example.com/item/456" reason: "标题党。被标题吸引点进去,发现正文全是在重复旧新闻,没有任何新的分析。" ``` 大模型在评估新文章时,会自动读取这个负面样例库,学习“什么样的文章属于标题党/挂羊头卖狗肉”。当它遇到同样内容空洞的新闻时,就会直接打出 0~2 分的低分进行拦截,既提高了简报的质量,又绝对不会误杀真正的干货好文!(我怎么这么聪明) ## 五、 踩坑总结与运维调优 在搭建过程中,我也记录了几处值得注意的避坑经验: * API 请求 Rate Limit (429 限流报错): ` OpenRouter `的免费 API 节点每分钟限制 20 次请求。如果配置高并发,会触发 RateLimitError。解决办法是将 analysis_concurrency 设为 1,并将 throttle_sec 设为 3 秒,平稳单线程请求。 * 公共 RSS 节点的 403 防火墙: ` rsshub.app `公共节点经常被 Cloudflare 拦截 GitHub Actions 的 IP。将国内平台的 RSSHub 路由替换为稳定的第三方镜像节点(如 rssforever.com)就可以解决了 * 语言生成优化: 在` config.github.json `中将 "languages" 设置为 ["zh"]。虽然系统抓取的是希伯来语、阿拉伯语和英文原文,但 AI 最终只输出单一的精炼中文简报,大幅节省了 70% 以上的 Token 消耗和生成时间。 ##结语 现在,这套系统已经可以稳定地全自动运转了。我现在每天的信息获取就是靠这个系统。 如果你也想打造一份属于自己的“总统级”每日简报,不妨也动起来试试看吧喵!
Emoji
cancel
OωO
ヾ(≧∇≦*)ゝ
|´・ω・)ノ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
∠( ᐛ 」∠)_
(/ω\)
(๑•̀ㅁ•́ฅ)
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
→_→
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ\"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ\"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
( ๑´•ω•) \"(ㆆᴗㆆ)
(。•ˇ‸ˇ•。)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😏
😒
🙄
😳
😡
😔
😫
😱
😕
🧐
🤭
🤐
💩
👻
🙌
🖕
👍
🌝
🌚
😶
🙏
😣
💊
🍉
🎈
🎁
owo
Emoji
qwq
tieba
huaji
meow
insert_emoticon
发表评论
account_circle
昵称
email
邮箱
web
网址(选填)
insert_emoticon
cancel
发表评论
全部评论
info
还没有任何评论,你来说两句呐!
Lin_Meow
一只聪明的猫猫,什么都会一点,但什么都不精通awa~
设备状态
检测中...
favorite
涩涩热力图
chevron_left
chevron_right
日
一
二
三
四
五
六
较少
频繁
favorite
打卡记录 ·
2026-08-01
请选择或输入今日的打卡次数
remove
add
0 次 (清空)
1 次
2 次
3 次
5 次
取消
check
确认保存
最新回复
Lin_Meow : 嗷呜~~~喵!
AUG XGU GUG AGA UGA : test
arrow_upward