Back to Paddleocr

PaddleOCR 官方 API Python SDK

docs/version3.x/inference_deployment/serving/paddleocr_official_api/python.md

3.7.05.4 KB
Original Source

PaddleOCR 官方 API Python SDK

Python SDK 通过 paddleocr 包中的 PaddleOCRClientAsyncPaddleOCRClient 调用 PaddleOCR 官方 API。它提交 OCR 或文档解析任务到官方托管服务,不运行本地推理,也不加载本地模型。

安装与认证

先按 安装 paddleocr 安装 Python 包。安装 paddleocr 本体后即可使用此功能,无需安装额外依赖组。

请先在 AI Studio Access Token 页面 获取访问令牌。

bash
export PADDLEOCR_ACCESS_TOKEN="your-access-token"

PaddleOCRClient() 默认读取 PADDLEOCR_ACCESS_TOKEN,也支持 PaddleOCRClient(token="...")。未提供 token 时会抛出 AuthError

快速开始

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()

传入本地文件时使用 file_pathfile_urlfile_path 必须二选一。

公共 API

Python SDK 常用公共方法包括:

  • ocr(...):提交 OCR 任务,等待完成并返回 OCR 结果。
  • parse_document(...):提交文档解析任务,等待完成并返回文档解析结果。
  • submit_ocr(...):只提交 OCR 任务,返回任务对象。
  • submit_document_parsing(...):只提交文档解析任务,返回任务对象。
  • get_status(job_id):执行一次非阻塞状态查询,不等待完成。
  • wait_ocr_result(job):等待 OCR 任务完成并解析结果。
  • wait_document_parsing_result(job):等待文档解析任务完成并解析结果。
  • save_resource(resource_url, destination):保存单个资源 URL。
  • save_ocr_result_resources(result, destination):保存 OCR 结果对象引用的资源。
  • save_document_parsing_result_resources(result, destination):保存文档解析结果对象引用的资源。

异步客户端 AsyncPaddleOCRClient 暴露上述任务操作和资源保存方法的异步版本。

模型选择

表中的 Model 枚举是官方 API 模型名字符串的类型安全写法,提交请求时会转换为对应的实际模型名。也可以直接传入官方 API 模型名字符串,例如 model="PaddleOCR-VL-1.6"

任务适用接口默认模型可选模型参数类型
OCRocrsubmit_ocrwait_ocr_resultModel.PP_OCRV6Model.PP_OCRV5Model.PP_OCRV6OCROptions
文档解析parse_documentsubmit_document_parsingwait_document_parsing_resultModel.PADDLE_OCR_VL_16Model.PP_STRUCTURE_V3Model.PADDLE_OCR_VLModel.PADDLE_OCR_VL_15Model.PADDLE_OCR_VL_16选择 PP-StructureV3 时传入 PPStructureV3Options;选择 PaddleOCR-VL 系列模型时传入 PaddleOCRVLOptions

配置与参数

客户端配置

python
client = PaddleOCRClient(
    request_timeout=300.0,
    poll_timeout=600.0,
)

request_timeout 限制一次 HTTP 请求,包括提交、查询状态和下载结果资源。poll_timeout 限制 ocrparse_documentwait_ocr_resultwait_document_parsing_result 的总等待时间。

通过环境变量 PADDLEOCR_BASE_URLbase_url 参数指定自定义服务地址:

python
client = PaddleOCRClient(base_url="https://my-proxy.com/paddle")

请求参数

SDK 的参数名使用 Python 惯用的 snake_case,提交请求时自动转换为官方 API 的 camelCase。只需传入非 None 的字段,未设置的字段使用服务端默认值。完整字段定义见各 Options 类型源码或官方 API 参考。

OCROptions(常用字段)

字段类型说明
use_doc_orientation_classifybool文档方向分类
use_doc_unwarpingbool文档扭曲矫正
visualizebool是否返回可视化结果图

PPStructureV3Options(常用字段)

字段类型说明
use_table_recognitionbool表格识别
use_formula_recognitionbool公式识别
use_chart_recognitionbool图表识别
prettify_markdownboolMarkdown 美化

PaddleOCRVLOptions(常用字段)

字段类型说明
use_layout_detectionbool版面检测
use_chart_recognitionbool图表识别
temperaturefloat采样温度
prettify_markdownboolMarkdown 美化

错误处理

所有 SDK 错误都继承自 PaddleOCRAPIError,常见类型包括 AuthErrorInvalidRequestErrorRateLimitErrorServiceUnavailableErrorAPIErrorNetworkErrorJobFailedErrorRequestTimeoutErrorPollTimeoutErrorResponseFormatErrorResultParseError

批量任务查询

提交任务时可传入 batch_id。之后可使用 client.get_batch_status("batch-id") 查询该批次下各任务的状态、进度和结果 URL。

官方 API 参考

配额与错误码