Skip to content
DemoFAQ

通过回调使用自定义 AI 模型

概述

从 SDK v4.1.0 开始,通过 ConvertCallback 上的回调插入自己的 AI 引擎进行 OCR、版面分析和表格识别。每种能力使用触发器/获取器对:

能力触发器设置方法结果获取器设置方法触发条件
OCRset_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 模型”