Skip to content

feat: 模型下载源改为 CNB 优先 GitHub 回退 - #2721

Closed
kawayiYokami wants to merge 1 commit into
OneDragon-Anything:mainfrom
kawayiYokami:fix/model-download-cnb
Closed

feat: 模型下载源改为 CNB 优先 GitHub 回退#2721
kawayiYokami wants to merge 1 commit into
OneDragon-Anything:mainfrom
kawayiYokami:fix/model-download-cnb

Conversation

@kawayiYokami

Copy link
Copy Markdown
Contributor

为什么改(why)

模型下载此前只走 GitHub/Gitee,国内网络下容易失败。CNB(腾讯云)上有 OneDragon-YOLO 与 OneDragon-Env 的完整镜像(已实测可下载),Gitee 上没有模型镜像,属于无效源。

本 PR 把模型下载源改为 CNB 优先 → GitHub 回退,去掉 Gitee。CNB 下载无需代理,国内直连速度快。

改动要点(what)

  • 新增:CommonDownloaderParam.cnb_release_download_url 字段;CommonDownloader.download 增加 download_by_cnb 参数,支持多源按 CNB → GitHub → Gitee → Mirror酱 顺序自动回退(某源失败自动尝试下一个);CNB 不走 ghproxy,GitHub 仍可走
  • 新增:get_cnb_model_download_url(YOLO)、get_ocr_download_url_cnb(OCR),URL 为 https://cnb.cool/.../-/releases/download/...(注意带 /-/ 路径段,不带会 404)
  • 变更:YOLO 三个模型(flash_classifier / hollow_event_detector / lost_void_det)自动下载改 CNB 主 + GitHub 备用;OnnxModelLoader 支持备用下载地址,失败自动切换
  • 变更:OCR 模型(ppocrv5/v6)参数与下载入口改 CNB 优先;basic_model_config.get_ocr_opts / onnx_ocr_matcher / zzz_context OCR v6 后台下载同步更新
  • 变更:GUI 下载卡片(DownloadRunner)统一启用 cnb+github 顺序回退;无 cnb 地址的下载(如环境包)行为不变
  • 移除:模型相关 Gitee 引用(get_ocr_download_url_gitee 函数、YOLO_GITEE_MODEL_DOWNLOAD_URL、param 中的 gitee URL)

验证

  • 实测 CNB 下载 URL:YOLO .../OneDragon-YOLO/-/releases/download/zzz_model/yolov8n-640-flash-20250921.zip、OCR .../OneDragon-Env/-/releases/download/ppocrv6/ppocrv6.zip 均 302→206 可下载
  • 单测脚本验证 5 个场景:CNB 成功只用 CNB / CNB 失败自动回退 GitHub / 全部失败返回 False / 旧调用(仅 github)行为不变 / CNB 不走 ghproxy
  • ruff check 通过(无新增错误)

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: bd0e683d-b1c2-466d-b88c-74cb67942874

📥 Commits

Reviewing files that changed from the base of the PR and between 84ed14c and 02c8877.

📒 Files selected for processing (14)
  • src/one_dragon/base/config/basic_model_config.py
  • src/one_dragon/base/matcher/ocr/onnx_ocr_matcher.py
  • src/one_dragon/base/web/common_downloader.py
  • src/one_dragon/base/web/zip_downloader.py
  • src/one_dragon/yolo/onnx_model_loader.py
  • src/one_dragon/yolo/yolo_utils.py
  • src/one_dragon/yolo/yolov8_onnx_cls.py
  • src/one_dragon/yolo/yolov8_onnx_det.py
  • src/one_dragon_qt/widgets/setting_card/common_download_card.py
  • src/zzz_od/application/hollow_zero/lost_void/context/lost_void_detector.py
  • src/zzz_od/config/model_config.py
  • src/zzz_od/context/zzz_context.py
  • src/zzz_od/yolo/flash_classifier.py
  • src/zzz_od/yolo/hollow_event_detector.py

📝 Walkthrough

新增

  • 新增 CNB 模型下载地址及 URL 生成函数。
  • 新增 CNB → GitHub → Gitee → Mirror酱的下载回退流程。
  • 新增 YOLO 和 OCR 模型的备用下载地址配置。

变更

  • 将 YOLO 和 OCR 模型的主下载源切换为 CNB。
  • OnnxModelLoaderZipDownloaderCommonDownloader 和 GUI 下载任务增加备用下载支持。
  • 更新 OCR 和 YOLO 模型加载接口以传递 CNB 与备用下载参数。

移除

  • 移除模型配置中的 Gitee 下载地址、生成函数和相关参数。

Walkthrough

Changes

CNB 下载源与备用下载流程

Layer / File(s) Summary
下载器候选源流程
src/one_dragon/base/web/common_downloader.py, src/one_dragon/base/web/zip_downloader.py, src/one_dragon_qt/widgets/setting_card/common_download_card.py
下载器新增 CNB 参数,并按 CNB、GitHub、Gitee、Mirror酱顺序尝试下载。
OCR 下载源切换
src/one_dragon/base/config/basic_model_config.py, src/one_dragon/base/matcher/ocr/onnx_ocr_matcher.py, src/zzz_od/context/zzz_context.py
OCR 地址切换为 CNB。OCR 初始化和后台下载流程支持启用 CNB。
YOLO 主备模型下载
src/one_dragon/yolo/onnx_model_loader.py, src/one_dragon/yolo/yolo_utils.py, src/one_dragon/yolo/yolov8_onnx_cls.py, src/one_dragon/yolo/yolov8_onnx_det.py
YOLO 加载器按主地址、备用地址顺序下载。GitHub 地址支持 ghproxy_url
YOLO CNB 配置接入
src/zzz_od/config/model_config.py, src/zzz_od/yolo/*, src/zzz_od/application/hollow_zero/lost_void/context/lost_void_detector.py
YOLO 模型使用 CNB 主地址和 GitHub 备用地址。

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant ModelComponent as YOLO模型组件
  participant OnnxModelLoader
  participant CNB
  participant GitHub
  ModelComponent->>OnnxModelLoader: 传入主地址和备用地址
  OnnxModelLoader->>CNB: 下载主模型
  alt CNB 下载失败
    OnnxModelLoader->>GitHub: 下载备用模型
  end
  OnnxModelLoader-->>ModelComponent: 返回下载结果
Loading

Possibly related PRs

Suggested reviewers: shadowlemoon, a-nony-mous

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@kawayiYokami
kawayiYokami deleted the fix/model-download-cnb branch August 11, 2026 15:25
@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Aug 14, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant