跳转至

AI 项目评分系统更新指南

本文档总结了 tools/ai-oss-rank-worker 最近的核心更新,应立即同步到相关文档中。

📋 文档同步清单

1. overview.md - 更新必要

需要更新的内容:

  • ✅ 评分权重已调整为:流行度 35% + 活跃度 45% + 社区 20%
  • ✅ 增加了"超级项目"(super) 规模分类,Stars ≥ 500k
  • ✅ 新增了两个诊断分数:Quality Score 和 Sustainability Score
  • ✅ 项目规模从原来的 4 级升级为 5 级(small, medium, large, huge, super)

当前状态: 仅提及 3 个原始指标,未提及优化的权重调整机制


2. implementation.md - 部分过时

需要更新的内容:

2.1 评分算法部分

  • ❌ 当前文档描述的权重是旧的(40%人气 + 40%活跃 + 20%社区)
  • ✅ 实际代码权重已更新为:35% 流行度 + 45% 活跃度 + 20% 社区
  • ✅ 增加了基于项目规模的动态权重调整机制:
  • 超级项目(500k+ stars):流行度 55% + 活跃度 25% + 社区 20%
  • 超大项目(50k-500k stars):流行度 50% + 活跃度 30% + 社区 20%
  • 大项目(5k-50k stars):流行度 45% + 活跃度 35% + 社区 20%
  • 中等项目:流行度 40% + 活跃度 40% + 社区 20%
  • 小项目:活跃度 50% + 社区 30% + 流行度 20%

2.2 数据库表结构

  • ✅ 新增两个分数字段:
  • score_quality:质量分数 = 社区分 60% + 活跃分 40%
  • score_sustainability:可持续性分数 = 社区分 40% + 活跃分 30% + 流行分 30%
  • ⚠️ 需要补充数据库迁移说明

2.3 标签系统

  • ✅ 新增 tagHot:判断条件为 (Stars ≥ 1000 && 活跃度 ≥ 70) 或 (活跃度 ≥ 80 && 社区分 ≥ 70)
  • ✅ 优化了其他标签的判断条件

3. SCORING_LEVELS_GUIDE.md - 需要重写

当前状态: 基于旧的评分结果(最高 56.9 分)

需要更新的内容:

  • ❌ 表格中的测试结果已过时
  • ✅ Top 10 项目现在可达 50+ 分,Kubernetes 已达 58.9 分
  • ✅ 更新分数分布统计:覆盖率从 42.2% 提升到 44.1%
  • ✅ 新增"超级热门"等级(80-100 分)
  • ✅ 新增"热门"等级(60-79 分)

🎯 具体更新建议

文件 1: docs/tools/ai-oss-rank/overview.md

第 24 行附近,权重说明部分:

从:

综合得分 = 0.4×人气得分 + 0.4×活跃度得分 + 0.2×社区参与得分(满分 100)

改为:

## 评分权重与动态调整

### 基础权重
综合得分 = 0.35×流行度得分 + 0.45×活跃度得分 + 0.2×社区参与得分(满分 100)

### 动态权重调整(按项目规模)

| 项目规模 | Stars 范围 | 流行度 | 活跃度 | 社区 | 说明 |
|---------|----------|--------|---------|------|------|
| **超级项目** | ≥ 500k | 55% | 25% | 20% | 顶级开源项目,注重长期稳定性 |
| **超大项目** | 50k-500k | 50% | 30% | 20% | 业界标杆,流行度权重较高 |
| **大项目** | 5k-50k | 45% | 35% | 20% | 成熟稳定,活跃度权重适中 |
| **中等项目** | 500-5k | 40% | 40% | 20% | 均衡发展,活跃度与流行度并重 |
| **小项目** | <500 | 20% | 50% | 30% | 活跃潜力,鼓励高活跃度 |

### 项目规模判断标准

基于三维度(Stars、贡献者、Fork)取最高级别:

- **超级项目(super)**:Stars ≥ 500k 或贡献者 ≥ 2000 或Fork ≥ 50k
- **超大项目(huge)**:Stars ≥ 50k 或贡献者 ≥ 500 或Fork ≥ 10k
- **大项目(large)**:Stars ≥ 5k 或贡献者 ≥ 100 或Fork ≥ 1k
- **中等项目(medium)**:Stars ≥ 500 或贡献者 ≥ 20 或Fork ≥ 100
- **小项目(small)**:Stars < 500 且贡献者 < 20 且Fork < 100

文件 2: docs/tools/ai-oss-rank/implementation.md

第 109-115 行,表格更新:

需要补充新字段说明:

| 字段                   | 类型        | 说明                                                |
| ---------------------- | ----------- | --------------------------------------------------- |
| ...                    | ...         | ...                                                 |
| `score_quality`        | 整数(0-100) | 质量分数 = 社区分 60% + 活跃分 40%                  |
| `score_sustainability` | 整数(0-100) | 可持续性分数 = 社区分 40% + 活跃分 30% + 流行分 30% |
| `tag_hot`              | 布尔        | 热门项目标志,判断条件详见下文                      |
| ...                    | ...         | ...                                                 |

