Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
cd8654b
update paddle-tensorrt desc (#4472)
zhang-prog Aug 20, 2025
11f8942
support save block_id and block_order in parsing_res_list (#4463)
changdazhou Aug 21, 2025
d214a7e
update pipeline benchmark table header (#4474)
zhang-prog Aug 21, 2025
1eff3be
fix slice bug (#4470)
supotato6 Aug 22, 2025
30621ce
Add GPU compatibility check (#4499)
timminator Aug 25, 2025
260b7ce
support format block content (#4507)
changdazhou Aug 27, 2025
34e23b1
Add missing license header and update PP-StructureV3 server interface…
Bobholamovic Aug 27, 2025
768f524
bugfix (#4493)
changdazhou Aug 28, 2025
b85e4a6
don't update when model files cache are exist. (#4519)
TingquanGao Aug 29, 2025
33a2d6b
[Fix] Fix high-performance serving bugs (#4482)
Bobholamovic Aug 29, 2025
0f4f4bb
fix special issue in formula (#4469)
liuhongen1234567 Aug 29, 2025
a70eca0
dcu support cinn (#4527)
ZhangX-21 Sep 2, 2025
8e1b525
fix the iteration method for external_layout_det_results (#4550)
zhang-prog Sep 11, 2025
4127933
fix the iteration method (#4576)
zhang-prog Sep 23, 2025
e378f36
Support PaddleOCR-VL PipeLine (#4608)
changdazhou Oct 15, 2025
3d5a7b9
add ar models2 (#4604)
zhangyubo0722 Oct 15, 2025
a3b9c4b
support PaddleOCR-VL (#4609)
TingquanGao Oct 16, 2025
bd76f95
fix PaddleOCR-VL name (#4610)
zhang-prog Oct 16, 2025
a183f81
add PP-DocLayoutV2 in official models (#4612)
changdazhou Oct 16, 2025
beefe5c
Fix bugs and update for v3.3 (#4613)
Bobholamovic Oct 16, 2025
7d437b3
Fix bugs (#4616)
Bobholamovic Oct 16, 2025
9c29235
fix PaddleOCR-VL name - local (#4617)
zhang-prog Oct 16, 2025
cb0fe54
Do not use direct links (#4618)
Bobholamovic Oct 16, 2025
3e1f5ea
Fix mkdocs.yml (#4619)
Bobholamovic Oct 16, 2025
4b4adf8
Fix typos (#4621)
Bobholamovic Oct 16, 2025
e26ed5d
support concatenate_markdown_pages (#4622)
changdazhou Oct 16, 2025
4704ea5
PaddleOCR-VL, PP-DocLayoutV2 has been upload to models hosting platform
TingquanGao Oct 16, 2025
a6b1194
genai plugin: add wheel package (#4626)
zhang-prog Oct 16, 2025
439ce72
bugfix: map PaddleOCR-VL-0.9B to PaddleOCR-VL
TingquanGao Oct 16, 2025
eefaf3d
use FlashAttention 2.8.2 (#4631)
zhang-prog Oct 17, 2025
b6f8ba5
Fix HPS bugs (#4633)
Bobholamovic Oct 17, 2025
7148d3d
fix typo (#4634)
zhang-prog Oct 17, 2025
b09e368
Cap langchain version
Bobholamovic Oct 20, 2025
c2c65e3
tip model source
TingquanGao Oct 17, 2025
4b4f8fb
forward compatibility
TingquanGao Oct 20, 2025
597c0f9
[Docs] Add missing param (#4648)
Bobholamovic Oct 20, 2025
7968049
Add PP-DocLayoutV2 to HPI info (#4643)
Bobholamovic Oct 20, 2025
fb83c7a
Fix unboundlocalerror (#4641)
Bobholamovic Oct 20, 2025
bdfccac
Fix assemble script (#4650)
Bobholamovic Oct 20, 2025
8ae1da5
update doc
changdazhou Oct 22, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/deploy_docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Develop Docs
on:
push:
branches: #设置更新哪个分支会更新站点
- release/3.2
- release/3.3
permissions:
contents: write
jobs:
Expand All @@ -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
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ repos:
- id: isort
args:
- --profile=black
exclude: ^deploy/ultra-infer/python/ultra_infer/
files: ^paddlex/

# check license
- repo: local
Expand Down
26 changes: 19 additions & 7 deletions .precommit/check_imports.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,13 @@
from stdlib_list import stdlib_list

sys.path.append(str(pathlib.Path(__file__).parent.parent))
from setup import DEP_SPECS, REQUIRED_DEPS
from setup import REQUIRED_DEPS

# NOTE: We do not use `importlib.metadata.packages_distributions` here because
# 1. It is supported only in Python 3.10+.
# 2. It requires the packages to be installed, but we are doing a static check.
MOD_TO_DEP = {
"aistudio_sdk": "aistudio_sdk",
"aistudio_sdk": "aistudio-sdk",
"aiohttp": "aiohttp",
"baidubce": "bce-python-sdk",
"bs4": "beautifulsoup4",
Expand All @@ -43,9 +43,10 @@
"fastapi": "fastapi",
"filelock": "filelock",
"filetype": "filetype",
"flash_attn": "flash-attn",
"ftfy": "ftfy",
"GPUtil": "GPUtil",
"huggingface_hub": "huggingface_hub",
"huggingface_hub": "huggingface-hub",
"imagesize": "imagesize",
"jinja2": "Jinja2",
"joblib": "joblib",
Expand All @@ -61,6 +62,7 @@
"cv2": "opencv-contrib-python",
"openpyxl": "openpyxl",
"packaging": "packaging",
"paddle2onnx": "paddle2onnx",
"pandas": "pandas",
"PIL": "pillow",
"premailer": "premailer",
Expand All @@ -74,22 +76,28 @@
"regex": "regex",
"requests": "requests",
"ruamel.yaml": "ruamel.yaml",
"safetensors": "safetensors",
"skimage": "scikit-image",
"sklearn": "scikit-learn",
"sentencepiece": "sentencepiece",
"sglang": "sglang",
"shapely": "shapely",
"soundfile": "soundfile",
"starlette": "starlette",
"tiktoken": "tiktoken",
"tokenizers": "tokenizers",
"torch": "torch",
"tqdm": "tqdm",
"transformers": "transformers",
"typing_extensions": "typing-extensions",
"ujson": "ujson",
"uvicorn": "uvicorn",
"uvloop": "uvloop",
"vllm": "vllm",
"xformers": "xformers",
"yarl": "yarl",
"bidi": "python-bidi",
}
assert (
set(MOD_TO_DEP.values()) == DEP_SPECS.keys()
), f"`MOD_TO_DEP` should be updated to match `DEP_SPECS`. Symmetric difference: {set(MOD_TO_DEP.values()) ^ DEP_SPECS.keys()}"
MOD_PATTERN = re.compile(
rf"^(?:{'|'.join([re.escape(mod) for mod in MOD_TO_DEP])})(?=\.|$)"
)
Expand All @@ -107,7 +115,11 @@
"paddle3d",
"paddlevideo",
}
MANUALLY_MANAGED_OPTIONAL_HEAVY_MODS = {"paddle_custom_device", "ultra_infer"}
MANUALLY_MANAGED_OPTIONAL_HEAVY_MODS = {
"paddle_custom_device",
"ultra_infer",
"fastdeploy",
}


def check(file_path):
Expand Down
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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**,新增能力如下:

- **部署能力升级:**
Expand Down
4 changes: 4 additions & 0 deletions README_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -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:**
Expand Down
31 changes: 31 additions & 0 deletions api_examples/pipelines/test_pp_ocr_vl.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Copyright (c) 2024 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from paddlex import create_pipeline

pipeline = create_pipeline(pipeline="PaddleOCR-VL")

output = pipeline.predict(
"/paddle/project/PaddleX/demo_paper.png",
use_doc_orientation_classify=False,
use_doc_unwarping=False,
)

for res in output:
res.print()
res.save_to_img("./output")
res.save_to_json("./output")
res.save_to_xlsx("./output")
res.save_to_html("./output")
res.save_to_markdown("./output", pretty=False)
18 changes: 9 additions & 9 deletions deploy/hps/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ comments: true

**请注意,本项目依赖于如下环境配置:**

- **CPU 架构**:x86-64
- **操作系统**:Linux
- **Docker 版本**:`>= 20.10.0`,用于镜像构建和部署
- **CPU 架构**:x86-64
- **Docker Engine 版本**:`>= 20.10.0`,用于镜像构建和部署

本文档主要介绍如何基于本项目提供的脚本完成高稳定性服务化部署环境搭建与物料打包。整体流程分为两个阶段:

Expand Down Expand Up @@ -48,7 +48,7 @@ comments: true
为了使构建结果的可重现性更强,本步骤将依赖锁定到精确版本。请切换至 `server_env` 目录执行如下脚本:

```bash
./script/freeze_requirements.sh
./scripts/freeze_requirements.sh
```

该脚本调用 `pip-tools compile` 解析依赖源文件,并最终生成一系列 `.txt` 文件(如 `requirements/gpu.txt`、`requirements/cpu.txt` 等),这些文件将为 [1.3 镜像构建](./README.md#13-镜像构建) 提供依赖版本约束。
Expand Down Expand Up @@ -85,7 +85,7 @@ comments: true
对于 Triton Server,项目使用预先编译好的版本,将在构建镜像时自动下载,无需手动下载。以构建 GPU 镜像为例,在 `server_env` 目录下执行以下命令:

```bash
./scripts/build_deployment_image.sh -k gpu -t latest-gpu
./scripts/build_deployment_image.sh -k gpu -t latest-gpu
```

构建镜像的参数配置项包括
Expand Down Expand Up @@ -118,10 +118,10 @@ comments: true
执行成功后,命令行会输出以下提示信息:

```text
=> => exporting to image
=> => exporting layers
=> => writing image sha256:ba3d0b2b079d63ee0239a99043fec7e25f17bf2a7772ec2fc80503c1582b3459
=> => naming to ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/hps:latest-gpu
=> => exporting to image
=> => exporting layers
=> => writing image sha256:ba3d0b2b079d63ee0239a99043fec7e25f17bf2a7772ec2fc80503c1582b3459
=> => naming to ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/hps:latest-gpu
```

如需批量构建 GPU 和 CPU 镜像,可以执行以下命令:
Expand Down Expand Up @@ -172,7 +172,7 @@ comments: true
</tbody>
</table>

调用后存储到当前目录 `/output` 路径下。
调用后存储到当前目录 `output` 路径下。

## 3.FAQ

Expand Down
22 changes: 11 additions & 11 deletions deploy/hps/README_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ This project provides a high-stability serving solution, consisting of two main

**Note: This project relies on the following environment configurations:**

- **Operating System**: Linux
- **Docker Version**: `>= 20.10.0` (Used for image building and deployment)
- **CPU Architecture**: x86-64
- **Operating System**: Linux
- **Docker Engine Version**: `>= 20.10.0` (Used for image building and deployment)

This document mainly introduces how to set up a high stability serving environment and package related materials using the scripts provided by this project. The overall process consists of two main stages:

Expand All @@ -32,13 +32,13 @@ Image Building Steps:

1. Build a requirement collection image. (Optional)
2. Freeze requirement versions to improve the reproducibility of deployment image building. (Optional)
3. Build the deployment image based on the frozen requirement information to generate the final deployment image and provide image support for subsequent pipeline execution.
3. Build the deployment image based on the frozen requirement information to generate the final deployment image and provide image support for subsequent pipeline execution.

**If you do not need to modify requirement-related information, you can skip to [1.3 Building Image](./README_en.md#13-building-image) to build the deployment image using cached requirement information.**

## 1.1 Build the Requirement Collection Image (Optional)

Navigate to the `server_env` directory and run follow script for building the requirement collection image in this directory.
Navigate to the `server_env` directory and run follow script for building the requirement collection image in this directory.

```bash
./scripts/prepare_rc_image.sh
Expand Down Expand Up @@ -121,10 +121,10 @@ If the basic image cannot be pulled, please refer to the solutions in the [FAQ](
After run successfully, the command line will display the following message:

```text
=> => exporting to image
=> => exporting layers
=> => writing image sha256:ba3d0b2b079d63ee0239a99043fec7e25f17bf2a7772ec2fc80503c1582b3459
=> => naming to ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/hps:latest-gpu
=> => exporting to image
=> => exporting layers
=> => writing image sha256:ba3d0b2b079d63ee0239a99043fec7e25f17bf2a7772ec2fc80503c1582b3459
=> => naming to ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlex/hps:latest-gpu
```

To build both GPU and CPU images run the following command:
Expand All @@ -140,7 +140,7 @@ This stage mainly introduces how to package pipeline materials. This function is
- `client`: Responsible for invoking the model services.
- `server`: Deployed using the images built in [1. Image Building](./README_en.md#1-image-building), serving as the runtime environment for model services.

Before packaging the pipeline materials, you need to switch to the `sdk` directory and run the `scripts/assemble.sh` script in this directory for packaging. For example, to package the general OCR pipeline, run:
Before packaging the pipeline materials, you need to switch to the `sdk` directory and run the `scripts/assemble.sh` script in this directory for packaging. For example, to package the general OCR pipeline, run:

```bash
./scripts/assemble.sh OCR
Expand Down Expand Up @@ -175,7 +175,7 @@ The parameters for the packaging script are described as follows:
</tbody>
</table>

After run successfully, the packaged will be stored in the `/output` directory.
After run successfully, the packaged will be stored in the `output` directory.

## 3. FAQ

Expand All @@ -191,4 +191,4 @@ When running the image build scripts, you can use the `-p` parameter to specify

```bash
./scripts/prepare_rc_image.sh -p https://pypi.tuna.tsinghua.edu.cn/simple
```
```
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
# Copyright (c) 2025 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

from importlib import metadata as _metadata

from .request import triton_request
Expand Down
Original file line number Diff line number Diff line change
@@ -1,2 +1,16 @@
# Copyright (c) 2025 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

INPUT_NAME = "input"
OUTPUT_NAME = "output"
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
# Copyright (c) 2025 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import json

import numpy as np
Expand Down
14 changes: 14 additions & 0 deletions deploy/hps/sdk/paddlex-hps-client/src/paddlex_hps_client/utils.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
# Copyright (c) 2025 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import base64
import mimetypes
import shutil
Expand Down
17 changes: 16 additions & 1 deletion deploy/hps/sdk/pipelines/3d_bev_detection/client/client.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,27 @@
#!/usr/bin/env python

# Copyright (c) 2025 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import argparse
import pprint
import sys

from paddlex_hps_client import triton_request, utils
from tritonclient import grpc as triton_grpc

from paddlex_hps_client import triton_request, utils


def main():
parser = argparse.ArgumentParser()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,17 @@
# Copyright (c) 2025 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import os
from typing import Any, Dict, List

Expand Down
Loading