这是什么
AIHOT 是我做的一个 AI 热点网站。它每天从一批信源里收资料,用大模型先筛一遍、再独立打两次分,挑出真正值得看的,写成中文标题和摘要;把不同来源说的同一件事聚成一个事件,按有多少人在说排出热点;每天早上出一份日报。
这个仓库是它的引擎和框架:网站、后台、精选流程、聚簇和热度算法,所有提示词的原文和入选门槛,都在这里。
为什么开源
这半年,很多做法律、做 HR、做金融、做贵金属的朋友问我,能不能也给他们的行业做一个。
我做不了。我不懂你们的行业,不知道哪些信源有用,也不知道什么样的消息,对你们来说才叫热点。
但你们懂。
既然我没办法满足所有人,那就把火种交到大家自己手上。
说在前面
- 我不是专业的开发者。 我是设计师出身,半年前还看不太懂代码。这套代码是我和 AI 一起重写的,比以前干净了很多,但一定还有写得不好的地方。发现问题欢迎提 Issue,我不一定能很快回复,先说声抱歉。
- 这是 AIHOT 的引擎。 它和 AIHOT 线上跑的是同一份引擎代码,同步时直接从线上导出,不是精心打磨的通用框架。以后 AIHOT 的更新,我会尽量同步过来,但没法保证每一次都同步。模型榜、Codex 重置监控、主题页的大事记这些只对 AI 行业有意义的功能,以及 AIHOT 自己的运营工具,只留在 AIHOT 上。
- 里面没有 AIHOT 的信源名单和运营数据。 仓库带了 18 个公开的海外 AI 资讯源做示范,够你跑起来看效果;真正的信源,要换成你自己行业的。
- 请不要用 AIHOT 的名字和 Logo。 换上你自己的名字,它就是你的站。
它是怎么工作的
一条资料从信源进来,先判重,再预筛;可能重要的独立打两次分,写好中文标题和摘要,和别的报道聚成事件,算进热度。X 帖子没有正文或只有链接时,保留原帖的链接和图片,不调用写作或翻译模型。分数过了门槛、又不是精选里已有新闻的重复,才进精选;日报按规则编出当天要闻,周报、月报再从日报里汇编。每一步的提示词都在 industry/prompts/,改标准不用改代码。详见 精选与校准。
聚簇与热点
同一件事,官网发一篇、媒体转十篇、X 上吵一天,读者只需要看到一次。AIHOT 把它们聚成一个事件:先用标题摘要的向量(没配向量服务时比文字重合度)在最近两周里找候选,再让模型判断是同一件事、后续进展,还是两件事;拿不准的合并,写入前再让模型复核一遍(复核可以单独换一家模型,设 GROUP_REVIEW_MODEL)。
热度按事件算,不按文章算:48 小时内,每个独立来源只算一次,24 小时减半。重复抓取不会多算,一家媒体发十篇也只算一次,所以排在前面的,是真正有很多人在说的事。
速度
你会得到什么
看一眼
想创建自己的独立站点,可以先点 Use this template,再克隆你生成的仓库。想持续合并上游更新或贡献代码,建议先 Fork。下面的命令适合直接试用。
需要 Docker、Node.js 24(运行 init-env 生成配置要用),和一个 OpenAI 兼容的模型 API Key(DeepSeek、千问、智谱都可以)。
init-env 默认按 DeepSeek 配置。用千问、智谱等别家,照 .env.example 里的例子改 .env 的 LLM_BASE_URL、LLM_MODEL 和 LLM_EXTRA_JSON;用推理模型(先想再答)时,还要设 LLM_REASONING_TOKENS 给推理留出输出额度。
git clone https://github.com/KKKKhazix/AIHOT.git myhot
cd myhot
node scripts/init-env.ts --llm-key <你的模型 API Key>
docker compose up -d --build
打开 http://localhost:3000。后台在 /admin,管理员密码在 .env 的 ADMIN_PASSWORD 里。一两分钟后开始有内容,第一次导入的资料大约半小时处理完。
机器上没有 Node、服务器在中国大陆、要配域名和 HTTPS,或者不用 Docker、直接在 Linux、macOS 上跑(Windows 用 WSL2),见 部署。
站点跑起来后,打开 /agent 可以复制 MCP、RSS 或 API 的接入方式;只能读网页的 Agent 从 /api/v1/agent 开始;接口说明在 /openapi-v1.json。
把它改成你的行业
最省事的办法:打开你的 Agent(Claude Code、Codex 都可以),把这个仓库交给它,然后说:
请读 AGENTS.md 和 docs/customize.md,把这个站改成「XX 行业」的热点站。
我关心的是:……(写你想盯的信源、你觉得什么消息重要、什么不重要,越具体越好)。
改完帮我跑 npm run typecheck、npm test 和 node scripts/smoke.ts,并告诉我还需要我自己决定哪些事。
要改的东西几乎都在 site/ 和 industry/ 这两个文件夹里,代码基本不用动:
最值得花时间的是评分标准(industry/prompts/selection-score.md)和门槛:拿一两百条你自己标注过的资料,用 scripts/eval-selection.ts 跑一遍,看它选得准不准,再回去改。怎么做写在 精选与校准 里。
文档
技术栈:Node.js 24 · TypeScript · React Router(服务端渲染)· Fastify · PostgreSQL · pg-boss · Tailwind CSS · Docker Compose。
交流与贡献
部署和使用问题到 问答区,新想法到 想法交流区,欢迎在 作品展示区 分享你做出的行业热点站。
发现 Bug 或有明确的功能建议,可以 提交 Issue。准备改代码前,先看 贡献说明;安全漏洞请走 私密报告入口。
最后
AIHOT 曾经只是我无数个深夜里,一个很小、很小的念头。
我不知道它会被改成什么样子,会走到多远的地方。但这可能就是开源最浪漫的地方。
剩下的路,就交给你们了。