01 AIHOT,刚好补上我缺的那块
事情是这样的。
前阵子,数字生命卡兹克开源了 AIHOT。我看到的时候,刚好正在折腾自己的网站 fftql.team。
网站里已经有了 FPL Draft 的一些辅助功能,后面也想做正赛的辅助分析。
但还有一块一直想补上:把散落在国内外不同地方的 FPL 资讯和攻略收集起来,让玩家打开一个页面,就能看看最近发生了什么。
想法有了,怎么把它做成一个能持续更新的东西,还得慢慢摸索。
这时候,卡神把 AIHOT 开源了,连怎么改成其他行业的说明都写好了。
这不就是刚想睡觉,枕头就送过来了么。

AIHOT 的思路很好理解:从不同信源收集消息,用 AI 做筛选和整理,生成中文标题与摘要,再把同一件事的不同报道归到一起,方便读者追踪热点。开源出来的,也包括网站、后台和处理流程。 [开源项目说明]
对我来说,最有用的是它把一套可参考的工作流程摆在了面前。哪里换信源,哪里改判断标准,哪里查处理结果,都有了起点。
我想做的事情,就从“自己琢磨整条链路”,变成了“把这套框架改成 FPL 玩家需要的样子”。
02 为什么 FPL 玩家需要一个资讯站?
如果你还不知道 FPL 是什么,先简单解释一下。
FPL 的全称是 Fantasy Premier League,可以理解成英超的虚拟经理游戏。玩家挑选真实的英超球员组成球队,再根据他们在比赛里的表现获得积分。进球、助攻、零封等,都会影响你的成绩。
正赛:用预算搭自己的球队
常见的正赛玩法是用预算组建一支 15 人的球队,每轮安排首发和队长。你在电视前看的是英超比赛,手机里惦记的可能是自己的队长能不能再进一个球。 [FPL 官方介绍]
Draft:朋友之间的选人与博弈
Draft 则多了一层朋友之间的博弈:大家轮流选人,同一联赛里,每名球员只能被一位经理拥有。你想要的人可能已经被别人拿走,后面还得研究自由球员和交易。 [Draft 官方说明]
所以,对我们来说,一条伤情、一场发布会,甚至一句关于出场时间的话,都可能影响下一轮的安排。
很多时候,查资料本身也占掉不少时间:打开攻略网站,看媒体报道,再去确认消息有没有新进展。看完一圈,想买的人也许已经涨价了。
我希望 fftql.team 能替玩家省掉其中一部分来回翻找的功夫。
03 把框架交给 Codex,先搭起来
有了开源框架,就赶紧动手。
我的做法很直接:打开 Codex,把仓库交给它,说明这个站要改成 FPL 资讯站,再把我关心的内容和信源告诉它。
接下来,它会去读项目、理解结构、修改代码。我则一边看结果,一边补充自己的要求:哪些东西应该放到首页,哪些需要分类,哪些对玩游戏的人有价值。
先选信源,再明确整理标准
信源也并不神秘。Fantasy Football Scout、Fantasy Football Hub、Fantasy Football Fix,都有围绕 FPL 的分析。再加上天空体育、罗马诺、David Ornstein 等渠道,可以补充英超相关的消息。
但不同来源各有侧重。攻略作者在讨论选人,记者在追踪消息,官方公告在确认事实。把它们放到一个页面里,得让读者知道自己看到的是哪一种内容。
会员文章也有边界:公开部分能读到什么,就据此整理摘要并保留原文入口,不能把没有读到的部分靠猜补齐。
我把这些要求继续交给 Codex,资讯页的基本框架就逐渐搭起来了。

04 网站跑起来后,问题才慢慢露出来
这个阶段很容易兴奋。
原本只是一个想法,现在页面上真的有了消息、有了分类,还能继续往里面加东西。于是很自然地觉得,再补几个功能,它应该就能自己跑起来了。
实际用了一段时间后,问题才慢慢露出来。
问题一:西甲新闻为什么跑进来了?
比如,之前有西甲相关新闻出现在 FPL 资讯里。
从足球新闻的角度看,它当然是一条新闻。但对这个网站而言,我们还得问:它和英超、和玩家这轮的决策有什么关系?
模型知道某个名字、某家俱乐部,并不代表它就能判断这条消息该不该进入这个站。尤其是转会传闻,一旦关系绕得远一点,就很容易把“听起来可能有关”当成“确实值得收录”。
反过来也一样。一些看着不起眼的训练或出场消息,可能恰好对玩家很重要,却在筛选时被略过去了。
这让我开始更具体地描述自己的标准:什么消息要看,什么内容可以略过,判断依据应该来自哪里。只说一句“帮我筛选有价值的 FPL 新闻”,还不够。
问题二:翻译很顺,人名却错了
另一个让我很难受的问题,是人名翻译。
有一次,伤情消息里的“措利斯”被翻译成了“齐奥利斯”。文章语句很顺,但玩家看到这个名字,可能根本不知道说的是谁。
对足球资讯来说,人名直接关系到你在看哪位球员。译名换了,球队关系写错了,或者把两个人混在一起,整条消息的用途都会打折扣。
更麻烦的是,这类错误并不会因为文章读起来流畅,就自己显现出来。你得知道原本说的是谁,才有机会发现它出了问题。
于是,我又开始和 Codex 对话,把具体错误指出来,要求检查、修正,再考虑怎么减少后续出现同类问题。
问题三:得知道一条消息是怎么处理的
为了做这些事,我也给网站配了管理后台。
后台能看到信源、处理状态,以及 AI 的评分和筛选结果,方便检查一条消息到底经历了什么。

