Horizon 中文教程:先做一份小而可查的新闻简报
Horizon 把 RSS、Hacker News、Reddit、Telegram、X、GitHub 等来源放进同一条管线,按 profile 评分、过滤、去重和补充背景,再生成中英文 Markdown。第一次运行只接两三个公开 RSS 源,更容易发现阈值、重复项和摘要偏差。
pyproject.toml 当前写的是 0.1.0,要求 Python 3.11+。GitHub Releases 为空,README 仍把 GitHub Release 和 PyPI 发布列为计划项。部署时请固定审核过的 commit。1. 安装基础环境
git clone https://github.com/Thysrael/Horizon.git cd Horizon uv sync
基础安装已包含 trafilatura。只有需要 OpenBB 金融源时才执行 uv sync --extra openbb。Twitter/X extra 另需 Playwright 浏览器和系统包,官方说明当前 Dockerfile 没有安装这些组件。
2. 用向导生成最小配置
uv run horizon-wizard
先选一个主题和少量公开 RSS。向导生成 data/config.json 后,检查每个 source 对应的 profile、分数阈值和去重设置。真实模型 key 放进 .env,api_key_env 只保存变量名。私有 feed URL 和 webhook 也应通过环境变量引用。
3. 本地跑一个 24 小时窗口
uv run horizon --hours 24
结果默认写入 data/summaries/。逐条打开原文,标出漏掉的重要文章、误留的噪声、合并错误和没有证据的摘要。先调 profile 阈值和提示,再增加来源。每次只改一项,才能判断变化来自哪里。
.env、data/、日志和 CI secrets 的访问权限。4. 验证后再开启自动投递
仓库提供每日 GitHub Actions 模板,但文件默认禁用。准备启用时,先固定 commit,配置最小权限的 secrets,限制 Pages 与邮件/webhook 的目标,并手动运行一次。MCP server 适合让兼容客户端调用各阶段;它会把运行产物写进 data/mcp-runs/,同样需要纳入访问控制和清理策略。
与 RSSHub 对比
RSSHub 官方项目的重点是为大量网站提供路由,并输出可订阅的 RSS。Horizon 接收 RSS 和其他来源,继续完成模型评分、去重、背景补全、双语生成与投递。某个网站没有 feed 时,可以先查 RSSHub 是否有路由;已经有稳定来源,想按个人标准整理成简报时,再把 feed 交给 Horizon。
pyproject.toml、配置文档、scrapers 文档、MCP 文档与 GitHub Releases;没有克隆或安装仓库、填写 API key、抓取来源、调用模型、生成简报或发送 webhook。这里仅补原教程没有展开的事实和边界。安装命令与操作步骤仍以前文为准。
先判断这个项目是否适合你
适合谁用
适合制作按个人兴趣筛选的每日技术简报、团队信息源汇总和可供 Agent 读取的阶段化新闻流程。它按时间窗批处理,不是实时新闻终端。涉及私有 RSS、邮件订阅或 webhook 时,应限制配置、状态目录和日志的访问权限。
原教程未展开的系统信息
核心功能
Profile 驱动筛选
每条内容进入一个 profile,按该 profile 的评分标准、阈值和去重设置处理;还可限制简报总条数与各类别配额。
多渠道简报
管线能生成中英文 Markdown,并发布到 GitHub Pages、邮件、微信和 webhook;MCP 接口可让兼容客户端分阶段调用管线。
架构与数据流
来源先经过抓取,再按 profile 分析、过滤和去重,入选项目随后补充正文、背景或讨论,最后按 profile 分组生成简报。CLI 可跑完整流程;MCP server 将阶段和产物暴露给客户端。运行状态、摘要和订阅数据由 data-dir 控制,默认摘要写入 data/summaries。
技术栈和运行条件
语言
Python 3.11+
框架
Pydantic、httpx、feedparser、MCP
关键依赖
- OpenAI / Anthropic / Google GenAI 客户端
- trafilatura
- ddgs
- tenacity
- 可选 OpenBB 和 Playwright
运行环境
uv 或 editable pip 安装;Docker Compose;可选 GitHub Actions、Pages、SMTP/IMAP、webhook
常见问题
Horizon 0.1.0 是正式发行版吗?
不是。0.1.0 来自 pyproject.toml,官方 README 仍把发布 GitHub Release 和 PyPI 包列为计划项;当前应从仓库安装并固定 commit。
Horizon 的 API key 应该写进 config.json 吗?
不应写入真实值。官方配置让 api_key_env 保存环境变量名,真实 key 放在 .env;私有 feed 和 webhook 也可用变量引用。
Horizon 的 Twitter/X 来源能直接在现有 Dockerfile 里运行吗?
不能保证。官方 README 说明 twitter extra 还需要 Playwright 浏览器和系统包,而当前 Dockerfile 没有安装它们。
Horizon 自带的每日 GitHub Actions 会自动启用吗?
不会。模板文件默认禁用,需要先配置 secrets 和权限,再按 README 改名启用;启用前应先在本地小范围验证。