# Kneron Toolchain Convert Orchestrator 本專案實作「Crash 即 Reset」的 Kneron Toolchain 轉換流程: ONNX → BIE → NEF。系統以 Scheduler 為控制面,搭配 Worker Pool 與 MinIO 交換產物。 架構以 docs/Design.md 為準。 ## 核心設計(Crash Reset) - Redis 與 Queue 都是易失性,重啟即清空。 - Scheduler / Worker 不做任務復原。 - Crash 後需重新送出任務。 ## 元件(目標架構) - Web UI:上傳 model/quant、查狀態、下載結果。 - Task Scheduler:建立 job、更新狀態、派發任務、接收完成事件。 - Worker Pools:ONNX / BIE / NEF Worker,無狀態、pull-based。 - Redis:暫存 job 狀態(不保證持久)。 - Queue:任務/完成事件(不保證持久)。 - MinIO:跨 Worker 的 input/output/log 存放。 ## Job 流程 1) UI 建立 job,並上傳 input 到 MinIO 2) Scheduler 推入 queue:onnx 3) ONNX Worker 執行完成 4) Scheduler 推入 queue:bie 5) BIE Worker 執行完成 6) Scheduler 推入 queue:nef 7) NEF Worker 執行完成 8) Scheduler 標記 COMPLETED ## 非目標 - 不做任務持久化 - 不做 crash 後 resume - 不做 exactly-once / at-least-once 保證 - 不做 Scheduler HA - 不做自動 retry ## 備註 - docs/Design.md 為唯一真實設計文件。 - apps/ 與 infra 為實作中的目錄,後續可能變動。 ## 目錄結構(概要) ``` . ├── apps/ # 前端與 Scheduler(實作中) ├── infra/ # 基礎設施相關(實作中) ├── services/ # Worker 服務(ONNX/BIE/NEF) ├── ktc/ # Kneron Toolchain Python API 封裝 ├── vendor/ # 上游/第三方模組(sys_flow, sys_flow_v2 等) ├── toolchain/ # 本地 toolchain/prebuild 與相關資源 ├── libs/ # toolchain v1 相關資源(來源快照) ├── libs_V2/ # toolchain v2 相關資源(來源快照) ├── scripts/ # toolchain scripts / res / config ├── tests/ # 測試 ├── docs/ # 設計文件 │ └── Design.md └── requirements.txt # Python 依賴 ```