Files
FacereDataset/log.md
Zhang Jiahao 53b7648984 Add HF bshada/open-schematics to Phase 1 plan
Why:
- Charles 点名把该 HF 数据集纳入第一批。它是已预处理包(非待爬网站),
  和 oshwhub 的抓取逻辑不一样,先把决策面在 plan 里讲清楚,再动手拉。
- 与 oshwhub (EasyEDA 生态) 互补,补 KiCad 原生路径。

What:
- docs/sources/hf_bshada_open_schematics.md: 调研文档
  - 78 parquet shards, 6.4 GB 总量
  - CC-BY-4.0 商用友好
  - 字段:.kicad_sch 源 / PNG / 组件列表 / JSON / YAML / name / desc
  - 镜像方案(整包存 data/external/..., 不拆 per-project)
  - .gitattributes 建议(data/external/**/*.{parquet,png} → LFS)
- plan.md §1.5: 阶段说明 + 待 Charles 批 6.4 GB 预算
- README.md 数据源表: 加一行
- log.md: 本次记录

下载未触发,等 Charles 拍板。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 19:51:24 +08:00

7.3 KiB
Raw Blame History

FacereDataset 执行日志

时间倒序,最新在顶部。


2026-04-23 19:50 加入 HF bshada/open-schematics 计划

Claude 会话

Charles 点名把 https://huggingface.co/datasets/bshada/open-schematics 纳入第一批。

调研结论:

  • 这是已预处理的 HF 数据集,非待爬网站
  • 78 parquet shards 6.4 GBCC-BY-4.0(商用友好)
  • 10K+ 条记录,每条含 .kicad_sch 源 / PNG / 组件列表 / JSON / YAML / name / description
  • 与 oshwhub (EasyEDA) 互补,补 KiCad 生态

决定:

  • 整包镜像data/external/huggingface/bshada--open-schematics/拆 per-project 目录
  • huggingface-cli download ... --repo-type datasetparquet 走 LFS
  • 维护单独的 datasets.md,不与 per-project 的 projects.md

改动:

  • 新增 docs/sources/hf_bshada_open_schematics.md 完整调研
  • plan.md 加 Phase 1.5
  • README.md 数据源表加一行

未下载,等 Charles 拍板 6.4 GB LFS 预算。


2026-04-23 19:30 Phase 1 MVP10 个高质量 oshwhub 项目入库

Claude 会话:承接仓库初始化

API 调研结论

  • 列表 APIGET https://oshwhub.com/api/project?page=N&pageSize=M&sort=hot,无鉴权,返回 12493 个项目元数据(含 grade / likes / stars / views / forks
  • 详情:GET https://oshwhub.com/<path> 是 SSR HTML嵌入 escaped JSONlicense + attachments[](每个带 name / src / size / md5 / ext / mime / download_count
  • 附件 CDNhttps://image.lceda.cn{src} — 已验证无鉴权直接下载
  • EasyEDA 工程源 JSONu.lceda.cn需登录v0.1 不抓
  • 详细调研见 docs/sources/oshwhub.md

选 10 个高质量项目

判据:grade == 4(平台精品徽章) + likes ≥ 100 + 应用领域多样(避免同类堆叠)+ 排除 _copy 派生仓。

10 个项目覆盖调试器、加热台、盖革计数器、可调电源、焊台、智能手表、USB 测电流、ZVS 感应加热、AI 开发板、红外热成像。

MVP 爬虫

