Add corpus size/license estimator; snapshot 90-project findings

Why:
- 放量决策需要比"52MB/项目 × 12493 = 650GB"更扎实的数据。用
  scripts/estimate_size.py 采样 90 个 hot 项目的 attachments[].size
  得到真实分布(median 9MB / p90 54MB),全量 median 估算 110GB,
  p90 上界 660GB。这给 Charles 一个可信的存储预算。
- 附带 license 和 ext 分布采出两个重要洞察:
  (1) mp4+qt 视频占 54% 存储,加 --skip-ext 开关可节省一半;
  (2) NC (Non-Commercial) 许可 ~11%,下游必须按 whitelist 过滤。

What:
- scripts/estimate_size.py: 无下载的元数据采样器,复用 crawler.parse_detail_html
- docs/sources/oshwhub_corpus_estimate.md: 结果快照 + 决策建议
- log.md: 本次会话记录

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Zhang Jiahao
2026-04-23 19:45:54 +08:00
parent c8d55a22eb
commit e222b08f27
3 changed files with 213 additions and 1 deletions

24
log.md
View File

@@ -83,11 +83,33 @@ jsonschema 做两层校验:
### 还是需要 Charles 决策
- 放量规模推算52MB/项目 × 12493 ≈ 650GB 全量,需评估 Gitea LFS 容量
- 放量规模 —— 已提供实测数据:**median ≈ 110 GBp90 上界 ≈ 660 GB建议预算 150180 GB**(见 `docs/sources/oshwhub_corpus_estimate.md`
- 是否需要抓 `u.lceda.cn` 的 EasyEDA 源 JSON需登录v0.1 跳过)
---
## 2026-04-23 19:45 全量规模实测 + License 分布
**Claude 会话**(自主推进)
写 `scripts/estimate_size.py`,只抓详情 HTML 解析 `attachments[].size`,不下载;采样 90 个 hot 项目3 页 × 30
**关键发现**
- 单项目 median 9 MB / mean 22 MB / p90 54 MB / max 204 MB12493 全量 median 估算 **110 GB**p90 上界 660 GB
- **视频 (.mp4 + .qt) 占 54% 存储**!如果训练只要 PCB/原理图/BOM加 `--skip-ext mp4,qt` 存储直接砍半
- License 分布健康GPL 3.0 占 49%Public Domain 21%CC 系列 ~20%CERN/TAPR OHL 6%;样本内无闭源
- **NC (Non-Commercial) 占 ~11%**,商用场景必须过滤
结果固化到 `docs/sources/oshwhub_corpus_estimate.md`,可随时重跑验证。
### 给 Charles 的建议
1. 存储预算定 **180 GB**median + 15% buffer
2. Phase 1.4 前给 crawler 加 `--skip-ext` 开关滤视频
3. 下游建立 license whitelist 过滤 NC / 未知
---
## 2026-04-23 18:50 仓库初始化 & 数据源调研
**Claude 会话**:初始化