docs: 更新 PRD v2.3 + 新增 TDD v1.2

- PRD: 新增 B4.5 已實作額外功能(i18n、深色模式、多來源推論、Dashboard 等 9 項)
- TDD: 新增技術設計文件,涵蓋前後端架構、通訊協定、Driver 抽象層、Camera Pipeline

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jim800121chen 2026-02-25 01:03:33 +08:00
parent 6f3800687e
commit edc8355c23
2 changed files with 2115 additions and 4 deletions

View File

@ -8,9 +8,9 @@
|------|------|
| 文件名稱 | 邊緣 AI 開發平台 PRD |
| 產品名稱 | (暫未定名,以下稱「本平台」) |
| 版本 | v2.2 |
| 日期 | 2026-02-11 |
| 狀態 | 初稿 |
| 版本 | v2.3 |
| 日期 | 2026-02-24 |
| 狀態 | 更新中 |
---
@ -34,6 +34,7 @@
- [B3.7 硬體支援路線圖](#b37-硬體支援路線圖)
- [B3.8 硬體技術規格](#b38-硬體技術規格)
- [B4. MVP 功能規格](#b4-mvp-功能規格)
- [B4.5 已實作的額外功能](#b45-已實作的額外功能)
- [B5. 功能路線圖Post-MVP](#b5-功能路線圖post-mvp)
- [B6. 商業模式與策略](#b6-商業模式與策略)
@ -1084,6 +1085,98 @@ Kneron Dongle Arduino 開發板 非 Kneron 晶片
| **互動控制** | Confidence Threshold 滑桿、開始/停止推論 |
| **裝置日誌** | 原始串列通訊日誌(可展開查看) |
### B4.5 已實作的額外功能
> 以下功能為 MVP 開發過程中額外實作,超出原始 PRD 範圍。共 9 項功能。
#### F5 — 多來源推論輸入
| 項目 | 規格 |
|------|------|
| **概述** | 除了攝影機之外,支援上傳圖片和影片作為推論輸入來源 |
| **輸入來源** | 攝影機即時、圖片上傳JPG/PNG、影片上傳MP4/AVI/MOV、影片 URL直接連結、YouTube、RTSP |
| **圖片推論** | 上傳圖片至後端,送入裝置 NPU 推論後回傳結果 |
| **影片推論** | 上傳影片或提供 URL後端逐幀擷取送入裝置推論結果透過 WebSocket 即時串流 |
| **YouTube 支援** | 透過 yt-dlp 解析 YouTube URL 取得直接影片連結,再進行影片推論 |
| **UI 設計** | Tab 式切換(攝影機 / 圖片 / 影片),影片 tab 內再切換上傳檔案或貼上 URL |
#### F6 — 多語系支援i18n
| 項目 | 規格 |
|------|------|
| **概述** | 完整的前端多語系支援,支援英文與繁體中文切換 |
| **支援語言** | English (en)、繁體中文 (zh-TW) |
| **實作方式** | 自訂 TypeScript i18n 系統,不依賴外部框架(無 next-intl / react-i18next |
| **翻譯字典** | 約 120+ 翻譯 key按功能分區common, nav, dashboard, devices, models, camera, inference, settings, errors |
| **型別安全** | `TranslationKey` 型別由 `Paths<TranslationDict>` 遞迴產生,提供所有 key 的自動完成,缺 key 時 TypeScript 報錯 |
| **切換方式** | Settings 頁面語言下拉選單,切換後即時生效(無需重新整理) |
| **持久化** | 語言設定透過 Zustand persist 儲存至 localStorage |
#### F7 — 深色模式
| 項目 | 規格 |
|------|------|
| **概述** | 支援淺色和深色主題切換 |
| **實作方式** | ThemeSync 元件監聽 Zustand store 的 theme 設定,同步更新 `<html>``class` 屬性(`dark` |
| **CSS 方案** | 使用 Tailwind CSS 的 `dark:` variant搭配 CSS custom properties |
| **切換方式** | Settings 頁面主題選擇 |
| **持久化** | 主題設定透過 Zustand persist 儲存至 localStorage |
#### F8 — 儀表板Dashboard
| 項目 | 規格 |
|------|------|
| **概述** | 首頁儀表板提供平台總覽,包含統計卡片、快速操作和即時資訊 |
| **統計卡片** | 模型數量、裝置數量、已連線裝置數、燒錄次數 |
| **快速操作** | 「瀏覽模型」、「管理裝置」、「上傳模型」按鈕,快速導航到對應頁面 |
| **活動時間線** | 顯示最近 10 筆系統活動(模型上傳/刪除、裝置連線/斷線、燒錄開始/完成/錯誤) |
| **已連線裝置** | 即時顯示目前已連線的裝置列表及狀態 |
#### F9 — 裝置偏好設定
| 項目 | 規格 |
|------|------|
| **概述** | 每台裝置可設定自訂名稱和備註 |
| **自訂名稱** | alias 欄位,例如「實驗室裝置 #1」 |
| **備註** | 自由文字備註欄位 |
| **持久化** | 透過 Zustand persist 儲存至 localStorage以 deviceId 為 key |
#### F10 — 模型比較
| 項目 | 規格 |
|------|------|
| **概述** | 模型庫內可選取最多 3 個模型進行並排比較 |
| **比較面向** | 準確率、FPS、模型大小、延遲、任務類型 |
| **UI 設計** | Dialog 式比較表,含指標長條圖視覺化 |
| **操作方式** | 在模型列表勾選後點擊「比較」按鈕 |
#### F11 — 自訂模型上傳
| 項目 | 規格 |
|------|------|
| **概述** | 使用者可上傳自訂 .nef 模型檔案到模型庫 |
| **上傳資訊** | 模型檔案(.nef、模型名稱、描述、任務類型、標籤、輸入尺寸、量化方式 |
| **驗證** | 必填欄位驗證(檔案、名稱、任務類型、標籤) |
| **模型管理** | 自訂模型可在模型詳情頁刪除 |
#### F12 — 設定頁面
| 項目 | 規格 |
|------|------|
| **概述** | 集中管理應用程式設定 |
| **伺服器設定** | 顯示 API URL 和 WebSocket URL唯讀 |
| **外觀設定** | 主題切換(淺色/深色、語言切換EN/zh-TW |
| **關於** | 顯示平台版本資訊 |
| **恢復預設** | 一鍵恢復所有設定至預設值 |
#### F13 — 裝置健康狀態與連線歷史
| 項目 | 規格 |
|------|------|
| **概述** | 裝置詳情頁顯示健康狀態和連線歷史 |
| **健康狀態** | 狀態、韌體版本、運行時間、最後活動時間 |
| **連線歷史** | 按時間排列的連線/斷線事件紀錄 |
---
## B5. 功能路線圖Post-MVP
@ -1270,4 +1363,4 @@ Phase 3 — 進階功能(長期差異化)
---
*文件版本v2.2 | 日期2026-02-11 | 狀態:初稿*
*文件版本v2.3 | 日期2026-02-24 | 狀態:更新中*

2018
docs/TDD.md Normal file

File diff suppressed because it is too large Load Diff