pdf_to_markdown 接口平滑迁移到新版 xParse API,并介绍新增的异步处理能力。
文中所有参数映射、字段名与默认值均以 TextIn 官方接口文档为准。
为什么迁移
新版 xParse API 对旧版pdf_to_markdown 做了全面升级,核心优势:
更轻量的数据结构
标准化的 Element 模型,语义类型清晰(Title / NarrativeText / Table / Image / Formula),JSON 体积更小
标准输入输出协议
统一的请求配置(config)与响应结构(schema),便于集成与迁移
引擎可替换
支持 TextIn / GUI 多引擎,可按场景选最优或对比效果
异步处理能力
新增异步接口,适合大文件(建议 >10 页)和批量场景,避免 HTTP 超时;支持 Webhook 回调
坐标系标准化
归一化坐标(0~1),不再依赖 dpi 参数
更丰富的内嵌元素
行内公式、手写体、复选框(checkbox)、内嵌图片
接口变更总览
入参迁移指南
请求方式变更
- 旧版:Query String + 二进制 Body
- 新版:multipart/form-data + config JSON
新版 config 结构总览
新版参数不再是扁平的 Query String,而是放在 form-data 的config 字段里。该字段的值是一个 JSON,内部又分四个区块(注意:其中一个区块也叫 config,下文以「config 字段值 → config 区块」指代,切勿写成 {"config":{"config":{...}}} 之外的多层嵌套):
关键认知:旧版的
parse_mode、formula_level 等”引擎行为参数”在新版并未消失,而是下沉到了 config 区块的 engine_params 里。它们与 capabilities 里的”返回内容开关”是两个不同维度,迁移时不要混淆。(注:dpi 是例外,新版已彻底移除。)参数字段映射表(核心)
下表已按官方文档逐项核对。「新版参数」列给出在config 字段值内的相对路径(engine_params 即 config 区块下的 engine_params)。
get_image 迁移注意:旧版
get_image 有 none/page/objects/both 四档语义(整页图 / 子图 / 两者)。新版通过组合 capabilities.pages 和 capabilities.include_image_data 实现:- 当
pages=true时,include_image_data=true/false对应get_image=both/page - 当
pages=false时,include_image_data=true/false对应get_image=objects/none
engine_params.image_output_type(url/base64)控制。新增能力(仅新版支持)
出参迁移指南
顶层结构变化
- 旧版
- 新版
主体数据字段映射
元素结构变化(detail → elements)
旧版detail[] 与新版 elements[] 的字段对照:
新版元素示例
坐标系与页码换算
坐标换算
页码说明
- 旧版:
page_id,1-based(第一页为 1) - 新版:
page_number,1-based(第一页为 1)
归一化
coordinates 8 个值的点序为:左上 → 右上 → 右下 → 左下。异步接口使用指南
旧版不支持异步。新版异步接口适合大文件(建议 >10 页)或批量处理,避免 HTTP 连接超时。接口概览
任务状态枚举
异步提交成功仅返回
{"data": {"job_id": "..."}},完整解析结果需通过 result_url 二次下载。result_url 返回的数据结构与同步接口 data 一致。异步调用完整流程(Python)
Webhook 回调(推荐生产环境)
提交任务时附带webhook 参数,任务完成/失败后系统主动 POST 推送,无需轮询:
完整代码迁移示例
- 旧版(pdf_to_markdown)
- 新版(xparse 同步)——等效替换
迁移检查清单
1
更新请求 URL
/ai/service/v1/pdf_to_markdown → /api/v1/xparse/parse/sync2
更改请求方式
Query String + 二进制 Body →
multipart/form-data + config JSON3
转换参数类型
整数开关(0/1)全部改为 boolean(false/true)
4
显式声明必要参数
⚠️ 显式声明
⚠️ 显式声明
capabilities.include_image_data: true(默认已反转)⚠️ 显式声明
capabilities.pages: true(默认已反转)5
迁移引擎参数
parse_mode / formula_level / image_output_type 迁移到 config 区块的 engine_params(非 capabilities)6
评估引擎选择
评估是否需要
force_engine 选择特定引擎(新增能力,textin引擎下可同时配置 parse_mode )7
更新响应解析
- 响应根节点:
result→data total_page_number→data.metadata.page_countvalid_page_number→data.success_countdetail→data.elements(paragraph_id→element_id;type由 “paragraph” 等改为语义字符串)catalog→data.title_tree
8
转换坐标系统
坐标:
position(绝对像素)→ coordinates(归一化,× page_width/height 换算)9
更新表格参数
table_flavor='md' → table_view='markdown';‘none’ 已移除,需调整逻辑10
更新图片参数
image_output_type:取值由 base64str/default 改为 url/base6411
处理已移除参数
- 如用
get_excel:新版不支持 Excel 输出,需另寻替代 - 如用
raw_ocr:近似改用capabilities.include_char_details(语义非完全等价,需验证) dpi:新版无对应参数,坐标改为归一化输出
12
增强错误处理
所有响应在读取
["data"] 前先校验 HTTP 状态与业务 code,避免鉴权/参数错误变成 KeyError13
考虑异步接口
大文件(建议 >10 页)评估迁移至异步接口
14
配置 Webhook
生产环境异步场景配置 Webhook 回调替代轮询

