Skip to main content
本文档帮助你从旧版 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)、内嵌图片

接口变更总览


入参迁移指南

请求方式变更

新版 config 结构总览

新版参数不再是扁平的 Query String,而是放在 form-data 的 config 字段里。该字段的值是一个 JSON,内部又分四个区块(注意:其中一个区块也叫 config,下文以「config 字段值 → config 区块」指代,切勿写成 {"config":{"config":{...}}} 之外的多层嵌套):
关键认知:旧版的 parse_modeformula_level 等”引擎行为参数”在新版并未消失,而是下沉到了 config 区块的 engine_params 里。它们与 capabilities 里的”返回内容开关”是两个不同维度,迁移时不要混淆。(注:dpi 是例外,新版已彻底移除。)

参数字段映射表(核心)

下表已按官方文档逐项核对。「新版参数」列给出在 config 字段值内的相对路径(engine_paramsconfig 区块下的 engine_params)。
get_image 迁移注意:旧版 get_image 有 none/page/objects/both 四档语义(整页图 / 子图 / 两者)。新版通过组合 capabilities.pagescapabilities.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)控制。
  • parse_mode 在新版的默认值:旧版默认 scan;新版 parse/sync 接口默认值以官方文档为准
  • force_engine 是新增的”引擎选择”维度(textin/textin_gui),不是 parse_mode 的替代品;在textin引擎下,parse_mode可同时配置

新增能力(仅新版支持)


出参迁移指南

顶层结构变化

主体数据字段映射

元素结构变化(detail → elements)

旧版 detail[] 与新版 elements[] 的字段对照:

新版元素示例

坐标系与页码换算

坐标换算

页码说明

  • 旧版page_id,1-based(第一页为 1)
  • 新版page_number,1-based(第一页为 1)
两者起始值相同,均为 1-based,遍历/定位页面的逻辑可直接迁移。
归一化 coordinates 8 个值的点序为:左上 → 右上 → 右下 → 左下。

异步接口使用指南

旧版不支持异步。新版异步接口适合大文件(建议 >10 页)或批量处理,避免 HTTP 连接超时。

接口概览

任务状态枚举

异步提交成功仅返回 {"data": {"job_id": "..."}},完整解析结果需通过 result_url 二次下载。result_url 返回的数据结构与同步接口 data 一致。

异步调用完整流程(Python)

Webhook 回调(推荐生产环境)

提交任务时附带 webhook 参数,任务完成/失败后系统主动 POST 推送,无需轮询:

完整代码迁移示例


迁移检查清单

1

更新请求 URL

/ai/service/v1/pdf_to_markdown/api/v1/xparse/parse/sync
2

更改请求方式

Query String + 二进制 Body → multipart/form-data + config JSON
3

转换参数类型

整数开关(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

更新响应解析

  • 响应根节点:resultdata
  • total_page_numberdata.metadata.page_count
  • valid_page_numberdata.success_count
  • detaildata.elementsparagraph_idelement_idtype 由 “paragraph” 等改为语义字符串)
  • catalogdata.title_tree
8

转换坐标系统

坐标:position(绝对像素)→ coordinates(归一化,× page_width/height 换算)
9

更新表格参数

table_flavor='md'table_view='markdown';‘none’ 已移除,需调整逻辑
10

更新图片参数

image_output_type:取值由 base64str/default 改为 url/base64
11

处理已移除参数

  • 如用 get_excel:新版不支持 Excel 输出,需另寻替代
  • 如用 raw_ocr:近似改用 capabilities.include_char_details(语义非完全等价,需验证)
  • dpi:新版无对应参数,坐标改为归一化输出
12

增强错误处理

所有响应在读取 ["data"] 前先校验 HTTP 状态与业务 code,避免鉴权/参数错误变成 KeyError
13

考虑异步接口

大文件(建议 >10 页)评估迁移至异步接口
14

配置 Webhook

生产环境异步场景配置 Webhook 回调替代轮询