docs: update documentation for chart recognition enablement

Updates all project documentation to reflect that chart recognition
is now fully enabled with PaddlePaddle 3.2.1+.

Changes:
- README.md: Remove Known Limitations section about chart recognition,
  update tech stack and prerequisites to include PaddlePaddle 3.2.1+,
  add WSL CUDA configuration notes
- openspec/project.md: Add comprehensive chart recognition feature
  descriptions, update system requirements for GPU/CUDA support
- openspec/changes/add-gpu-acceleration-support/tasks.md: Mark task
  5.4 as completed with resolution details
- openspec/changes/add-gpu-acceleration-support/proposal.md: Update
  Known Issues section to show chart recognition is now resolved
- setup_dev_env.sh: Upgrade PaddlePaddle from 3.0.0 to 3.2.1+, add
  WSL CUDA library path configuration, add chart recognition API
  verification

All documentation now accurately reflects:
 Chart recognition fully enabled
 PaddlePaddle 3.2.1+ with fused_rms_norm_ext API
 WSL CUDA path auto-configuration
 Comprehensive PP-StructureV3 capabilities

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
egg
2025-11-16 19:04:30 +08:00
parent 7e12f162b4
commit 3f41a33877
5 changed files with 147 additions and 67 deletions

View File

@@ -122,39 +122,39 @@ detect_gpu() {
if [ "$CUDA_MAJOR" -ge 13 ]; then
echo "將安裝 PaddlePaddle GPU 版本 (CUDA 13.x)"
echo "使用穩定版本 3.0.0 (兼容 CUDA 12.6+)"
echo "使用版本 3.2.1+ (兼容 CUDA 12.6+, 支援圖表識別)"
USE_GPU=true
PADDLE_PACKAGE="paddlepaddle-gpu==3.0.0"
PADDLE_PACKAGE="paddlepaddle-gpu>=3.2.1"
PADDLE_INDEX="https://www.paddlepaddle.org.cn/packages/stable/cu126/"
elif [ "$CUDA_MAJOR" -eq 12 ]; then
echo "將安裝 PaddlePaddle GPU 版本 (CUDA 12.x)"
echo "使用穩定版本 3.0.0 (兼容 CUDA 12.3+)"
echo "使用版本 3.2.1+ (兼容 CUDA 12.3+, 支援圖表識別)"
USE_GPU=true
PADDLE_PACKAGE="paddlepaddle-gpu==3.0.0"
PADDLE_PACKAGE="paddlepaddle-gpu>=3.2.1"
PADDLE_INDEX="https://www.paddlepaddle.org.cn/packages/stable/cu123/"
elif [ "$CUDA_MAJOR" -eq 11 ]; then
echo "將安裝 PaddlePaddle GPU 版本 (CUDA 11.x)"
echo "使用穩定版本 3.0.0 (兼容 CUDA 11.8+)"
echo "使用版本 3.2.1+ (兼容 CUDA 11.8+, 支援圖表識別)"
USE_GPU=true
PADDLE_PACKAGE="paddlepaddle-gpu==3.0.0"
PADDLE_PACKAGE="paddlepaddle-gpu>=3.2.1"
PADDLE_INDEX="https://www.paddlepaddle.org.cn/packages/stable/cu118/"
else
echo -e "${YELLOW}⚠ CUDA 版本不支援 ($CUDA_VERSION)${NC}"
echo "將安裝 CPU 版本"
USE_GPU=false
PADDLE_PACKAGE="paddlepaddle"
PADDLE_PACKAGE="paddlepaddle>=3.2.1"
fi
else
echo -e "${YELLOW}⚠ 無法獲取 CUDA 版本${NC}"
echo "將安裝 CPU 版本"
USE_GPU=false
PADDLE_PACKAGE="paddlepaddle"
PADDLE_PACKAGE="paddlepaddle>=3.2.1"
fi
else
echo -e "${YELLOW} 未偵測到 NVIDIA GPU 或 nvidia-smi${NC}"
echo "將安裝 CPU 版本的 PaddlePaddle"
USE_GPU=false
PADDLE_PACKAGE="paddlepaddle"
PADDLE_PACKAGE="paddlepaddle>=3.2.1"
fi
}
@@ -179,7 +179,40 @@ if [ "$USE_GPU" = true ]; then
fi
else
echo "安裝 CPU 版本..."
pip install paddlepaddle
pip install 'paddlepaddle>=3.2.1'
fi
# WSL CUDA 路徑配置 (針對 WSL GPU 用戶)
if [ "$USE_GPU" = true ]; then
echo ""
echo -e "${YELLOW}配置 WSL CUDA 庫路徑...${NC}"
# 檢查是否在 WSL 環境中
if grep -qi microsoft /proc/version; then
echo "偵測到 WSL 環境,配置 CUDA 庫路徑..."
# 檢查 CUDA 庫是否存在於 WSL 路徑
if [ -d "/usr/lib/wsl/lib" ]; then
# 檢查 ~/.bashrc 中是否已包含此配置
if ! grep -q "export LD_LIBRARY_PATH=/usr/lib/wsl/lib" ~/.bashrc; then
echo "" >> ~/.bashrc
echo "# WSL CUDA Libraries Path for PaddlePaddle GPU support (Added by Tool_OCR setup)" >> ~/.bashrc
echo "export LD_LIBRARY_PATH=/usr/lib/wsl/lib:\$LD_LIBRARY_PATH" >> ~/.bashrc
echo "✓ 已將 WSL CUDA 路徑添加到 ~/.bashrc"
else
echo "✓ WSL CUDA 路徑已存在於 ~/.bashrc"
fi
# 立即應用到當前 session
export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH
echo "✓ 已應用 CUDA 路徑到當前環境"
else
echo -e "${YELLOW}⚠ 未找到 /usr/lib/wsl/lib 目錄${NC}"
echo "請確認 NVIDIA CUDA 驅動已安裝於 WSL"
fi
else
echo "非 WSL 環境,跳過 WSL CUDA 路徑配置"
fi
fi
# 安裝其他依賴(跳過 requirements.txt 中的 paddlepaddle
@@ -217,6 +250,26 @@ except Exception as e:
print(' 將使用 CPU 模式')
" || echo "⚠ PaddlePaddle 驗證失敗,但可繼續使用"
# 驗證圖表識別 API 可用性
echo ""
echo -e "${YELLOW}驗證圖表識別 API...${NC}"
python -c "
import paddle.incubate.nn.functional as F
# 檢查 API 可用性
has_base = hasattr(F, 'fused_rms_norm')
has_ext = hasattr(F, 'fused_rms_norm_ext')
print('📊 圖表識別 API 檢查:')
print(f' - fused_rms_norm: {'✅ 可用' if has_base else '❌ 不可用'}')
print(f' - fused_rms_norm_ext: {'✅ 可用' if has_ext else '❌ 不可用'}')
if has_ext:
print('🎉 圖表識別功能: ✅ 可啟用')
else:
print('⚠️ 圖表識別功能: ❌ 不可用 (需要 PaddlePaddle 3.2.0+)')
" || echo "⚠ 圖表識別 API 驗證失敗"
echo ""
echo -e "${YELLOW}[8/9] 安裝前端依賴...${NC}"
cd frontend
@@ -251,10 +304,15 @@ echo ""
echo "系統配置:"
if [ "$USE_GPU" = true ]; then
echo -e " GPU 加速: ${GREEN}已啟用${NC}"
echo " PaddlePaddle: GPU 版本"
echo " PaddlePaddle: GPU 版本 (3.2.1+)"
echo -e " 圖表識別: ${GREEN}已啟用${NC}"
if grep -qi microsoft /proc/version; then
echo " WSL CUDA 路徑: 已配置於 ~/.bashrc"
fi
else
echo -e " GPU 加速: ${YELLOW}未啟用 (CPU 模式)${NC}"
echo " PaddlePaddle: CPU 版本"
echo " PaddlePaddle: CPU 版本 (3.2.1+)"
echo -e " 圖表識別: ${GREEN}已啟用${NC} (CPU 模式)"
fi
echo ""
echo "下一步操作:"
@@ -276,3 +334,7 @@ echo " 前端: http://localhost:5173"
echo " API文檔: http://localhost:8000/docs"
echo " 健康檢查: http://localhost:8000/health"
echo ""
if [ "$USE_GPU" = true ] && grep -qi microsoft /proc/version; then
echo "注意: WSL GPU 用戶需要重新啟動終端或執行 'source ~/.bashrc' 以應用 CUDA 路徑配置"
echo ""
fi