Browse Source

Fix bugs and update for v3.3 (#4613)

* Fix bugs

* Fix all
Lin Manhui 1 tháng trước cách đây
mục cha
commit
beefe5c3ae

+ 2 - 2
.github/workflows/deploy_docs.yml

@@ -2,7 +2,7 @@ name: Develop Docs
 on:
   push:
     branches: #设置更新哪个分支会更新站点
-      - release/3.2
+      - release/3.3
 permissions:
   contents: write
 jobs:
@@ -27,5 +27,5 @@ jobs:
       - run: pip install mike mkdocs-material jieba mkdocs-git-revision-date-localized-plugin mkdocs-git-committers-plugin-2 mkdocs-git-authors-plugin mkdocs-static-i18n mkdocs-minify-plugin 
       - run: |
           git fetch origin gh-pages --depth=1
-          mike deploy --push --update-aliases 3.2 latest
+          mike deploy --push --update-aliases 3.3 latest
           mike set-default --push latest

+ 4 - 0
README.md

@@ -35,6 +35,10 @@ PaddleX 3.0 是基于飞桨框架构建的低代码开发工具,它集成了
 
 ## 📣 近期更新
 
+🔥🔥 **2025.10.16,发布 PaddleX v3.3.0**,新增能力如下:
+
+- **支持PaddleOCR-VL、PP-OCRv5多语种模型的推理部署能力。**
+
 🔥🔥 **2025.8.20,发布 PaddleX v3.2.0**,新增能力如下:
 
 - **部署能力升级:**

+ 4 - 0
README_en.md

@@ -37,6 +37,10 @@ PaddleX 3.0 is a low-code development tool for AI models built on the PaddlePadd
 
 ## 📣 Recent Updates
 
+🔥🔥 **2025.10.16, PaddleX v3.3.0 Released**
+
+- **Added support for inference and deployment of PaddleOCR-VL and PP-OCRv5 multilingual models.**
+
 🔥🔥 **2025.8.20, PaddleX v3.2.0 Released**
 
 - **Deployment Capability Upgrades:**

+ 1 - 1
deploy/hps/sdk/pipelines/PaddleOCR-VL/server/pipeline_config.yaml

@@ -13,7 +13,7 @@ format_block_content: False
 SubModules:
   LayoutDetection:
     module_name: layout_detection
-    model_name: PP-DocLayoutV2-L
+    model_name: PP-DocLayoutV2
     model_dir: null
     batch_size: 8
     threshold: 

+ 4 - 0
docs/CHANGELOG.en.md

@@ -6,6 +6,10 @@ comments: true
 
 ## Latest Version Information
 
+### PaddleX v3.3.0 (October 16, 2025)
+
+- **Added support for inference and deployment of PaddleOCR-VL and PP-OCRv5 multilingual models.**
+
 ### PaddleX v3.2.0(8.20/2025)
 
 - **Deployment Capability Upgrades:**

+ 4 - 0
docs/CHANGELOG.md

@@ -6,6 +6,10 @@ comments: true
 
 ## 最新版本信息
 
+### PaddleX v3.3.0(10.16/2025)
+
+- **支持PaddleOCR-VL、PP-OCRv5多语种模型的推理部署能力。**
+
 ### PaddleX v3.2.0(8.20/2025)
 
 - **部署能力升级:**

+ 1 - 1
docs/pipeline_usage/tutorials/ocr_pipelines/PaddleOCR-VL.md

@@ -291,7 +291,7 @@ PaddleX 所提供的模型产线均可以快速体验效果,你可以在本地
 
 在本地使用通用版面解析v3产线前,请确保您已经按照[PaddleX本地安装教程](../../../installation/installation.md)完成了PaddleX的wheel包安装。如果您希望选择性安装依赖,请参考安装教程中的相关说明。该产线对应的依赖分组为 `ocr`。
 
-> 在进行 GPU 推理时,默认配置可能会占用超过 16 GB 的显存,请务必确认 GPU 显存容量充足。若需减少显存占用,可参考下文说明修改配置文件,关闭不必要的功能
+> 默认配置暂不支持 Compute Capability 低于 8.0 的 GPU(如 V100、RTX 3060 等)。请参阅下一节,了解如何在此类 GPU 上使用推理加速框架
 
 ### 2.1 命令行方式体验
 一行命令即可快速体验版面解析产线效果,使用 [测试文件](https://paddle-model-ecology.bj.bcebos.com/paddlex/imgs/demo_image/paddleocr_vl_demo.png),并将 `--input` 替换为本地路径,进行预测

+ 2 - 6
paddlex/inference/genai/models/__init__.py

@@ -42,18 +42,14 @@ def _check_model_name_and_backend(model_name, backend):
 def get_model_dir(model_name, backend):
     _check_model_name_and_backend(model_name, backend)
 
-    if backend in ("vllm", "sglang"):
-        suffix = "_paddle"
-    else:
-        suffix = "_torch"
     try:
-        model_dir = official_models[model_name + suffix]
+        model_dir = official_models[model_name]
     except Exception as e:
         raise RuntimeError(
             f"Could not prepare the official model for the {repr(model_name)} model with the {repr(backend)} backend."
         ) from e
 
-    return model_dir
+    return str(model_dir)
 
 
 def get_model_components(model_name, backend):

+ 200 - 24
paddlex/inference/utils/hpi_model_info_collection.json

@@ -1363,13 +1363,31 @@
         "paddle_mkldnn",
         "paddle"
       ],
+      "korean_PP-OCRv5_mobile_rec": [
+        "openvino",
+        "onnxruntime",
+        "paddle_mkldnn",
+        "paddle"
+      ],
       "latin_PP-OCRv5_mobile_rec": [
         "openvino",
         "onnxruntime",
         "paddle_mkldnn",
         "paddle"
       ],
-      "cyrillic_PP-OCRv5_mobile_rec": [
+      "eslav_PP-OCRv5_mobile_rec": [
+        "openvino",
+        "onnxruntime",
+        "paddle_mkldnn",
+        "paddle"
+      ],
+      "th_PP-OCRv5_mobile_rec": [
+        "openvino",
+        "onnxruntime",
+        "paddle_mkldnn",
+        "paddle"
+      ],
+      "el_PP-OCRv5_mobile_rec": [
         "openvino",
         "onnxruntime",
         "paddle_mkldnn",
@@ -1381,13 +1399,13 @@
         "paddle_mkldnn",
         "paddle"
       ],
-      "devanagari_PP-OCRv5_mobile_rec": [
+      "cyrillic_PP-OCRv5_mobile_rec": [
         "openvino",
         "onnxruntime",
         "paddle_mkldnn",
         "paddle"
       ],
-      "ta_PP-OCRv5_mobile_rec": [
+      "devanagari_PP-OCRv5_mobile_rec": [
         "openvino",
         "onnxruntime",
         "paddle_mkldnn",
@@ -1399,6 +1417,12 @@
         "paddle_mkldnn",
         "paddle"
       ],
+      "ta_PP-OCRv5_mobile_rec": [
+        "openvino",
+        "onnxruntime",
+        "paddle_mkldnn",
+        "paddle"
+      ],
       "PP-OCRv5_server_det": [
         "paddle_mkldnn",
         "openvino",
@@ -2817,13 +2841,31 @@
         "paddle_mkldnn",
         "paddle"
       ],
+      "korean_PP-OCRv5_mobile_rec": [
+        "openvino",
+        "onnxruntime",
+        "paddle_mkldnn",
+        "paddle"
+      ],
       "latin_PP-OCRv5_mobile_rec": [
         "openvino",
         "onnxruntime",
         "paddle_mkldnn",
         "paddle"
       ],
-      "cyrillic_PP-OCRv5_mobile_rec": [
+      "eslav_PP-OCRv5_mobile_rec": [
+        "openvino",
+        "onnxruntime",
+        "paddle_mkldnn",
+        "paddle"
+      ],
+      "th_PP-OCRv5_mobile_rec": [
+        "openvino",
+        "onnxruntime",
+        "paddle_mkldnn",
+        "paddle"
+      ],
+      "el_PP-OCRv5_mobile_rec": [
         "openvino",
         "onnxruntime",
         "paddle_mkldnn",
@@ -2835,13 +2877,13 @@
         "paddle_mkldnn",
         "paddle"
       ],
-      "devanagari_PP-OCRv5_mobile_rec": [
+      "cyrillic_PP-OCRv5_mobile_rec": [
         "openvino",
         "onnxruntime",
         "paddle_mkldnn",
         "paddle"
       ],
-      "ta_PP-OCRv5_mobile_rec": [
+      "devanagari_PP-OCRv5_mobile_rec": [
         "openvino",
         "onnxruntime",
         "paddle_mkldnn",
@@ -2853,6 +2895,12 @@
         "paddle_mkldnn",
         "paddle"
       ],
+      "ta_PP-OCRv5_mobile_rec": [
+        "openvino",
+        "onnxruntime",
+        "paddle_mkldnn",
+        "paddle"
+      ],
       "PP-OCRv5_server_det": [
         "paddle_mkldnn",
         "openvino",
@@ -4275,13 +4323,31 @@
         "paddle_mkldnn",
         "paddle"
       ],
+      "korean_PP-OCRv5_mobile_rec": [
+        "openvino",
+        "onnxruntime",
+        "paddle_mkldnn",
+        "paddle"
+      ],
       "latin_PP-OCRv5_mobile_rec": [
         "openvino",
         "onnxruntime",
         "paddle_mkldnn",
         "paddle"
       ],
-      "cyrillic_PP-OCRv5_mobile_rec": [
+      "eslav_PP-OCRv5_mobile_rec": [
+        "openvino",
+        "onnxruntime",
+        "paddle_mkldnn",
+        "paddle"
+      ],
+      "th_PP-OCRv5_mobile_rec": [
+        "openvino",
+        "onnxruntime",
+        "paddle_mkldnn",
+        "paddle"
+      ],
+      "el_PP-OCRv5_mobile_rec": [
         "openvino",
         "onnxruntime",
         "paddle_mkldnn",
@@ -4293,13 +4359,13 @@
         "paddle_mkldnn",
         "paddle"
       ],
-      "devanagari_PP-OCRv5_mobile_rec": [
+      "cyrillic_PP-OCRv5_mobile_rec": [
         "openvino",
         "onnxruntime",
         "paddle_mkldnn",
         "paddle"
       ],
-      "ta_PP-OCRv5_mobile_rec": [
+      "devanagari_PP-OCRv5_mobile_rec": [
         "openvino",
         "onnxruntime",
         "paddle_mkldnn",
@@ -4311,6 +4377,12 @@
         "paddle_mkldnn",
         "paddle"
       ],
+      "ta_PP-OCRv5_mobile_rec": [
+        "openvino",
+        "onnxruntime",
+        "paddle_mkldnn",
+        "paddle"
+      ],
       "PP-OCRv5_server_det": [
         "paddle_mkldnn",
         "openvino",
@@ -5680,13 +5752,31 @@
         "onnxruntime",
         "paddle"
       ],
+      "korean_PP-OCRv5_mobile_rec": [
+        "paddle_tensorrt_fp16",
+        "tensorrt",
+        "onnxruntime",
+        "paddle"
+      ],
       "latin_PP-OCRv5_mobile_rec": [
         "paddle_tensorrt_fp16",
         "tensorrt",
         "onnxruntime",
         "paddle"
       ],
-      "cyrillic_PP-OCRv5_mobile_rec": [
+      "eslav_PP-OCRv5_mobile_rec": [
+        "paddle_tensorrt_fp16",
+        "tensorrt",
+        "onnxruntime",
+        "paddle"
+      ],
+      "th_PP-OCRv5_mobile_rec": [
+        "paddle_tensorrt_fp16",
+        "tensorrt",
+        "onnxruntime",
+        "paddle"
+      ],
+      "el_PP-OCRv5_mobile_rec": [
         "paddle_tensorrt_fp16",
         "tensorrt",
         "onnxruntime",
@@ -5698,13 +5788,13 @@
         "onnxruntime",
         "paddle"
       ],
-      "devanagari_PP-OCRv5_mobile_rec": [
+      "cyrillic_PP-OCRv5_mobile_rec": [
         "paddle_tensorrt_fp16",
         "tensorrt",
         "onnxruntime",
         "paddle"
       ],
-      "ta_PP-OCRv5_mobile_rec": [
+      "devanagari_PP-OCRv5_mobile_rec": [
         "paddle_tensorrt_fp16",
         "tensorrt",
         "onnxruntime",
@@ -5716,6 +5806,12 @@
         "onnxruntime",
         "paddle"
       ],
+      "ta_PP-OCRv5_mobile_rec": [
+        "paddle_tensorrt_fp16",
+        "tensorrt",
+        "onnxruntime",
+        "paddle"
+      ],
       "PP-OCRv5_server_det": [
         "tensorrt",
         "paddle"
@@ -7089,13 +7185,31 @@
         "onnxruntime",
         "paddle"
       ],
+      "korean_PP-OCRv5_mobile_rec": [
+        "paddle_tensorrt_fp16",
+        "tensorrt",
+        "onnxruntime",
+        "paddle"
+      ],
       "latin_PP-OCRv5_mobile_rec": [
         "paddle_tensorrt_fp16",
         "tensorrt",
         "onnxruntime",
         "paddle"
       ],
-      "cyrillic_PP-OCRv5_mobile_rec": [
+      "eslav_PP-OCRv5_mobile_rec": [
+        "paddle_tensorrt_fp16",
+        "tensorrt",
+        "onnxruntime",
+        "paddle"
+      ],
+      "th_PP-OCRv5_mobile_rec": [
+        "paddle_tensorrt_fp16",
+        "tensorrt",
+        "onnxruntime",
+        "paddle"
+      ],
+      "el_PP-OCRv5_mobile_rec": [
         "paddle_tensorrt_fp16",
         "tensorrt",
         "onnxruntime",
@@ -7107,13 +7221,13 @@
         "onnxruntime",
         "paddle"
       ],
-      "devanagari_PP-OCRv5_mobile_rec": [
+      "cyrillic_PP-OCRv5_mobile_rec": [
         "paddle_tensorrt_fp16",
         "tensorrt",
         "onnxruntime",
         "paddle"
       ],
-      "ta_PP-OCRv5_mobile_rec": [
+      "devanagari_PP-OCRv5_mobile_rec": [
         "paddle_tensorrt_fp16",
         "tensorrt",
         "onnxruntime",
@@ -7125,6 +7239,12 @@
         "onnxruntime",
         "paddle"
       ],
+      "ta_PP-OCRv5_mobile_rec": [
+        "paddle_tensorrt_fp16",
+        "tensorrt",
+        "onnxruntime",
+        "paddle"
+      ],
       "PP-OCRv5_server_det": [
         "tensorrt",
         "onnxruntime",
@@ -8503,13 +8623,31 @@
         "onnxruntime",
         "paddle"
       ],
+      "korean_PP-OCRv5_mobile_rec": [
+        "paddle_tensorrt_fp16",
+        "tensorrt",
+        "onnxruntime",
+        "paddle"
+      ],
       "latin_PP-OCRv5_mobile_rec": [
         "paddle_tensorrt_fp16",
         "tensorrt",
         "onnxruntime",
         "paddle"
       ],
-      "cyrillic_PP-OCRv5_mobile_rec": [
+      "eslav_PP-OCRv5_mobile_rec": [
+        "paddle_tensorrt_fp16",
+        "tensorrt",
+        "onnxruntime",
+        "paddle"
+      ],
+      "th_PP-OCRv5_mobile_rec": [
+        "paddle_tensorrt_fp16",
+        "tensorrt",
+        "onnxruntime",
+        "paddle"
+      ],
+      "el_PP-OCRv5_mobile_rec": [
         "paddle_tensorrt_fp16",
         "tensorrt",
         "onnxruntime",
@@ -8521,13 +8659,13 @@
         "onnxruntime",
         "paddle"
       ],
-      "devanagari_PP-OCRv5_mobile_rec": [
+      "cyrillic_PP-OCRv5_mobile_rec": [
         "paddle_tensorrt_fp16",
         "tensorrt",
         "onnxruntime",
         "paddle"
       ],
-      "ta_PP-OCRv5_mobile_rec": [
+      "devanagari_PP-OCRv5_mobile_rec": [
         "paddle_tensorrt_fp16",
         "tensorrt",
         "onnxruntime",
@@ -8539,6 +8677,12 @@
         "onnxruntime",
         "paddle"
       ],
+      "ta_PP-OCRv5_mobile_rec": [
+        "paddle_tensorrt_fp16",
+        "tensorrt",
+        "onnxruntime",
+        "paddle"
+      ],
       "PP-OCRv5_server_det": [
         "tensorrt",
         "onnxruntime",
@@ -9555,11 +9699,23 @@
         "onnxruntime",
         "paddle"
       ],
+      "korean_PP-OCRv5_mobile_rec": [
+        "onnxruntime",
+        "paddle"
+      ],
       "latin_PP-OCRv5_mobile_rec": [
         "onnxruntime",
         "paddle"
       ],
-      "cyrillic_PP-OCRv5_mobile_rec": [
+      "eslav_PP-OCRv5_mobile_rec": [
+        "onnxruntime",
+        "paddle"
+      ],
+      "th_PP-OCRv5_mobile_rec": [
+        "onnxruntime",
+        "paddle"
+      ],
+      "el_PP-OCRv5_mobile_rec": [
         "onnxruntime",
         "paddle"
       ],
@@ -9567,11 +9723,11 @@
         "onnxruntime",
         "paddle"
       ],
-      "devanagari_PP-OCRv5_mobile_rec": [
+      "cyrillic_PP-OCRv5_mobile_rec": [
         "onnxruntime",
         "paddle"
       ],
-      "ta_PP-OCRv5_mobile_rec": [
+      "devanagari_PP-OCRv5_mobile_rec": [
         "onnxruntime",
         "paddle"
       ],
@@ -9579,6 +9735,10 @@
         "onnxruntime",
         "paddle"
       ],
+      "ta_PP-OCRv5_mobile_rec": [
+        "onnxruntime",
+        "paddle"
+      ],
       "PP-OCRv5_server_det": [
         "paddle"
       ],
@@ -10597,11 +10757,23 @@
         "onnxruntime",
         "paddle"
       ],
+      "korean_PP-OCRv5_mobile_rec": [
+        "onnxruntime",
+        "paddle"
+      ],
       "latin_PP-OCRv5_mobile_rec": [
         "onnxruntime",
         "paddle"
       ],
-      "cyrillic_PP-OCRv5_mobile_rec": [
+      "eslav_PP-OCRv5_mobile_rec": [
+        "onnxruntime",
+        "paddle"
+      ],
+      "th_PP-OCRv5_mobile_rec": [
+        "onnxruntime",
+        "paddle"
+      ],
+      "el_PP-OCRv5_mobile_rec": [
         "onnxruntime",
         "paddle"
       ],
@@ -10609,11 +10781,11 @@
         "onnxruntime",
         "paddle"
       ],
-      "devanagari_PP-OCRv5_mobile_rec": [
+      "cyrillic_PP-OCRv5_mobile_rec": [
         "onnxruntime",
         "paddle"
       ],
-      "ta_PP-OCRv5_mobile_rec": [
+      "devanagari_PP-OCRv5_mobile_rec": [
         "onnxruntime",
         "paddle"
       ],
@@ -10621,6 +10793,10 @@
         "onnxruntime",
         "paddle"
       ],
+      "ta_PP-OCRv5_mobile_rec": [
+        "onnxruntime",
+        "paddle"
+      ],
       "PP-OCRv5_server_det": [
         "onnxruntime",
         "paddle"

+ 3 - 1
setup.py

@@ -59,6 +59,7 @@ BASE_DEP_SPECS = {
     "pycocotools": "<= 2.0.8",  # pycocotools upgrade incompatible since 2.0.9
     "pydantic": ">= 2",
     "pypdfium2": ">= 4",
+    "python-bidi": "",
     "PyYAML": "== 6.0.2",
     "regex": "",
     "requests": "",
@@ -163,6 +164,7 @@ EXTRAS = {
             "opencv-contrib-python",
             "pyclipper",
             "pypdfium2",
+            "python-bidi",
             "shapely",
         ],
         "ocr": [
@@ -176,6 +178,7 @@ EXTRAS = {
             "premailer",
             "pyclipper",
             "pypdfium2",
+            "python-bidi",
             "regex",
             "safetensors",
             "scikit-learn",
@@ -183,7 +186,6 @@ EXTRAS = {
             "shapely",
             "tiktoken",
             "tokenizers",
-            "python-bidi",
         ],
         "speech": [
             "ftfy",