feat: add batch processing for multiple file uploads
- Add BatchState management in taskStore with progress tracking - Implement batch processing service with concurrency control - Direct Track: max 5 parallel tasks - OCR Track: sequential processing (GPU VRAM limit) - Refactor ProcessingPage to support batch mode with BatchProcessingPanel - Update UploadPage to initialize batch state for multi-file uploads - Add i18n translations for batch processing (zh-TW, en-US) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
# Change: 新增批次處理功能
|
||||
|
||||
## Why
|
||||
|
||||
目前系統支援批次上傳多個檔案,但處理時需要使用者逐一點選每個任務進行處理。這對於大量文件的處理場景非常不便。需要新增批次處理功能,讓使用者可以一次設定並啟動所有上傳的任務。
|
||||
|
||||
## What Changes
|
||||
|
||||
### 1. 批次狀態管理
|
||||
- 擴展 taskStore 支援批次任務追蹤
|
||||
- 新增批次進度狀態(總數、已完成、處理中、失敗)
|
||||
- 儲存批次統一設定
|
||||
|
||||
### 2. 批次處理邏輯
|
||||
- 上傳完成後分析所有檔案決定處理軌道
|
||||
- 根據軌道類型分流處理:
|
||||
- Direct Track:最多 5 個並行(CPU 運算)
|
||||
- OCR Track:單一佇列(GPU VRAM 限制)
|
||||
- 兩類任務可同時進行
|
||||
|
||||
### 3. 批次設定 UI
|
||||
- 修改 ProcessingPage 支援多任務模式
|
||||
- 統一設定介面:
|
||||
- 處理策略(自動判斷/強制 OCR/強制 Direct)
|
||||
- Layout Model(OCR 專用)
|
||||
- 預處理模式(OCR 專用)
|
||||
- 批次進度顯示(整體進度 + 各任務狀態)
|
||||
|
||||
### 4. 處理策略
|
||||
- **自動判斷**(推薦):系統分析每個檔案後自動選擇最佳 track
|
||||
- **全部 OCR**:強制所有檔案使用 OCR track
|
||||
- **全部 Direct**:強制所有 PDF 使用 Direct track
|
||||
|
||||
## Impact
|
||||
|
||||
- Affected specs: frontend-ui (修改)
|
||||
- Affected code:
|
||||
- `frontend/src/store/taskStore.ts` - 擴展批次狀態
|
||||
- `frontend/src/pages/ProcessingPage.tsx` - 支援多任務處理
|
||||
- `frontend/src/pages/UploadPage.tsx` - 傳遞多任務 ID
|
||||
- `frontend/src/services/apiV2.ts` - 新增批次處理輔助函數
|
||||
- `frontend/src/i18n/locales/*.json` - 新增翻譯
|
||||
- 後端無需改動(利用現有 API)
|
||||
Reference in New Issue
Block a user