chore: import upstream snapshot with attribution
Build/Publish Develop Docs / deploy (push) Failing after 1s
PaddleOCR Code Style Check / check-code-style (push) Failing after 1s
PaddleOCR PR Tests GPU / detect-changes (push) Failing after 1s
PaddleOCR PR Tests / detect-changes (push) Failing after 1s
PaddleOCR PR Tests GPU / test-pr-gpu (push) Has been cancelled
PaddleOCR PR Tests / test-pr (push) Has been cancelled
PaddleOCR PR Tests GPU / test-pr-gpu-impl (push) Has been cancelled
PaddleOCR PR Tests / test-pr-python (3.13) (push) Has been cancelled
PaddleOCR PR Tests / test-pr-python (3.8) (push) Has been cancelled
PaddleOCR PR Tests / test-pr-python (3.9) (push) Has been cancelled
Build/Publish Develop Docs / deploy (push) Failing after 1s
PaddleOCR Code Style Check / check-code-style (push) Failing after 1s
PaddleOCR PR Tests GPU / detect-changes (push) Failing after 1s
PaddleOCR PR Tests / detect-changes (push) Failing after 1s
PaddleOCR PR Tests GPU / test-pr-gpu (push) Has been cancelled
PaddleOCR PR Tests / test-pr (push) Has been cancelled
PaddleOCR PR Tests GPU / test-pr-gpu-impl (push) Has been cancelled
PaddleOCR PR Tests / test-pr-python (3.13) (push) Has been cancelled
PaddleOCR PR Tests / test-pr-python (3.8) (push) Has been cancelled
PaddleOCR PR Tests / test-pr-python (3.9) (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,129 @@
|
||||
---
|
||||
comments: true
|
||||
---
|
||||
|
||||
# PaddleOCR official API Python SDK
|
||||
|
||||
The Python SDK calls the PaddleOCR official API through `PaddleOCRClient` and `AsyncPaddleOCRClient` in the `paddleocr` package. It submits OCR or document parsing jobs to hosted services. It does not run local inference or load local models.
|
||||
|
||||
## Install And Authenticate
|
||||
|
||||
First install the Python package by following [Install paddleocr](../../../installation.en.md#11-install-paddleocr). After installing the core `paddleocr` package, this feature is available out of the box — no additional dependency groups are required.
|
||||
|
||||
First obtain an access token from the [AI Studio Access Token page](https://aistudio.baidu.com/account/accessToken).
|
||||
|
||||
```bash
|
||||
export PADDLEOCR_ACCESS_TOKEN="your-access-token"
|
||||
```
|
||||
|
||||
`PaddleOCRClient()` reads `PADDLEOCR_ACCESS_TOKEN` by default and also accepts `PaddleOCRClient(token="...")`. Missing credentials raise `AuthError`.
|
||||
|
||||
## Quick Start
|
||||
|
||||
```python
|
||||
from paddleocr import PaddleOCRClient, Model
|
||||
|
||||
client = PaddleOCRClient()
|
||||
result = client.ocr(
|
||||
file_url="https://example.com/invoice.pdf",
|
||||
model=Model.PP_OCRV5,
|
||||
)
|
||||
print(result.job_id, len(result.pages))
|
||||
client.close()
|
||||
```
|
||||
|
||||
Use `file_path` for a local file. Pass exactly one of `file_url` or `file_path`.
|
||||
|
||||
## Public API
|
||||
|
||||
Common Python public methods include:
|
||||
|
||||
- `ocr(...)`: submit an OCR job, wait for completion, and return an OCR result.
|
||||
- `parse_document(...)`: submit a document parsing job, wait for completion, and return a document parsing result.
|
||||
- `submit_ocr(...)`: submit only an OCR job and return a job object.
|
||||
- `submit_document_parsing(...)`: submit only a document parsing job and return a job object.
|
||||
- `get_status(job_id)`: perform one non-blocking status request without waiting for completion.
|
||||
- `wait_ocr_result(job)`: wait for an OCR job and parse its result.
|
||||
- `wait_document_parsing_result(job)`: wait for a document parsing job and parse its result.
|
||||
- `save_resource(resource_url, destination)`: save one resource URL.
|
||||
- `save_ocr_result_resources(result, destination)`: save resources referenced by an OCR result object.
|
||||
- `save_document_parsing_result_resources(result, destination)`: save resources referenced by a document parsing result object.
|
||||
|
||||
`AsyncPaddleOCRClient` exposes async versions of these job operations and resource-saving methods.
|
||||
|
||||
## Choose Models
|
||||
|
||||
The `Model` enum values in the table are type-safe aliases for the official API model-name strings. They are serialized to the corresponding model name when the request is submitted. You can also pass the official API model-name string directly, for example `model="PaddleOCR-VL-1.6"`.
|
||||
|
||||
| Task | Interfaces | Default model | Supported models | Option type |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| OCR | `ocr`, `submit_ocr`, `wait_ocr_result` | `Model.PP_OCRV6` | `Model.PP_OCRV5`, `Model.PP_OCRV6` | `OCROptions` |
|
||||
| Document parsing | `parse_document`, `submit_document_parsing`, `wait_document_parsing_result` | `Model.PADDLE_OCR_VL_16` | `Model.PP_STRUCTURE_V3`, `Model.PADDLE_OCR_VL`, `Model.PADDLE_OCR_VL_15`, `Model.PADDLE_OCR_VL_16` | Use `PPStructureV3Options` with `PP-StructureV3`, and `PaddleOCRVLOptions` with PaddleOCR-VL models. |
|
||||
|
||||
## Configuration
|
||||
|
||||
### Client Configuration
|
||||
|
||||
```python
|
||||
client = PaddleOCRClient(
|
||||
request_timeout=300.0,
|
||||
poll_timeout=600.0,
|
||||
)
|
||||
```
|
||||
|
||||
`request_timeout` limits one HTTP request, including submit, status, and result-resource downloads. `poll_timeout` limits the total wait time for `ocr`, `parse_document`, `wait_ocr_result`, and `wait_document_parsing_result`.
|
||||
|
||||
Override the service base URL via the `PADDLEOCR_BASE_URL` environment variable or the `base_url` parameter:
|
||||
|
||||
```python
|
||||
client = PaddleOCRClient(base_url="https://my-proxy.com/paddle")
|
||||
```
|
||||
|
||||
### Request Options
|
||||
|
||||
SDK parameter names use Python-idiomatic snake_case, automatically converted to camelCase on submission. Only non-`None` fields are sent; omitted fields use server-side defaults. See the Options class source or Official API Reference for complete field definitions.
|
||||
|
||||
#### OCROptions (common fields)
|
||||
|
||||
| Field | Type | Description |
|
||||
|-------|------|-------------|
|
||||
| `use_doc_orientation_classify` | bool | Document orientation classification |
|
||||
| `use_doc_unwarping` | bool | Document unwarping |
|
||||
| `visualize` | bool | Return visualization images |
|
||||
|
||||
#### PPStructureV3Options (common fields)
|
||||
|
||||
| Field | Type | Description |
|
||||
|-------|------|-------------|
|
||||
| `use_table_recognition` | bool | Table recognition |
|
||||
| `use_formula_recognition` | bool | Formula recognition |
|
||||
| `use_chart_recognition` | bool | Chart recognition |
|
||||
| `prettify_markdown` | bool | Markdown prettification |
|
||||
|
||||
#### PaddleOCRVLOptions (common fields)
|
||||
|
||||
| Field | Type | Description |
|
||||
|-------|------|-------------|
|
||||
| `use_layout_detection` | bool | Layout detection |
|
||||
| `use_chart_recognition` | bool | Chart recognition |
|
||||
| `temperature` | float | Sampling temperature |
|
||||
| `prettify_markdown` | bool | Markdown prettification |
|
||||
|
||||
## Error Handling
|
||||
|
||||
All SDK errors inherit from `PaddleOCRAPIError`. Common typed errors include `AuthError`, `InvalidRequestError`, `RateLimitError`, `ServiceUnavailableError`, `APIError`, `NetworkError`, `JobFailedError`, `RequestTimeoutError`, `PollTimeoutError`, `ResponseFormatError`, and `ResultParseError`.
|
||||
|
||||
## Batch Status
|
||||
|
||||
When submitting jobs, pass `batch_id`. Later, use `client.get_batch_status("batch-id")` to inspect each job's state, progress, and result URL in that batch.
|
||||
|
||||
## Official API Reference
|
||||
|
||||
- [PP-OCRv5 API](https://ai.baidu.com/ai-doc/AISTUDIO/Dmh4onssk)
|
||||
- [PP-StructureV3 API](https://ai.baidu.com/ai-doc/AISTUDIO/7mfz6dgx9)
|
||||
- [PaddleOCR-VL API](https://ai.baidu.com/ai-doc/AISTUDIO/Vmkz2nz1p)
|
||||
- [PaddleOCR-VL-1.5 API](https://ai.baidu.com/ai-doc/AISTUDIO/fml7mozw5)
|
||||
|
||||
## Quota and Error Codes
|
||||
|
||||
- [API Quota Rules and Error Code Description](https://ai.baidu.com/ai-doc/AISTUDIO/pmjcld5qm)
|
||||
Reference in New Issue
Block a user