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