新增小节,说明标签判断逻辑:

### 项目标签判断逻辑

| 标签           | 判断条件                                                          | 说明         |
| -------------- | ----------------------------------------------------------------- | ------------ |
| `tag_new`      | daysSinceCreated ≤ 90 且 活跃度分 ≥ 60 且 流行度分 ≥ 30           | 新兴项目     |
| `tag_hot`      | (Stars ≥ 1000 且 活跃度分 ≥ 70) 或 (活跃度分 ≥ 80 且 社区分 ≥ 70) | 热门活跃项目 |
| `tag_inactive` | daysSinceCreated > 30 且 活跃度分 < 30                            | 不活跃项目   |
| `tag_archived` | GitHub archived 字段为 true                                       | 已归档项目   |

文件 3: docs/tools/ai-oss-rank/SCORING_LEVELS_GUIDE.md

完全重写或替换,基于新的评分报告。

主要变化:

  • Kubernetes 分数从 56.9 提升到 58.9 分
  • 最高分数突破 60 分大关(接近"Hot"等级)
  • 增加"Hot"和"Super Hot"两个等级
  • 更新所有表格中的测试数据

📊 核心算法更新

流行度评分(Popularity Score)

项目规模 评分公式 最高上限
小项目 stars * 2.5 50 分
中等项目 log₁₀(stars+1) * 24 70 分
大项目 log₁₀(stars+1) * 18 + 10 84 分
超大项目 log₁₀(stars+1) * 14 + 25 95 分
超级项目 log₁₀(stars+1) * 12 + 46 98 分

Fork 评分:根据规模调整,超级项目最高可达 98 分 贡献者评分:根据规模调整,超级项目最高可达 100 分

综合流行度 = Stars 60% + 贡献者 25% + Fork 15%

活跃度评分(Activity Score)

时间范围 新鲜度分
≤ 7 天 100 分
7-30 天 85-100 分
30-90 天 65-85 分
90-180 天 45-65 分
180-365 天 15-45 分
> 365 天 0 分

提交频率评分:最多 3 个月的提交数

  • 0-10 次:线性增长(最高 80 分)
  • 11-50 次:对数增长(最高 85 分)
  • 51-200 次:对数增长(最高 95 分)
  • 201-500 次:对数增长(最高 100 分)
  • 501+ 次:最高 100 分

提交者多样性评分:反映维护者数量

  • 1-3 人:快速增长(最高 66 分)
  • 4-20 人:对数增长(最高 85 分)
  • 21-500 人:对数增长(最高 95 分)
  • 501+ 人:最高 100 分

综合活跃度 = 提交频率 65% + 多样性 20% + 新鲜度 15%

社区评分(Community Score)

指标 评分公式 最高上限
贡献者质量 根据规模分段对数函数 100 分
Fork 质量 根据 Fork/Stars 比例 95 分
问题活跃度 根据 open issues 数 100 分

综合社区 = 贡献者 50% + Fork 质量 30% + 问题活跃 20%

额外的优化调整

  • 规模奖励

  • 超级项目:额外 +17.5%

  • 超大项目:额外 +10%
  • 大项目:额外 +6%
  • 小项目:额外鼓励分(基于活跃度和社区分)

  • 诊断分数

  • 质量分数 = 社区分 60% + 活跃分 40%
  • 可持续性分数 = 社区分 40% + 活跃分 30% + 流行分 30%

🚀 测试数据对比

Top 5 项目评分对比

项目 旧分数 新分数 提升
Kubernetes (CNCF) 56.9 58.9 +2.0
React 49.2 ~50.5 +1.3
Vue.js 48.0 ~50.1 +2.1
Axios 43.4 ~43.8 +0.4
Transformers N/A ~49.5 -

评分等级现状

等级 分数段 项目数 代表项目
Super Hot 80-100 0 个 -
Hot 60-79 0 个 接近突破!
Popular 40-59 14+ 个 Kubernetes、PyTorch 等
Moderate 20-39 4 个 -
Low 0-19 1 个 -

✅ 行动项

  • 更新 overview.md - 权重与规模分类部分
  • 更新 implementation.md - 数据库字段和标签逻辑
  • 重写 SCORING_LEVELS_GUIDE.md - 完全基于新的测试数据
  • 更新 SCORING_OPTIMIZATION.md - 补充新增的动态权重调整机制
  • 补充 config.ts 源代码引用 - 便于维护者查阅
  • 创建 SCORING_ALGORITHM_DETAILS.md - 详细的算法文档

📝 相关文件

  • 源代码tools/ai-oss-rank-worker/src/config.ts
  • 测试报告tools/ai-oss-rank-worker/FINAL_SCORING_REPORT.md
  • 优化说明tools/ai-oss-rank-worker/SCORING_OPTIMIZATION.md