Doc2X API v2 图片接口文档
基础信息
URL: https://v2.doc2x.noedgeai.com
请直连访问 API 接口,中国内地以外地区可能有较大网络波动,导致上传文件断流严重
目前默认并发 30 张/30s,暂时不支持扩大并发量,如需大规模处理图片请转成 pdf 处理(如果图片长宽比一致请转化成多页 PDF 来加快处理吞吐量)
Authorization 鉴权
首先需要获取到 API Key(类似于 sk-xxx)
在 HTTP 请求头加入:
bash
Authorization: Bearer sk-xxx
POST /api/v2/parse/img/layout 图片 layout
含布局识别的图片 OCR 接口,效果和 /parse/pdf
一致,支持文字,公式,多栏,表格,图片的解析和提取(主要适用于文档图片和类文档图片)
此接口为同步调用接口
要求图片大小 <= 7M
计价方式:1 张图片 = 1 页 PDF 解析(1:1),会同等消耗 PDF 解析页数
请求参数
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
body | body | binary | 是 | 请求体为 img(jpg/png) 的二进制,最大不超过 7M |
请求示例
bash
curl -X POST 'https://v2.doc2x.noedgeai.com/api/v2/parse/img/layout' \
--header 'Authorization: Bearer sk-xxx' \
--data-binary '@test.jpg'
注意,--data-binary
并不是 formdata,而是以二进制形式写入 body 中,python 代码如下:
python
import requests
url = 'https://v2.doc2x.noedgeai.com/api/v2/parse/img/layout'
headers = {'Authorization': 'Bearer sk-xxx'}
with open('test.jpg', 'rb') as file:
response = requests.post(url, headers=headers, data=file) # 使用data
print(response.text)
返回示例
json
{
"code": "success",
"data": {
"convert_zip": null, // 如果传入的图片中含有图示内容
// convert_zip里面是 包含页面内所有图片文件夹的zip包的base64
"result": {
"pages": [
{
"page_width": 1000,
"page_height": 1000,
"md": "123456789" // 提取后的整页的md
}
]
},
"uid": "01940000-0000-0000-0000-111111111"
}
}
convert_zip 解压后的文件结构
text
.
|--images # 图片资源文件
|--example1.jpg
|--example2.jpg
POST /api/v2/async/parse/img/layout 异步图片 layout 提交任务
含布局识别的图片 OCR 接口,效果和 /parse/pdf
一致,支持文字,公式,多栏,表格,图片的解析和提取(主要适用于文档图片和类文档图片)
此接口为异步调用接口
要求图片大小 <= 7M
计价方式:1 张图片 = 1 页 PDF 解析(1:1),会同等消耗 PDF 解析页数
异步图片请求参数
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
body | body | binary | 是 | 请求体为 img(jpg/png) 的二进制,最大不超过 7M |
异步图片请求示例
bash
curl -X POST 'https://v2.doc2x.noedgeai.com/api/v2/async/parse/img/layout' \
--header 'Authorization: Bearer sk-xxx' \
--data-binary '@test.jpg'
注意,--data-binary
并不是 formdata,而是以二进制形式写入 body 中,python 代码如下:
python
import requests
url = 'https://v2.doc2x.noedgeai.com/api/v2/async/parse/img/layout'
headers = {'Authorization': 'Bearer sk-xxx'}
with open('test.jpg', 'rb') as file:
response = requests.post(url, headers=headers, data=file) # 使用data
print(response.text)
异步图片返回示例
json
{
"code": "success",
"data": {
"uid": "01940000-0000-0000-0000-111111111"
}
}
GET /api/v2/parse/img/layout/status 异步图片 layout 处理状态
异步图片处理状态请求参数
请求头
名称 | 描述 | 示例值 |
---|---|---|
Authorization | Api key | Bearer sk-usui9lodl89p7r51suvo0awdawd |
请求体
名称 | 位置 | 类型 | 必选 | 说明 |
---|---|---|---|---|
uid | query | string | 是 | 异步任务的 id |
异步图片处理状态请求示例
bash
curl --request GET 'https://v2.doc2x.noedgeai.com/api/v2/parse/img/layout/status?uid=01920000-0000-0000-0000-000000000000' \
--header 'Authorization: Bearer sk-xxx'
异步图片处理状态返回示例
处理完成的情况
json
{
"code": "success",
"data": {
"status": "success",
"result": {
"pages": [
{
"url": "01952205-b26f-7930-93c1-103c88156729_0.jpg",
"page_idx": 0,
"page_width": 1080,
"page_height": 4322,
"md": "<!-- Media -->\n\n<img src=\"01952205-b26f-7930-93c1-103c88156729_0_0_59_1080_4221_0.jpg\"/>\n\n<!-- Media -->"
}
]
},
"convert_zip": "EpwBCiowMTk1MjIwNS1iMjZmLTc5MzAtOTNjMS0xMDNjODgxNTY3MjlfMC5qcGcYuAgg4iEqaDwhLS0gTWVkaWEgLS0+Cgo8aW1nIHNyYz0iMDE5NTIyMDUtYjI2Zi03OTMwLTkzYzEtMTAzYzg4MTU2NzI5XzBfMF81OV8xMDgwXzQyMjFfMC5qcGciLz4KCjwhLS0gTWVkaWEgLS0+"
}
}
失败的情况
json
{
"code": "parse_error",
"msg": "解析错误"
}
等待的情况
json
{
"code": "success",
"data": {
"status": "processing"
}
}
异步任务 convert_zip 解压后的文件结构
text
.
|--images # 图片资源文件
|--example1.jpg
|--example2.jpg