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