通过回调使用自定义 AI 模型
概述
从 SDK v4.1.0 开始,通过 ConvertCallback 上的回调插入自己的 AI 引擎进行 OCR、版面分析和表格识别。每种能力使用触发器/获取器对:
| 能力 | 触发器设置方法 | 结果获取器设置方法 | 触发条件 |
|---|---|---|---|
| OCR | set_ocr(fn) | set_get_ocr_result(fn) | OCR 启用时 |
| 版面分析 | set_layout(fn) | set_get_layout_result(fn) | 版面分析或 OCR 启用时 |
| 表格识别 | set_table(fn) | set_get_table_result(fn) | 表格识别启用且检测到表格时 |
触发器签名 fn(image_path: str) -> bool,获取器签名 fn() -> str。两者必须同时设置。
示例
python
from compdf import LibraryManager, ConvertOptions, ConvertCallback, CPDFConversion
LibraryManager.license_verify("LICENSE_KEY", "device_id", "app_id")
LibraryManager.initialize("resource")
callback = ConvertCallback()
def my_ocr(image_path: str) -> bool:
# 运行 OCR 引擎,缓存 JSON 结果
return True
def my_ocr_result() -> str:
return "{}" # 返回 OCR JSON
def my_layout(image_path: str) -> bool:
return True
def my_layout_result() -> str:
return "{}"
def my_table(image_path: str) -> bool:
return True
def my_table_result() -> str:
return "{}"
callback.set_ocr(my_ocr)
callback.set_get_ocr_result(my_ocr_result)
callback.set_layout(my_layout)
callback.set_get_layout_result(my_layout_result)
callback.set_table(my_table)
callback.set_get_table_result(my_table_result)
options = ConvertOptions()
options.enable_ocr = True
options.enable_ai_layout = True
options.languages = [OCRLanguage.ENGLISH]
CPDFConversion.start_pdf_to_word("input.pdf", "", "output.docx", options, callback)JSON 模式
OCR、版面分析和表格识别的 JSON 模式与 C SDK 相同,请参见 C 指南中的“通过回调使用自定义 AI 模型”。