位置:crawlers/oshwhub/crawler.py

  • list_projects() — 列表 API 分页
  • pick_top() — 按 like×3 + star + fork×2 + views/100 + comments×2 + grade×50 排序
  • parse_detail_html() — 从 SSR HTML 提取 title / license / description / attachments
  • crawl_one() — 每项目产出:metadata.json / description.md / cover.* / files/* / _urls.json
  • QPS ≤ 0.5SLEEP_BETWEEN = 2.0UA 显式声明 FacereDataset/0.1

抓取与入库

  • 10/10 成功52 个附件,524 MB
  • Gitea LFSv25.4.3 原生支持)+ 本地 git-lfs 3.5.1(用户态二进制装在 ~/.local/bin/
  • .gitattributes 规则:data/raw/**/files/** 一律走 LFS元数据metadata.json / description.md / _urls.json / cover.*)走普通 git
  • 每项目目录结构:
    data/raw/oshwhub/<uuid>/
    ├── metadata.json      # 按 schemas/project.schema.json
    ├── description.md
    ├── cover.{jpg,png,jpeg}
    ├── _urls.json         # 所有原始 URL 清单
    └── files/*            # 原始附件LFS
    

改动汇总

  • 新增:crawlers/oshwhub/{__init__,__main__,crawler}.pyschemas/project.schema.jsondocs/sources/oshwhub.mdpyproject.toml
  • 修改:.gitattributes(缩窄到 data/raw/**/files/**)、.gitignore(移除 data/raw/* 排除)

下一步建议给 Charles

  1. 验收 10 个项目元数据质量(随机抽 2-3 条对照原站)
  2. 决定 Phase 1.4 放量目标50500全量 12493
  3. Phase 2 准备GitHub KiCad repo 调研

2026-04-23 19:40 fs-web-stream 排查 + schema 自动校验

Claude 会话(自主推进)

fs-web-stream.jlc.com 定性

重新抓 /CYIIOT/ST_LINK-V2_1 并看 13 个 fs-web-stream.jlc.com 链接的上下文:全部是嘉立创服务侧栏/推广图标3D 打印、发热片、Ican、EDA 扩展广场、开源硬件平台 badge 等),与项目本身无关image.lceda.cn/attachments/ 就是项目附件的唯一入口,已确认闭环。docs/sources/oshwhub.md 对应章节已更新。

scripts/validate.py

jsonschema 做两层校验:

  • 默认:所有 data/raw/**/metadata.jsonschemas/project.schema.json 的结构校验
  • --check-files:另外验证每条 file 的本地 path 存在且 sha256 匹配

结果10/10 项目两项全通过。

新增

  • scripts/validate.py
  • pyproject.tomljsonschema>=4.26

还是需要 Charles 决策

  • 放量规模 —— 已提供实测数据: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 GBp90 上界 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 GBmedian + 15% buffer
  2. Phase 1.4 前给 crawler 加 --skip-ext 开关滤视频
  3. 下游建立 license whitelist 过滤 NC / 未知

2026-04-23 18:50 仓库初始化 & 数据源调研

Claude 会话:初始化

完成:

  • git.deepknow.site/Facere/FacereDataset 克隆空仓到 ~/repo/FacereDataset
  • 调研立创开源平台oshwhub.com初步数据
    • robots.txt 仅 Disallow /posts,其他路径允许
    • 存在 sitemap.xml(首页 + explore + activities + market 等入口已列出)
    • 项目详情页路径为 /detail/<uuid>(示例 f0652fd2ae3e40b8a0ecc8dc773e3512
    • 图片 CDNimage.lceda.cn/oshwhub/pullImage/...
    • 文件下载:fs-web-stream.jlc.com/fs-web-stream/file-operation/download/<snowflake-id>
    • 页面是 Next.js SPA首屏 HTML 800KB但数据加载具体 API 入口需要浏览器 trace留给 Phase 1.1
  • 创建项目骨架:
    • README.md — 项目简介与数据源表
    • CLAUDE.md — 项目级 Claude 指令爬虫规约、合规红线、schema 要求)
    • plan.md — 6 阶段建设计划Phase 0 骨架 → Phase 5 数据清洗 → Phase 6 持续运营)
    • log.md — 本文件
    • .gitignore — 排除 data/raw data/processed data/state Python 缓存等
    • 目录骨架 crawlers/ schemas/ scripts/ data/{raw,processed,state} docs/{sources,}
    • 每个空目录放 .gitkeep
  • 首次提交 & 推送到 origin main

下一步建议给 Charles

  1. 拍板存储方案(本地盘 / Gitea LFS / 外部 OSS—— 影响 Phase 1.4 放量时机
  2. 目标规模1 万 / 10 万 / 全量)
  3. 决定是否保留二进制附件或只存 URL
  4. 完成上述 3 项后启动 Phase 1.1(用 chrome-devtools MCP 录 oshwhub 的 network trace 定位真实 API