Files
OCR/openspec/changes/archive/2025-12-12-optimize-task-files-and-visualization/tasks.md
egg efa7e4175c feat: optimize task file generation and add visualization download
Backend changes:
- Disable PP-Structure debug file generation by default
- Separate raw_ocr_regions.json generation from debug flag (critical file)
- Add visualization folder download endpoint as ZIP
- Add has_visualization field to TaskDetailResponse
- Stop generating Markdown files
- Save translated PDFs to task folder with caching

Frontend changes:
- Replace JSON/MD download buttons with PDF buttons in TaskHistoryPage
- Add visualization download button in TaskDetailPage
- Fix Processing page task switching issue (reset isNotFound)

Archives two OpenSpec proposals:
- optimize-task-files-and-visualization
- simplify-frontend-add-billing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-12 19:11:50 +08:00

69 lines
2.4 KiB
Markdown
Raw 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.

# Tasks: 優化任務檔案生成與視覺化下載
## 1. 後端設定優化
- [x] 1.1 修改 `config.py` debug 預設值
- `pp_structure_debug_enabled`: `True``False`
- `pp_structure_debug_visualization`: `True``False`
## 2. 後端 Visualization 下載 API
- [x] 2.1 在 `tasks.py` 新增 visualization 下載端點
- `GET /api/v2/tasks/{task_id}/download/visualization`
- 檢查 visualization 資料夾是否存在
- 打包資料夾內所有 PNG 為 ZIP
- 返回 StreamingResponse (application/zip)
- [x] 2.2 在 TaskDetail response 中加入 `has_visualization` 欄位
- 檢查 task result directory 下是否有 visualization 資料夾
- 回傳 boolean 值
## 3. 前端 Visualization 下載功能
- [x] 3.1 在 `types/apiV2.ts` 更新 TaskDetail type
- 新增 `has_visualization?: boolean`
- [x] 3.2 在 `apiV2.ts` 新增下載方法
- `downloadVisualization(taskId: string): Promise<void>`
- [x] 3.3 在 `TaskDetailPage.tsx` 新增下載按鈕
- 只有 `has_visualization = true` 時顯示
- 點擊後下載 ZIP 檔案
## 4. 停止生成 Markdown 檔案
- [x] 4.1 修改 `ocr_service.py``save_results()` 方法
- 移除 Markdown 檔案生成
- 返回值中 `markdown_path` 始終為 `None`
- [x] 4.2 修改 `unified_document_exporter.py`
- `export_all()`: 移除 Markdown 導出
- `export_formats()`: 移除 Markdown 支援
- [x] 4.3 前端 TaskHistoryPage.tsx 移除 JSON/MD 下載按鈕
- 改為版面 PDF 和流式 PDF 兩個下載按鈕
## 5. 確保 raw_ocr_regions.json 正常生成
- [x] 5.1 將 `raw_ocr_regions.json` 生成從 debug 區塊分離
- 獨立於 `pp_structure_debug_enabled` 設定
- 此檔案為 PDF 生成和翻譯服務所必需
- [x] 5.2 在 `pp_structure_debug.py` 新增 `save_debug_results()` 方法
- 只保存純 debug 檔案(`_pp_structure_raw.json`, `_debug_summary.json`
- 不再重複保存 `_raw_ocr_regions.json`
## 6. Bug 修復
- [x] 6.1 修復 Processing 頁面不切換到新任務的問題
-`useTaskValidation.ts` 中加入 taskId 變化時重置 `isNotFound` 的邏輯
## 7. 測試與驗證
- [x] 7.1 驗證 TypeScript 編譯通過
- [ ] 7.2 驗證 `*_raw_ocr_regions.json` 仍正常生成
- [ ] 7.3 驗證 visualization 資料夾仍正常生成
- [ ] 7.4 測試 visualization 下載功能
- [ ] 7.5 驗證 PDF 內容正常顯示
- [ ] 7.6 驗證新任務上傳後 Processing 頁面正確切換