# AI NEWS 站内排行与推荐算法 V1

版本：`ainews-ranking-v1`；制定日期：2026-10-28。

适用范围：同一 AI NEWS 项目的模型、资讯、工具模块。模型域名不代表独立项目。官网和第三方内容提供事实，站内规则负责比较、推荐；介绍长度、翻译完整度、采集先后不代表能力。

## 1. 原则与参考方法

- 实力、推荐、热门、最新、广告各自独立。赞助不改变自然分数。
- 缺失值为 `null`，不是 0；真实测量的 0 是有效值。缺失维度不由 AI 猜测或补分。
- 事实、原始指标、测量配置、标准化方法、来源 URL、观察时间、算法版本和配置修订全部可追溯。
- 同一评测的转载不重复加权；综合指数与其子项不重复相加。
- 不同模态、模型版本、推理预算、量化配置不能直接混成一个实力榜。
- 排名不代表全市场完整覆盖。原始第三方榜继续显示来源分数，本站推荐明确标识。

参考：

1. [Artificial Analysis 方法](https://artificialanalysis.ai/methodology)：分开测量能力、费用、输出速度、首 Token 延迟、任务费用。
2. [Arena-Rank](https://arena.ai/blog/arena-rank)：Bradley–Terry 成对比较与置信区间。本站尚无盲测投票，不生成本站 Arena 分。
3. [IMDb 加权评分](https://help.imdb.com/article/imdb/track-movies-tv/weighted-average-ratings/GWT2DSBYVT2F25SK)：借鉴样本可靠性思想，不声称复制其未公开算法。
4. [Steam 用户评价](https://help.steampowered.com/faqs/view/2DA6-9CB3-F84A-643E)：近期与长期评价分开，处理异常评价。
5. [Google News 排序因素](https://support.google.com/news/publisher-center/answer/9606702?hl=en)：相关性、重要性、权威性、时效等。
6. [MMR 教学资料](https://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15381-s01/public/www/lec/ir/jgc-ir-handout.pdf)：相关性与推荐多样性的折中。

以下权重是本站 V1 初始策略，不是行业统一标准。运营应依据有对照的效果数据校准，不能为特定厂商临时改权重。

## 2. 通用评分与缺失处理

所有分项统一到 0—100。设有效维度集合 A，维度权重 w，总权重 W：

```text
coverage = Σ(w_i, i∈A) / W
score = Σ(w_i × s_i, i∈A) / Σ(w_i, i∈A)
```

只有覆盖率达到配置门槛才生成分数；否则 `score=null,status=insufficient`。覆盖不足 100% 但满足门槛的结果标记 `provisional`（暂定）。页面显示覆盖率、缺失项与贡献值。零权重维度不影响覆盖率。

百分位初始采用固定版本的真实参评数组：`100 × (小于当前值的数量 + 相等数量/2) / 样本数`。费用、延迟采用反向百分位；参考样本不足 3 个不计算。参考集一旦建立不随新模型自动扩张，避免分数因增加弱模型而虚涨。新的评测体系必须升级算法版本；费用负载变化采用单独参考集。后台保存原始值便于复核。

## 3. 模型算法

### 3.1 正式综合能力

```text
能力 = 30%推理知识 + 25%编程执行 + 20%指令遵循
     + 15%中文多语言 + 10%长上下文任务
```

必须有明确方法和配置的独立任务评测。覆盖率至少 80%，同时有推理和编程核心维度。AA 综合指数不能直接当作其中某一个任务维度，也不能与其内部子项重复加分。厂商宣传、规格上下文长度不构成任务能力成绩。当前来源未覆盖全部维度时，正式综合能力榜保持“数据不足”。

### 3.2 文本对话场景推荐（当前启用）

```text
推荐 = 65%来源能力百分位 + 20%场景费用得分 + 15%响应性能
响应性能 = (输出速度百分位 + 首 Token 延迟反向百分位) / 2
```

AA 公开智能指数是来源能力代理，保留原始值、配置与来源；它不是本站完整综合能力分。只对已有同配置能力数据的文本输入/输出模型计算。响应性能必须对应相同推理配置；缺少速度或延迟不猜测。AA 测试服务性能不代表所有转售渠道性能，页面必须按来源理解。

成本来自明确币种、单位与有效期的渠道报价。默认只比较 USD/百万 Token 的常规正数输入输出价格。默认报价有效期 7 天、评测有效期 90 天，可配置。免费或促销价不进入常规费用推荐；来源未区分促销时只能显示渠道观察值，不宣称厂商统一价格。

```text
固定负载费用 = (输入 Token × 输入美元/百万价
             + 输出 Token × 输出美元/百万价) / 1,000,000
```

当前默认输入 2,000、输出 500，可在后台修改。缓存、推理 Token、额外收费及阶梯价不明确时，不冒充真实结算任务成本。综合推荐默认要求三个维度 100% 齐全。

### 3.3 场景扩展规划

| 场景 | 能力 | 成本 | 响应 |
|---|---:|---:|---:|
| 对话 | 65 | 20 | 15 |
| 编程 | 80 | 10 | 10 |
| 批量翻译/资讯处理 | 60 | 30 | 10 |

当前先启用对话模板；编程、翻译模板需相应任务能力证据后启用，不把对话推荐改名当作代码/翻译推荐。

性价比榜应先设能力门槛，再按同任务费用排序，并显示帕累托优势模型；不采用简单“能力÷价格”，避免零价除法和低价放大。图像、视频、语音、3D 按模态和负载独立建立榜单；当前不以文本规则替代。

## 4. 资讯事件热点与首页推荐

有完整行为数据后的目标公式：

```text
热点 = (35%事件影响 + 25%独立关注 + 20%关注增长 + 20%有效阅读反馈)
       × 2^(-事件年龄小时/半衰期)
```

当前启用无站内反馈的冷启动版本：

```text
热点V1 = (45%事件影响 + 35%独立关注 + 20%新增来源趋势)
         × 时间衰减
```

事件影响目前只接受后台经核验、附 HTTPS 证据与评分方法的记录，不复用 AI 编辑分为客观影响分。缺失时保持 null。默认最低覆盖率 50%，因此只有独立关注（35%）的单来源事件不会得到热点分；有充分增长观察可形成暂定分，明确显示缺失的影响维度。

- 优先使用既有 `newsroom_items.event_id` 归组；未归组时只按去追踪参数的原文 URL 合并，不用低置信度语义自动跨事件合并。
- 独立关注：`min(100,100×ln(1+独立发布者数)/ln(9))`。同发布者多篇报道只贡献一次。复用原系统 publisher_key；来源归组不完整的局限在评分来源中可见，不能称作全网精确独立媒体数。
- 趋势：近 6 小时首次出现、且不在此前窗口出现的发布者数 / 当前窗口全部发布者数 ×100；至少两个独立发布者才启用。它衡量已收录来源扩散，非全网社交讨论增速。
- 取已归组公开报道中的最早原始发布时间衰减；采集、翻译、修改不重置事件年龄。默认半衰期 24 小时，可配置；当前采用统一半衰期，不声称已启用内容类型自动区分的 12/24/72 小时策略。
- 当前计算候选上限为最近 8,000 条公开新闻，窗口默认 7 天；旧新闻仍可在原有时间线查看。原新闻主列表继续按时间排序。
- 首页要闻读取已计算分数，并用 MMR 重排：`λ×score - (1-λ)×100×与已选标题最大相似度`；默认 λ=.8。相似度使用中英文词元 Jaccard。一个事件只保留一个主位置；默认单来源最多 2 条、单分类最多 3 条。
- 可计算热点不足时，不伪造热度；要闻剩余位置用最新事件补齐，保持不重复和来源/主题上限，并明确它是最新内容而非热点分。
- 个人兴趣推荐、阅读反馈和社会讨论信号尚无可靠完整数据，不激活。

## 5. 工具算法

### 5.1 当前冷启动分类推荐

```text
精选 = 60%场景适配 + 25%核验可访问性 + 15%维护证据
```

默认要求 100% 维度齐全。来源页面存在、描述完整、官网链接可点击、AI 生成优缺点、最近采集时间，都不能自动转换成这三项测量分。后台可录入有原始证据、测量时间与标准化依据的核验结果，默认有效期 30 天。没有证据就展示工具档案及数据不足，分类内比较，不宣称跨类别实力总榜。

### 5.2 行为与口碑就绪后的版本

```text
完整推荐 = 35%场景适配 + 25%平滑口碑 + 20%有效使用意向
         + 10%可访问性 + 10%维护状态
平滑口碑 = (n×R + m×C)/(n+m)
```

R 为有效评价均分，n 为有效评价数，C 为类别平均分，m 默认 20。至少 10 条有效评价才进入正式口碑榜（可配置）。没有评价或类别基线时保持 null，不把先验值伪装成用户口碑。当前只提供数学函数及预留参数，不从无评价数据生成口碑。

历史访问趋势单独显示：最近 7 天 `tool_view_events` 计数达到 20 条后计算 `ln(1+事件数)`，不足时不出分。沿用原系统事件去重；它不是独立用户、使用成功或购买转化，因此不混入工具推荐分。完整曝光、反作弊事件和独立用户数据未齐备之前，不发布新 CTR/收藏率或上升率榜。

## 6. 排序与后台管理

- 模型目录默认推荐顺序读取独立评分快照；保留名称、最新、价格筛选和第三方原始榜。
- 工具目录的服务端默认顺序读取推荐快照；保留名称和最近核验排序。已评分项在前；未评分项使用稳定实体 ID 顺序，不能用介绍完整度或编辑 featured 冒充算法分。
- 新闻热点与首页要闻使用事件快照；时间线继续按发布时间。
- 三个首页有透明算法入口；`/{locale}/recommendations?domain=models|news|tools` 查看结果、覆盖率、分项与来源。
- 管理后台 `/admin/algorithms`：权重与参数、评分明细与来源、独立任务与历史配置。复用现有管理员会话、settings.read/settings.configure 权限；写操作要求同源 JSON 和配置乐观锁。
- 人工核验是“证据输入”，保留操作审计，不提供无证据直接改榜单总分的接口。广告、精选与自然分数分离。

## 7. 独立运行、失败恢复与验证

代码：`lib/ranking/`；任务：`scripts/ranking/worker.mjs`。

主库 `/var/lib/foxai/app.sqlite` 以 readOnly/query_only 打开；算法配置、证据、锚点、运行与历史快照写独立 `/var/lib/foxai/rankings.sqlite`。算法数据库属于现有项目的数据，不是独立站点。排序任务不采集、不调用收费模型、不读取或修改新闻工具的任务队列。

独立 systemd oneshot + timer，低 CPU/IO 优先级和内存/时间限制；每 5 分钟计算，资源压力时退出让行。手工重算只排请求，不在网页线程内计算。快照以事务原子发布；异常、超时或配置版本冲突不覆盖上一成功结果。前端读取已完成快照及其时间，暂停时保留历史供查看但停止默认推荐排序。

运行：`node scripts/ranking/worker.mjs`；回归：`node scripts/ranking/test.mjs`。

测试覆盖：缺失与零分区分、综合能力准入、同负载费用、匹配配置、证据门槛、事件来源去重、贝叶斯收缩、未来日期、多样性、主库只读、失败保留快照、配置校验与并发冲突。生产还需验证已有排序入口、后台权限/CSRF、三个首页和原服务状态。

## 8. 后续校准

优先完善来源归组、任务评测和有证据的工具核验。采集可靠曝光与去重行为后，才激活口碑、阅读反馈、CTR 平滑和趋势榜。用留出集/对照组观察有效阅读、发现效果、分类覆盖、投诉与刷量误判率，不单纯追求点击。算法升级保留版本与快照，避免把评测体系变化当成模型进步。

详细评分保留最近 3 份成功快照，运行摘要与配置/证据审计继续保留；这是为了避免每 5 分钟复制全部档案导致无限膨胀。前台只读取当前成功快照。

资讯首页 48 小时热点与近 7 天热点分别按各自窗口重新计算独立来源和增长，不把周榜分数直接套到短时段；事件衰减仍使用已归组报道的最早原始时间。

生产接入沿用既有部署的运行时兼容层：`scripts/ranking/patch-runtime.mjs` 对校验过的导出作最小补丁并保存原件，不执行会覆盖既有修复的全量构建。框架路由源码和共享模型/资讯/工具源码同步保留。回退可恢复 `/opt/foxai/ops-incoming/ranking-v1-20261028` 下原件并停用 `foxai-ranking.timer`，保留独立评分库供审计。

## 9. 自动证据采集补全（2026-10-28）

新增独立任务 `scripts/ranking/collect.mjs`，systemd `foxai-ranking-collect.service/timer` 每两分钟检查自身队列；只读主库，写入既有算法库。与资讯/工具/模型的采集、翻译队列完全分开，不调用付费 AI。每轮最多 12 次业务读取、每天 240 次，另有必要的 robots 请求；同主机间隔至少四秒，GitHub 每小时最多 35 次；响应限流/验证时退避。单轮 85 秒预算，CPU 10%、内存 256MB、Nice 19、IO idle；资源压力时让行。

自动同步来源：

- OpenRouter 完整公开模型 API：单位从美元/Token 换算为美元/百万 Token；只对唯一可确认的模型关联报价。
- DeepSeek 官网价格表：核对明确模型版本、单位、缓存命中/未命中、峰/谷时段；推荐比较使用高峰未缓存常规报价，优惠另存，不假设请求享有谷时优惠。
- Artificial Analysis 公开页：保留评测配置、估算标记与参考价格；来源结构改变则保留旧快照。715 项目录不代表已取得 715 项完整评测。
- Hugging Face 官方基准 API：HLE、GPQA、SWE-bench Verified、MMLU-Pro、AIME 2026、IFStruct。原始成绩分榜保存，`verified=false` 明确显示“未独立验证”，不混入正式综合能力。基准名称含 Verified 不代表其中每条提交已被独立验证。
- LiveBench 官方仓库：自动发现最新 table CSV，代码补全/代码生成分开显示，不跨测试版本或配置平均。保存原始模型 ID，无法唯一关联本站档案则链接原始来源，不错误匹配同系列其他版本。

模型费用来源优先级为厂商官网、已确认渠道、同配置 AA 参考价。每个分数显示采用的来源。未取得对应速度/延迟或价格时，默认推荐依然不出分；新增来源原始基准榜不意味着本站综合能力覆盖率已经齐全。

工具自动核验沿用 60/25/15 权重，但必须明确证据含义：

1. 分类适配是官方声明与既有分类的规则匹配，匹配一个特征词 50，至少两个 100；保存词项和来源摘录，不是功能效果实测。无法识别分类时为 null。
2. 可访问分 100 仅表示一次真实公开产品页/官方源码页读取成功且身份匹配；验证页、软错误页和身份不明页面不计分，不声称是长期可用率。
3. 维护证据取已确认官方仓库的 pushed_at：30/90/180 天内分别为 100/80/60，超期、未知保持 null。它证明代码活动，不等同正式版本发布或质量。停用/归档仓库清除自动推荐证据。
4. 官网指向仓库时要求仓库官网回链同域；直接作为官网的 GitHub 仓库须核对产品名称。没有可靠仓库维护证据的 SaaS 保持缺项，不从版权年份或抓取时间推断维护状态。
5. 自动证据独立存于 ranking_auto_evidence；人工核验证据仍有优先权，不被自动采集覆盖。所有来源记录在 ranking_observations，成功或失败原因可在后台“自动采集与证据”查看。

因此工具进入的是“声明适配与资料核验推荐”，不是工具效果实力榜。后续有独立功能实测和可靠用户评价再形成效果/口碑榜。

排行计算与证据采集通过同一独立文件锁互斥执行；遇到另一任务持锁时正常让行，下一轮重试，防止两种任务批量写入算法库相互竞争。主库仍保持只读，资讯/工具任务不使用这把锁。

新增来源文档：[Hugging Face 基准接口](https://huggingface.co/docs/hub/leaderboard-data-guide)、[OpenRouter 模型与价格](https://openrouter.ai/docs/api/api-reference/models/list-all-models-and-their-properties)、[DeepSeek 官网价格](https://api-docs.deepseek.com/quick_start/pricing/)、[LiveBench 官方发布文件](https://github.com/LiveBench/livebench.github.io/tree/main/public)。
