Problem
發現途徑:2026-07-02 真實多模型驗證(使用者要求以 HuggingFace 實際模型驗證,非 mock)時,對 ggerganov/whisper.cpp 逐檔 HTTP 探測:
ggml-tiny-q5_0.bin → 404 ggml-tiny-q5_1.bin → 200 ggml-tiny-q8_0.bin → 200
ggml-base-q5_0.bin → 404 ggml-base-q5_1.bin → 200 ggml-base-q8_0.bin → 200
ModelRegistry.quantizations[.whisperCpp] = ["q5_0", "q8_0"] 假設所有模型都有 q5_0,但 HF 發佈的 tiny/base(以及 small)是 q5_1,q5_0 只存在於 medium/large 系。後果:
WhisperCppEngine 的 model-missing 錯誤訊息會給使用者一個 404 的 curl URL(誠實錯誤變成誤導指引)
benchmark 枚舉的 q5_0 候選對 tiny/base/small 永遠只能失敗(warn-continue 噪音)
Type
bug
Expected
量化檔位表按模型尺寸區分可用性(tiny/base/small → q5_1/q8_0;medium/large 系 → q5_0/q8_0),或改為下載前探測;錯誤訊息中的 URL 必須實際存在。
Actual
單一 ["q5_0","q8_0"] 清單套用全模型;tiny/base 的 q5_0 指引 URL 為 404。
Impact
Sources/BestASRKit/Models/ModelRegistry.swift(quantizations 表 → per-model 對應)
openspec/specs/asr-engine 或 registry 相關 spec 的量化描述
- 測試:對照表 + 錯誤訊息 URL 格式
Current Status
Problem
ModelRegistry.quantizations[.whisperCpp] = ["q5_0", "q8_0"]假設所有模型都有q5_0,但 HF 發佈的 tiny/base(以及 small)是q5_1,q5_0只存在於 medium/large 系。後果:WhisperCppEngine的 model-missing 錯誤訊息會給使用者一個 404 的 curl URL(誠實錯誤變成誤導指引)benchmark枚舉的q5_0候選對 tiny/base/small 永遠只能失敗(warn-continue 噪音)Type
bug
Expected
量化檔位表按模型尺寸區分可用性(tiny/base/small →
q5_1/q8_0;medium/large 系 →q5_0/q8_0),或改為下載前探測;錯誤訊息中的 URL 必須實際存在。Actual
單一
["q5_0","q8_0"]清單套用全模型;tiny/base 的 q5_0 指引 URL 為 404。Impact
Sources/BestASRKit/Models/ModelRegistry.swift(quantizations 表 → per-model 對應)openspec/specs/asr-engine或 registry 相關 spec 的量化描述Current Status