Horizon AI新闻雷达博主新闻信息收集神器 构建你专属的 AI 新闻雷达,生成中英双语日报。github开源8.7k stars

文章目录(快捷跳转)

简介说明

为什么需要 Horizon?
好新闻分散在各处,坏信息却源源不断。Horizon 为你先完成第一轮筛选:从 Hacker News、Reddit、Telegram、RSS、Twitter/X、GitHub 和 OpenBB 抓取内容,合并重复新闻,用 AI 打分过滤,并为重要内容补充背景解释和社区讨论。

但 Horizon 不只是又一个摘要工具。AI 很擅长降低噪声,但新闻仍然需要人的品味:你信任哪些信息源,哪些评论改变了你对事件的理解,哪些小众来源值得被更多人看见。Horizon 通过可定制的信息源、处理配置文件、模型、语言、分发方式、评论摘要和社区信息源官网,把这层“人味”保留下来。

功能特性

📡 关注你的信息源 — 将 Hacker News、RSS、Reddit、Telegram、Twitter/X、GitHub Release / 用户动态,以及 OpenBB 金融新闻观察列表纳入同一条 pipeline
🤖 把噪声变成阅读清单 — 使用稳定的处理配置文件分析内容,并应用你自己的筛选阈值
🔗 合并重复新闻 — 在生成日报前自动合并来自不同平台的相同故事
🔍 补全背景知识 — 为陌生概念、公司、项目和技术术语补充网络搜索得到的背景解释
💬 读到社区声音 — 收集并总结 Hacker News、Reddit 等来源的评论讨论
🌐 生成双语日报 — 基于同一组信息源生成英文和中文日报
📝 发布日报站点 — 将生成的 Markdown 发布为 GitHub Pages 静态日报站点
📧 邮件分发 — 运行自托管 SMTP/IMAP 邮件列表,自动处理订阅与退订
🔔 推送到聊天和自动化工具 — 将模板化结果发送到飞书、钉钉、Slack、Discord 或自定义 Webhook
🧙 从兴趣开始配置 — 通过交互式向导根据你的兴趣生成个性化信息源配置
⚙️ 调校你的新闻雷达 — 定制信息源、处理配置文件、模型、语言和分发方式
工作原理
定义 — 配置信息源、处理配置文件、模型、语言和分发方式。
抓取 — 并发拉取所有已配置信息源的最新内容。
去重 — 合并来自不同平台、指向同一故事或 URL 的内容。
分析与过滤 — 选择处理配置文件,按其提示词分析内容并应用用户配置的阈值。
丰富 — 生成配置文件定义的内容区块,每个区块只能调用已声明的工具。
总结 — 将本地化标题、导语、章节和引用来源渲染为 Markdown 日报。
分发 — 将结果发布到 GitHub Pages、邮件、飞书等 webhook、MCP 或本地文件。
Horizon工作原理

快速开始
1. 安装
方式 A:本地安装

git clone https://github.com/Thysrael/Horizon.git
cd horizon

# 使用 uv 安装(推荐)

uv sync

# 需要测试/开发依赖时

uv sync --extra dev

# 或使用 pip

pip install -e .

当前 dev 在 pyproject.toml 中定义为 optional extra,因此安装 pytest 等开发依赖时应使用 uv sync --extra dev。

如果你要启用可选的 OpenBB 金融新闻源,还需要安装对应 extra:

uv sync --extra openbb

如果 openbb 在你的机器上会拉到缺少 wheel 的依赖,建议改用只安装二进制包:

uv pip install --only-binary=:all: openbb openbb-benzinga

方式 B:Docker

git clone https://github.com/Thysrael/Horizon.git
cd horizon

# 可选:首次运行前构建逗号分隔的 extras

docker compose build --build-arg EXTRAS=trafilatura horizon

多个 extra 可写为 EXTRAS=trafilatura,openbb。twitter extra 还需要 Playwright 浏览器及系统依赖,当前 Dockerfile 不会安装这些组件。

2. 配置
方式 A:交互式向导(推荐)

uv run horizon-wizard
向导会询问你的兴趣(如"LLM 推理"、"嵌入式"、"web 安全"),自动推荐并生成 data/config.json,还可选让 AI 补充推荐小众源。若你想分享信息源,请前往 horizon1123.top。CLI 选项见交互式向导。

方式 B:手动配置

cp .env.example .env          # 添加 API 密钥
cp data/config.example.json data/config.json  # 自定义信息源

最小手动配置示例:

{
"ai": {
"provider": "openai",
"model": "gpt-4",
"api_key_env": "OPENAI_API_KEY"
},
"sources": {
"rss": [
{
"name": "Simon Willison",
"url": "https://simonwillison.net/atom/everything/",
"profile": "tech-news"
}
]
},
"processing": {
"profiles_dir": "profiles",
"default_profile": "tech-news",
"profile_settings": {
"tech-news": {
"threshold": 7.0,
"topic_dedup": true
}
}
}
}

信息源显式指定 profile 时会直接使用该配置文件;省略该字段或设为 "auto" 时,AI 会在可用配置文件中自动匹配。结构和行为详见 处理配置文件。筛选阈值和主题去重等个人偏好应配置在 processing.profile_settings,而不是写入处理配置文件。

均衡日报(可选)

可以限制日报总条数,并避免单一类别占据过多内容。类别来自 sources.rss[].category 等信息源配置。

{
"digest": {
"max_items": 20,
"category_groups": {
"ai": {
"limit": 5,
"categories": ["ai-news", "ai-tools", "machine-learning"]
},
"finance": {
"limit": 5,
"categories": ["finance", "business", "equities"]
}
},
"default_group": "other",
"default_group_limit": 3
}
}

分组限额在配置文件筛选之后、内容补充之前执行。未配置 category_groups 和 max_items 时,不应用均衡日报限额。

data/config.json 里的任意字符串值都可以通过 ${VAR_NAME} 引用环境变量。这适合用于 ai.base_url、私有 RSS 链接、Webhook 地址或自定义请求头模板等字段。

完整配置参考请查看配置指南。

3. 运行
A. 本地安装

uv run horizon [OPTIONS]
B. Docker

docker compose run --rm horizon [OPTIONS]
选项 默认值 说明
--hours N 24 抓取最近 N 小时的内容
-d, --data-dir PATH data 数据目录路径
-c, --config PATH /config.json 配置文件路径
-l, --log-level LEVEL WARNING 日志级别(DEBUG/INFO/WARNING/ERROR/CRITICAL)
--data-dir 会更改状态目录,包括日报、订阅者文件和默认配置位置;--config 只更改配置文件。生成的日报将保存在 data/summaries/ 目录中(如设置了 --data-dir,则保存在 /summaries/)。两处位置都要修改,或需要初始化自定义配置位置时,请查看配置路径。

4. 自动化(可选)
Horizon 非常适合作为 GitHub Actions 定时任务运行。查看 .github/workflows/daily-summary.yml 获取现成的工作流配置,可自动生成日报并部署到 GitHub Pages。

支持的信息源

信息源 抓取内容 评论收集
Hacker News 按分数排序的热门文章 支持(前 N 条评论)
RSS / Atom 任意 RSS 或 Atom 订阅源
Reddit Subreddit 帖子 + 用户动态 支持(前 N 条评论)
Telegram 公开频道消息
Twitter / X 特定用户的推文 支持(前 N 条回复)
GitHub 用户动态 & 仓库 Release
OpenBB 按观察列表 / provider 抓取金融公司新闻

日报可以去哪里
Horizon 支持通过多种方式发布和分发生成的日报:

方式 作用
GitHub Pages 日报站点 将生成的 Markdown 复制到 docs/,通过 GitHub Pages 发布为每日更新的静态日报站点
邮件订阅 通过 SMTP/IMAP 向订阅者发送日报,并自动处理订阅/退订请求
Webhook 通知 在成功或失败时将结果推送到飞书、钉钉、Slack、Discord 或任意 Webhook 端点
MCP Server 将抓取、打分、过滤、富化、摘要和完整 pipeline 暴露为工具,供 AI 助手调用

具体配置见配置指南。MCP 工具说明和客户端接入见 src/mcp/README.md 与 src/mcp/integration.md

文档

文档 内容
配置指南 AI 模型、信息源、处理配置文件、过滤、邮件、Webhook、GitHub Pages 和 MCP 配置
处理配置文件 配置文件路由、提示词、运行时筛选偏好、丰富区块和工具
评分机制 Horizon 如何评估和排序新闻
抓取器 信息源抓取器说明和扩展细节
内容提取器 RSS 信息源的全文提取
MCP 工具 MCP 客户端可调用的工具说明

项目状态
Horizon 已经支持完整的日报流程:多源抓取、基于配置文件的分析与内容丰富、去重、评论摘要、双语生成、GitHub Pages 发布、邮件分发、Webhook 推送、Docker 部署、MCP 集成和配置向导。

计划中的改进:

更多信息源类型,例如 Discord
在 GitHub 上发布 Release
发布到 PyPI,支持通过 pip install 安装

图片预览

按优先级排序的日报背景、总结与评论

下载地址

https://github.com/Thysrael/Horizon

https://pan.baidu.com/s/1XwHAs7W4gCI8XPe1Nhq-RQ?pwd=egmj 提取码: egmj

https://pan.quark.cn/s/1c8a8ebeaf13

未经允许不得转载:网站源码、软件资源与技术教程分享 - 今夕资源网 » Horizon AI新闻雷达博主新闻信息收集神器 构建你专属的 AI 新闻雷达,生成中英双语日报。github开源8.7k stars
扫码在手机上阅读本页
赞(0)

评论抢沙发

评论前必须登录!