基于百度智能文档分析平台 API,提供文档解析能力。
当用户需要:
用户类型免费额度个人实名认证用户200 页企业实名认证用户200 页
使用前请设置以下环境变量:
bash
export BAIDU_DOC_AI_API_KEY="your_api_key"
export BAIDU_DOC_AI_SECRET_KEY="your_secret_key"
通过 API Key 和 Secret Key 获取 access_token,有效期 30 天。
版式文档:pdf, jpg, jpeg, png, bmp, tif, tiff, ofd, ppt, pptx
流式文档:doc, docx, txt, xls, xlsx, wps, html, mhtml
CHN_ENG(中英文)、JAP(日语)、KOR(韩语)、FRE(法语)、SPA(西班牙语)、POR(葡萄牙语)、GER(德语)、ITA(意大利语)、RUS(俄语)、DAN(丹麦语)、DUT(荷兰语)、MAL(马来语)、SWE(瑞典语)、IND(印尼语)、POL(波兰语)、ROM(罗马尼亚语)、TUR(土耳其语)、GRE(希腊语)、HUN(匈牙利语)、THA(泰语)、VIE(越南语)、ARA(阿拉伯语)、HIN(印地语)
bash
python3 scripts/baidu_doc_parser.py --file_data <文件的base64编码>
python3 scripts/baidu_doc_parser.py --file_url <文件公网URL>
文档解析 API 服务为异步接口,需要先调用 提交请求接口 获取 task_id,然后调用 获取结果接口 进行结果轮询。
https://aip.baidubce.com/rest/2.0/brain/online/v2/parser/task?access_token={token}application/x-www-form-urlencodedhttps://aip.baidubce.com/rest/2.0/brain/online/v2/parser/task/query?access_token={token}application/x-www-form-urlencodedtask_id(必填,提交请求时返回的 task_id)参数必选类型说明file_data和 file_url 二选一string文件 Base64 编码数据。版式文档:pdf, jpg, jpeg, png, bmp, tif, tiff, ofd, ppt, pptx;流式文档:doc, docx, txt, xls, xlsx, wps, html, mhtml。文档大小不超过 50M,PDF 最大支持 2000 页。 若文档大小超过 50M,须从 file_url 方式上传。优先级:file_data > file_urlfile_url和 file_data 二选一string文件数据 URL,长度不超过 1024 字节,支持单个 URL 传入。PDF 文档大小不超过 300MB,非 PDF 不超过 50M,PDF 最大支持 2000 页。 请注意关闭 URL 防盗链file_name是string文件名,请保证文件名后缀正确,例如 "1.pdf"
参数必选类型可选值范围说明recognize_formula否boolTrue/False是否对版式类型文档进行公式识别analysis_chart否boolTrue/False是否对统计图表进行解析angle_adjust否boolTrue/False是否对图片进行角度矫正parse_image_layout否boolTrue/False是否返回文档中的图片位置信息
参数必选类型说明language_type否string识别语种类型,默认为 CHN_ENG(中英文)switch_digital_width否string是否对数字进行全半角转换,默认为 auto。可选:auto(不转换)、half(半角输出)、full(全角输出)html_table_format否bool是否将识别出的表格转换为 HTML 格式返回, default=True
return_doc_chunks 为字典类型,用于返回文档切分后的片段数据(按语义、字数、标点):
参数必选类型默认值说明switch否boolFalse是否进行文档内容切分split_type否strchunk切分方式:chunk(按 chunk_size 来切)/ mark(按 separators 来切)separators否list['。',';','!','?',';','!','?']切分标点chunk_size否int-1切分块的大小,-1 表示按照语义自动切分,不限定块的大小
字段类型说明log_iduint64唯一的 log id,用于问题定位error_codeint错误码error_msgstring错误描述信息result.task_idstring该请求生成的 task_id,后续使用该 task_id 获取审查结果
字段类型说明log_iduint64唯一的 log iderror_codeint错误码error_msgstring错误描述信息result.task_idstring任务 IDresult.statusstring任务状态:pending(排队中)、processing(运行中)、success(成功)、failed(失败)result.task_errorstring解析报错信息,包含任务失败、额度不够result.markdown_urlstring文档解析结果的 Markdown 格式链接, 链接有效期 30 天result.parse_result_urlstring文档解析结果的 BOS 链接(JSON), 链接有效期 30 天
字段类型说明file_namestring文档名称file_idstring文档 IDpageslist文件单页解析内容chunkslist文件内容切分结果(return_doc_chunks.switch=True 时有值)
字段类型说明page_idstring页码 IDpage_numint页码数,从 0 开始textstring当前页的所有纯文字内容,含表格 Markdownlayoutslist页面内容版式分析的结果tableslist页面表格解析结果imageslist页面中图片解析结果metadict页元信息
字段类型说明page_widthint页面宽度page_heightint页面高度is_scanbool是否扫描件page_angleint页面倾斜角度page_typestring页面属性:text(正文)、contents(目录)、appendix(附录)、others(其他)sheet_namestringExcel 的 sheet 名
字段类型说明layout_idstringlayout 元素唯一标志,格式 "xxxxx-layout-{global_layout_index}"textstringlayout 对应的文本内容。注:当 type 为 table/image 时该字段为空,需根据 type 和 layout_id 分别到 tables/images 字段里找到对应内容positionlist元素在页面中的位置 [x, y, w, h],左上角和宽高typestring版面元素类型(见下表)sub_typestring版面元素子类型(见下表)parentstring标题层级树中父节点的 layout_id,若为一级标题则 parent 为 "root"childrenlist标题层级树中子节点的 layout_id 列表
版面类型(type):
类型说明text段落table表格image文档中的插图head_tail页面顶部(页眉/页脚)contents目录seal印章title标题formula公式hand_sign手写签名
子类型(sub_type):
title_{n}(n 级标题,如 title_2 代表二级标题)、 image_title(图标题)、 table_title(表标题)chart(统计图表)、 figure(普通插图)、 QR_code(二维码)、 Bar_code(条形码)字段类型说明layout_idstring与 layouts 中 type 为 table 的元素的 layout ID 对应markdownstring表格内容的 Markdown 形式table_title_idlist表格标题对应的 layout_id,默认为 nullpositionlist边框数据 [x, y, w, h](以页面坐标为原点),版式格式时有效cellslist单元格的内版面信息,layout 类型为表格时有值matrixlist二位数组,表示表格内布局位置信息,每个元素对应 cells 列表中元素的索引merge_tablestring跨页表格标记:begin(开始)、inner(中间,超过两页)、end(结束);非跨页表格该字段为空
字段类型说明layout_idstring与 layouts 中 type 为 image 的元素的 layout ID 对应image_title_idlist图片标题对应的 layout_id,默认为 nullpositionlist边框数据 [x, y, w, h]content_layoutslist图片的内版面信息data_urlstring图片存储链接image_descriptionstring对统计图表进行内容解析和描述,输出结果为 JSON 字符串
字段类型说明chunk_idstring切片的 IDcontentstring切片的内容typestring切片类型:text 或 tablemeta.titlelistchunk 所属的多级标题内容meta.positionlistchunk 的位置,根据分块算法有可能 chunk 跨多个页meta.boxlistchunk 的位置坐标meta.page_numintchunk 内容所在页数
task_idtask_id 调用获取结果接口轮询限制项说明文件大小(file_data)≤ 50MB,超过 50M 须使用 file_url文件大小(file_url)PDF ≤ 300MB,非 PDF ≤ 50MBURL 长度≤ 1024 字节页数限制PDF ≤ 2000 页优先级file_data > file_url(同时存在时 file_url 字段失效)
常见错误码:
错误码说明解决方案110/111access_token 无效或过期重新获取 access_token216200文件或 URL 为空提供 file_data 或 file_url216201文件格式错误检查文件格式是否支持216202文件大小超限缩减文件大小282000内部错误重试或联系技术支持282003缺少必要参数检查必填参数282007任务不存在检查 task_id 是否正确282018服务繁忙降低请求频率
完整错误码参见 references/error_codes.md
可在 示例代码中心 申请试该接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。
scripts/baidu_doc_parser.py:文档解析主程序,支持命令行快速调用references/parameters.md:完整 API 参数与返回结构详解references/error_codes.md:完整错误码参考references/apikey-fetch.md:API Key 配置指南