visionA/docs/autoflow/02-prd/features/feature-cluster-inference.md
jim800121chen fb7da5d180 chore(autoflow): migrate .autoflow/ 共享層文件至 docs/autoflow/
依 autoflow-agent workspace v2 設計把 PRD / 設計 / 架構 / 交付類
共享文件從個人層 .autoflow/(ignored)搬到 docs/autoflow/(進 git),
讓團隊可共享產品與架構文件,個人層只留 progress / review / testing 等
per-branch 筆記。

- 02-prd/        21 個檔(PRD、features、market-analysis 等)
- 03-design/     18 個檔(design-spec、wireframes、flows 等)
- 04-architecture/ 31 個檔(TDD、design-doc、ADR×14、API 規格等)
- 07-delivery/   3 個檔(project-summary、phase-0.6-handover、stage-deployment-setup)

合計 73 檔。原檔已從 .autoflow/ 移除(migration 工具執行 git mv,
但因 .autoflow/ 在 .gitignore 中、git 將此操作視為新增、無 rename history)。
2026-05-04 16:55:55 +08:00

103 lines
3.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Feature叢集推論P1
> 父文件:[PRD.md](../PRD.md) | 對應 User StoriesUS-16、US-17
>
> **Phase 0 不實作**。Phase 0 只留模組目錄(`internal/cluster/`),從 POC 搬過來但不接入 API。Phase 1 正式產品化。
---
## 概述
叢集推論是 edge-ai-platform POC 驗證過的功能:把多台 Kneron 裝置組成叢集,按**加權 Round-Robin** 分派推論任務。
這是 visionA Cloud 相對於 local-tool 的**核心差異化功能**。
---
## 使用者行為Phase 1
### 叢集列表頁(`/clusters`
- 使用者能看到自己建立的叢集
- 每個叢集顯示:名稱、裝置數、活躍狀態、最近推論量
- 能建立新叢集、刪除叢集、編輯叢集
### 建立叢集流程
1. 點「新建叢集」
2. 輸入叢集名稱
3. 從已配對裝置挑選 2+ 台裝置加入
4. 為每台裝置設權重1-10
5. 確認建立
### 叢集推論操作
- 進入某叢集的 workspace`/clusters/[id]/workspace`
- 選模型(必須叢集內所有裝置都相容)
- 選來源Camera / Image / Video / Batch
- 啟動後dispatcher 按加權 RR 分派任務到各裝置
- UI 顯示:
- 每台裝置的即時負載(%
- 每台裝置的推論 FPS
- 整體吞吐量
- Bounding box overlay 仍然顯示(但標注是哪台裝置推論的)
### 故障降級
- 某台裝置 tunnel 斷線 → 自動從 dispatcher 移除
- 叢集內剩餘裝置繼續服務
- 裝置重新上線 → 自動回加入叢集
---
## 技術細節(從 POC 搬)
從 POC `cluster/` 模組搬:
- `Dispatcher`:加權 RR 邏輯
- `Manager`:叢集 CRUD
- `Pipeline`:單幀 `RunInference` 或連續 `StartContinuous`
**要做的產品化改造**
- 加 user_id 隔離POC 只有一個用戶)
- 叢集 metadata 存 DBPhase 1 接 DB 後)
- MaxClusterSize 可配置
- 健康度監控與告警
---
## 驗收條件Phase 1不在 Phase 0 範圍)
- [ ] 能建立、編輯、刪除叢集
- [ ] 叢集內至少能加 5 台裝置(上限可配置)
- [ ] 加權 RR 分派正確(實測權重 3:1 的裝置,流量比約 3:1
- [ ] 某裝置離線時,叢集自動降級,剩餘裝置繼續服務
- [ ] 裝置重新上線自動加回
- [ ] 每台裝置的即時負載 UI 更新
- [ ] 不同使用者的叢集互相隔離
---
## Phase 0 要做的準備
- [ ] `internal/cluster/` 模組從 POC 搬到 visionA-backend但**不接入 API handlers**
- [ ] Phase 0 的前端 `/clusters` 頁面:可留空白或顯示「即將推出」
- [ ] 介面層面預留API Server router 保留 `/api/clusters/...` 路徑的預定義,先回 501 Not Implemented
---
## Phase 2 的 TODO
- **TODO 1**:跨使用者的叢集共享(多租戶團隊功能)
- **TODO 2**:動態權重調整(根據實測效能自動調)
- **TODO 3**:叢集級別的 Model A/B Testing
- **TODO 4**:叢集級別的 fallback policy不只 RR還能 failover
---
## 連結
- 回:[PRD 索引](../PRD.md)
- 相關:[推論操作](feature-inference.md)