不过,有一点得说清楚:虽然后台有评分相关的功能,我并没有每天坐在那里,给 AI 的筛选和编辑逐条打分。
我更多是在看两个问题:
- 哪些内容被错误地筛掉了?
- 哪些内容进入页面后,表述或翻译还有问题?
发现不对的地方,就回到 Codex,告诉它是哪一条、哪里不对、应该怎样理解,再让它沿着处理流程去检查。
这个过程也让我逐渐意识到,自己对 FPL 的了解,在建站时比想象中更有用。
知道球员是谁,知道玩家什么时候会需要一条消息,也知道同样一句“提前离场”,不能随便写成“已经受伤”。这些判断,需要我不断提供给系统。
AI 可以帮忙做很多整理和开发工作,但一个站最后呈现出什么内容,仍然和运营它的人怎么看待这些消息有关。
05 用一篇专题,把零散消息串起来
基础资讯跑起来之后,我又试着做了一个专题。
过去几周是国际比赛日。英超停了,国脚的比赛还在继续,伤情、表现和媒体分析也没有停。等联赛回来,玩家得把这些变化重新捋一遍。
于是,我让 AI 帮忙整理这段时间与 FPL 有关的内容:
- 主要球员在国家队的表现
- 伤情观察
- 不同媒体的队长意见
- 价格涨跌
- 截止时间提醒
再给每个主题配上图片,一篇完整的国际比赛日专题就成形了。
其中仍然需要核对数据、确认日期,以及分清已经发生的事实和媒体的预测。但零散的材料终于能围绕同一个问题组织起来:联赛回来了,这轮阵容该留意什么?
对我来说,这比单纯多收录几条消息更有价值。玩家可以从一篇文章里,把停赛期间积累的变化过一遍,再回到自己的球队做决定。
过去想完成这样一篇专题,得花不少时间找材料、抄数据、搭结构。现在有了持续收集的资讯,再配合 AI,至少不用每次都从空白页面开始。
06 下一步,把资讯变成内容
顺着这个方向,也就有了下一步的想法。
网站里的资料,除了给玩家直接阅读,也可以成为公众号和小红书内容的素材。同一组消息,在网站上适合查询,在公众号里可以讲得更完整,到了小红书,则可以做成几张重点清楚的图。
但换个平台,内容也得重新编辑。公众号不需要把所有功能罗列一遍,小红书也不必把专题里的每一行数据都搬过去。读者为什么愿意点进来,要重新想。
我已经开始尝试这些事情。接下来,想继续做一个内容生产 Agent,把选题、整理、配图和发布准备连接起来,再逐步摸索分发机制。
目前还在搭建和验证,自动分发也是后续要继续完善的部分。等它真正跑顺,再把过程分享出来。
回头看,这次折腾最让我高兴的,是一个以前只能放在计划里的功能,现在已经有人可以打开、可以使用,也可以提出意见了。
卡神把 AIHOT 的框架交出来,我把自己熟悉的 FPL 内容放进去,再借助 Codex 一点点修改。这个球迷小站,也就有了自己的资讯部分。
来这个小站看看
fftql.team 还在继续建设。你如果也玩 FPL,可以来看看这次国际比赛日专题,或者逛逛 Draft 的功能。
发现消息不对、名字译错,或者觉得还缺什么,欢迎告诉我。每一条具体的反馈,都会帮我继续改进这个小站。
网站能不能变得更好,就在这些具体的反馈里慢慢找答案。下一轮英超开踢前,希望它能帮你少翻几个页面,多留一点时间看球。
原文与相关链接
AIHOT 开源项目
https://github.com/KKKKhazix/AIHOT
FPL 官方介绍
https://fantasy.premierleague.com/
FPL Draft 官方说明
https://www.premierleague.com/en/news/1245430/time-to-get-your-fantasy-premier-league-draft-started
我的网站
https://fftql.team
国际比赛日专题
https://fftql.team/articles/fpl-international-20261008.html
