文档介绍了调用方式,调用前,请先阅读API概览。
步骤一:调用异步提交服务
异步提交服务支持本地文件和URL文件两种方式:
URL上传的异步提交服务接口为:SubmitContainerLoadPlanExtractJob接口。
本地文件上传的异步提交服务接口为:SubmitContainerLoadPlanExtractJobAdvance接口。
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
FileUrl | string | 是 | 以文档URL方式时使用。 单个文档的URL支持100页以内、100 MB以内的PDF、Word、Excel文档,支持20 MB以内的单张图片。 | https://example.com/example.pdf |
FileUrlObject | stream | 是 | 以本地文件上传方式调用接口时使用。 单个文档支持100页以内、100 MB以内的PDF、Word、Excel文档,支持20 MB以内的单张图片。 | 本地文件生成的FileInputStream |
FileName | string | 否 | 文件名需带文件类型后缀,与FileNameExtension二选一。 | example.pdf |
FileNameExtension | string | 否 | 文件类型与FileName二选一。 |
支持的文档格式:pdf、word、excel和图片(jpg、jpeg、png、bmp、gif)。
返回参数
名称 | 类型 | 描述 | 示例值 |
RequestId | string | 请求唯一ID。 | 43A29C77-405E-4CC0-BC55-EE694AD0**** |
Data | object | 返回数据。 | {"Id": "docmind-20220712-ContainerLoadPlan-b15f****"} |
+id | string | 业务订单号,用于后续查询接口进行查询的唯一标识。 | docmind-20220712-ContainerLoadPlan-b15f**** |
Code | string | 状态码。 | 200 |
Message | string | 状态详细信息。 | message |
示例
本接口支持本地文档上传和传入文档URL这两种调用方式。
本地文档上传调用方式的请求示例代码如下,调用SubmitContainerLoadPlanExtractJobAdvance接口,通过fileUrlObject参数实现本地文档上传。
获取并使用AccessKey信息的方式,可参考SDK概述中不同语言的SDK使用指南。
import com.aliyun.docmind_api20220729.Client;
import com.aliyun.docmind_api20220729.models.*;
import com.aliyun.teaopenapi.models.Config;
import com.aliyun.teautil.models.RuntimeOptions;
import java.io.File;
import java.io.FileInputStream;
public static void submit() throws Exception {
// 使用默认凭证初始化Credentials Client。
com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
Config config = new Config()
// 通过credentials获取配置中的AccessKey ID
.setAccessKeyId(credentialClient.getAccessKeyId())
// 通过credentials获取配置中的AccessKey Secret
.setAccessKeySecret(credentialClient.getAccessKeySecret());
// 访问的域名,支持ipv4和ipv6两种方式,ipv6请使用docmind-api-dualstack.cn-hangzhou.aliyuncs.com
config.endpoint = "docmind-api.cn-hangzhou.aliyuncs.com";
Client client = new Client(config);
// 创建RuntimeObject实例并设置运行参数
RuntimeOptions runtime = new RuntimeOptions();
SubmitContainerLoadPlanExtractJobAdvanceRequest advanceRequest = new SubmitContainerLoadPlanExtractJobAdvanceRequest();
File file = new File("D:\\example.pdf");
advanceRequest.fileUrlObject = new FileInputStream(file);
advanceRequest.fileName = "example.pdf";
// 发起请求并处理应答或异常。
SubmitContainerLoadPlanExtractJobResponse response = client.submitContainerLoadPlanExtractJobAdvance(advanceRequest, runtime);
}
const Client = require('@alicloud/docmind-api20220729');
const Credential = require('@alicloud/credentials');
const Util = require('@alicloud/tea-util');
const fs = require('fs');
const getResult = async () => {
// 使用默认凭证初始化Credentials Client
const cred = new Credential.default();
const client = new Client.default({
// 访问的域名,支持ipv4和ipv6两种方式,ipv6请使用docmind-api-dualstack.cn-hangzhou.aliyuncs.com
endpoint: 'docmind-api.cn-hangzhou.aliyuncs.com',
// 通过credentials获取配置中的AccessKey ID
accessKeyId: cred.credential.accessKeyId,
// 通过credentials获取配置中的AccessKey Secret
accessKeySecret: cred.credential.accessKeySecret,
type: 'access_key',
regionId: 'cn-hangzhou'
});
const advanceRequest = new Client.SubmitContainerLoadPlanExtractJobAdvanceRequest();
const file = fs.createReadStream('./example.pdf');
advanceRequest.fileUrlObject = file;
advanceRequest.fileName = 'example.pdf';
const runtimeObject = new Util.RuntimeOptions({});
const response = await client.submitContainerLoadPlanExtractJobAdvance(advanceRequest, runtimeObject);
return response.body;
}
from alibabacloud_docmind_api20220729.client import Client as docmind_api20220729Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_tea_util import models as util_models
from alibabacloud_docmind_api20220729 import models as docmind_api20220729_models
from alibabacloud_tea_util.client import Client as UtilClient
from alibabacloud_credentials.client import Client as CredClient
def submit_file():
# 使用默认凭证初始化Credentials Client。
cred=CredClient()
config = open_api_models.Config(
# 通过credentials获取配置中的AccessKey ID
access_key_id=cred.get_access_key_id(),
# 通过credentials获取配置中的AccessKey Secret
access_key_secret=cred.get_access_key_secret()
)
# 访问的域名
config.endpoint = f'docmind-api.cn-hangzhou.aliyuncs.com'
client = docmind_api20220729Client(config)
request = docmind_api20220729_models.SubmitContainerLoadPlanExtractJobAdvanceRequest(
# file_url_object : 本地文件流
file_url_object=open("D:\example.pdf", "rb"),
# file_name :文件名称。名称必须包含文件类型
file_name='123.pdf',
# file_name_extension : 文件后缀格式。与文件名二选一
file_name_extension='pdf'
)
runtime = util_models.RuntimeOptions()
try:
# 复制代码运行请自行打印 API 的返回值
response = client.submit_container_load_plan_extract_job_advance(request, runtime)
# API返回值格式层级为 body -> data -> 具体属性。可根据业务需要打印相应的结果。如下示例为打印返回的业务id格式
# 获取属性值均以小写开头,
print(response.body.data.id)
except Exception as error:
# 如有需要,请打印 error
UtilClient.assert_as_string(error.message)
import (
"fmt"
"os"
openClient "github.com/alibabacloud-go/darabonba-openapi/v2/client"
"github.com/alibabacloud-go/docmind-api-20220729/client"
"github.com/alibabacloud-go/tea-utils/v2/service"
"github.com/aliyun/credentials-go/credentials"
)
func submit() {
// 使用默认凭证初始化Credentials Client。
credential, err := credentials.NewCredential(nil)
// 通过credentials获取配置中的AccessKey ID
accessKeyId, err := credential.GetAccessKeyId()
// 通过credentials获取配置中的AccessKey Secret
accessKeySecret, err := credential.GetAccessKeySecret()
// 访问的域名,支持ipv4和ipv6两种方式,ipv6请使用docmind-api-dualstack.cn-hangzhou.aliyuncs.com
var endpoint string = "docmind-api.cn-hangzhou.aliyuncs.com"
config := openClient.Config{AccessKeyId: accessKeyId, AccessKeySecret: accessKeySecret, Endpoint: &endpoint}
// 初始化client
cli, err := client.NewClient(&config)
if err != nil {
panic(err)
}
// 创建RuntimeObject实例并设置运行参数
options := service.RuntimeOptions{}
// 上传本地文档调用接口
filename := "example.pdf"
f, err := os.Open(filename)
if err != nil {
panic(err)
}
// 初始化接口request
request := client.SubmitContainerLoadPlanExtractJobAdvanceRequest{
FileName: &filename,
FileUrlObject: f,
}
// 替换成具体异步任务提交类API接口的入参和方法,示例方法是出口报关单识别接口
response, err := cli.SubmitContainerLoadPlanExtractJobAdvance(&request, &options)
if err != nil {
panic(err)
}
fmt.Println(response.Body.GoString())
}
using Newtonsoft.Json;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Tea;
using Tea.Utils;
public static void SubmitFile()
{
// 使用默认凭证初始化Credentials Client。
var akCredential = new Aliyun.Credentials.Client(null);
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
{
// 通过credentials获取配置中的AccessKey Secret
AccessKeyId = akCredential.GetAccessKeyId(),
// 通过credentials获取配置中的AccessKey Secret
AccessKeySecret = akCredential.GetAccessKeySecret(),
};
// 访问的域名
config.Endpoint = "docmind-api.cn-hangzhou.aliyuncs.com";
AlibabaCloud.SDK.Docmind_api20220729.Client client = new AlibabaCloud.SDK.Docmind_api20220729.Client(config);
//需要安装额外的依赖库--> AlibabaCloud.DarabonbaStream
Stream bodySyream = AlibabaCloud.DarabonbaStream.StreamUtil.ReadFromFilePath("<your-file-path>");
AlibabaCloud.SDK.Docmind_api20220729.Models.SubmitContainerLoadPlanExtractJobAdvanceRequest request = new AlibabaCloud.SDK.Docmind_api20220729.Models.SubmitContainerLoadPlanExtractJobAdvanceRequest
{
FileUrlObject = bodySyream,
FileNameExtension = "pdf"
};
AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
try
{
// 复制代码运行请自行打印 API 的返回值
client.SubmitContainerLoadPlanExtractJobAdvance(request, runtime);
}
catch (TeaException error)
{
// 如有需要,请打印 error
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
}
catch (Exception _error)
{
TeaException error = new TeaException(new Dictionary<string, object>
{
{ "message", _error.Message }
});
// 如有需要,请打印 error
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
}
}
传入文档URL调用方式的请求示例代码如下,调用SubmitContainerLoadPlanExtractJob接口,通过fileUrl参数实现传入文档URL。请注意,您传入的文档URL必须为公网可访问下载的公网URL地址,无跨域限制,URL不带特殊转义字符。
获取并使用AccessKey信息的方式,可参考SDK概述中不同语言的SDK使用指南。
import com.aliyun.docmind_api20220729.Client;
import com.aliyun.docmind_api20220729.models.*;
import com.aliyun.teaopenapi.models.Config;
public static void submit() throws Exception {
// 使用默认凭证初始化Credentials Client。
com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
Config config = new Config()
// 通过credentials获取配置中的AccessKey ID
.setAccessKeyId(credentialClient.getAccessKeyId())
// 通过credentials获取配置中的AccessKey Secret
.setAccessKeySecret(credentialClient.getAccessKeySecret());
// 访问的域名,支持ipv4和ipv6两种方式,ipv6请使用docmind-api-dualstack.cn-hangzhou.aliyuncs.com
config.endpoint = "docmind-api.cn-hangzhou.aliyuncs.com";
Client client = new Client(config);
SubmitContainerLoadPlanExtractJobRequest request = new SubmitContainerLoadPlanExtractJobRequest();
request.fileName = "example.pdf";
request.fileUrl = "https://example.com/example.pdf";
SubmitContainerLoadPlanExtractJobResponse response = client.submitContainerLoadPlanExtractJob(sb);
}
const Client = require('@alicloud/docmind-api20220729');
const Credential = require('@alicloud/credentials');
const getResult = async () => {
// 使用默认凭证初始化Credentials Client
const cred = new Credential.default();
const client = new Client.default({
// 访问的域名,支持ipv4和ipv6两种方式,ipv6请使用docmind-api-dualstack.cn-hangzhou.aliyuncs.com
endpoint: 'docmind-api.cn-hangzhou.aliyuncs.com',
// 通过credentials获取配置中的AccessKey ID
accessKeyId: cred.credential.accessKeyId,
// 通过credentials获取配置中的AccessKey Secret
accessKeySecret: cred.credential.accessKeySecret,
type: 'access_key',
regionId: 'cn-hangzhou'
});
const request = new Client.SubmitContainerLoadPlanExtractJobRequest();
request.fileName = 'example.pdf';
request.fileUrl = 'https://example.com/example.pdf';
const response = await client.submitContainerLoadPlanExtractJob(request);
return response.body;
}
from alibabacloud_docmind_api20220729.client import Client as docmind_api20220729Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_docmind_api20220729 import models as docmind_api20220729_models
from alibabacloud_tea_util.client import Client as UtilClient
from alibabacloud_credentials.client import Client as CredClient
def submit_url():
# 使用默认凭证初始化Credentials Client。
cred=CredClient()
config = open_api_models.Config(
# 通过credentials获取配置中的AccessKey ID
access_key_id=cred.get_access_key_id(),
# 通过credentials获取配置中的AccessKey Secret
access_key_secret=cred.get_access_key_secret()
)
# 访问的域名
config.endpoint = f'docmind-api.cn-hangzhou.aliyuncs.com'
client = docmind_api20220729Client(config)
request = docmind_api20220729_models.SubmitContainerLoadPlanExtractJobRequest(
# file_url : 文件url地址
file_url='https://example.pdf',
# file_name :文件名称。名称必须包含文件类型
file_name='example.pdf',
# file_name_extension : 文件后缀格式。与文件名二选一
file_name_extension='pdf'
)
try:
# 复制代码运行请自行打印 API 的返回值
response = client.submit_container_load_plan_extract_job(request)
# API返回值格式层级为 body -> data -> 具体属性。可根据业务需要打印相应的结果。如下示例为打印返回的业务id格式
# 获取属性值均以小写开头,
print(response.body.data.id)
except Exception as error:
# 如有需要,请打印 error
UtilClient.assert_as_string(error.message)
import (
"fmt"
openClient "github.com/alibabacloud-go/darabonba-openapi/v2/client"
"github.com/alibabacloud-go/docmind-api-20220729/client"
"github.com/aliyun/credentials-go/credentials"
)
func submit() {
// 使用默认凭证初始化Credentials Client。
credential, err := credentials.NewCredential(nil)
// 通过credentials获取配置中的AccessKey ID
accessKeyId, err := credential.GetAccessKeyId()
// 通过credentials获取配置中的AccessKey Secret
accessKeySecret, err := credential.GetAccessKeySecret()
// 访问的域名,支持ipv4和ipv6两种方式,ipv6请使用docmind-api-dualstack.cn-hangzhou.aliyuncs.com
var endpoint string = "docmind-api.cn-hangzhou.aliyuncs.com"
config := openClient.Config{AccessKeyId: accessKeyId, AccessKeySecret: accessKeySecret, Endpoint: &endpoint}
// 初始化client
cli, err := client.NewClient(&config)
if err != nil {
panic(err)
}
// 上传本地文档调用接口
fileUrl := "https://example.com/example.pdf"
filename := "example.pdf"
// 初始化接口request
request := client.SubmitContainerLoadPlanExtractJobRequest{
FileName: &filename,
FileUrl: &fileUrl,
}
// 替换成具体异步任务提交类API接口的入参和方法,示例方法是出口报关单识别接口
response, err := cli.SubmitContainerLoadPlanExtractJob(&request)
if err != nil {
panic(err)
}
fmt.Println(response.Body.GoString())
}
using Newtonsoft.Json;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Tea;
using Tea.Utils;
public static void SubmitUrl()
{
// 使用默认凭证初始化Credentials Client。
var akCredential = new Aliyun.Credentials.Client(null);
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
{
// 通过credentials获取配置中的AccessKey Secret
AccessKeyId = akCredential.GetAccessKeyId(),
// 通过credentials获取配置中的AccessKey Secret
AccessKeySecret = akCredential.GetAccessKeySecret(),
};
// 访问的域名
config.Endpoint = "docmind-api.cn-hangzhou.aliyuncs.com";
AlibabaCloud.SDK.Docmind_api20220729.Client client = new AlibabaCloud.SDK.Docmind_api20220729.Client(config);
AlibabaCloud.SDK.Docmind_api20220729.Models.SubmitContainerLoadPlanExtractJobRequest request = new AlibabaCloud.SDK.Docmind_api20220729.Models.SubmitContainerLoadPlanExtractJobRequest
{
FileUrl = "https://example.pdf",
FileNameExtension = "pdf"
};
try
{
// 复制代码运行请自行打印 API 的返回值
client.SubmitContainerLoadPlanExtractJob(request);
}
catch (TeaException error)
{
// 如有需要,请打印 error
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
}
catch (Exception _error)
{
TeaException error = new TeaException(new Dictionary<string, object>
{
{ "message", _error.Message }
});
// 如有需要,请打印 error
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
}
}
use AlibabaCloud\SDK\Docmindapi\V20220729\Docmindapi;
use AlibabaCloud\SDK\Docmindapi\V20220729\Models\SubmitContainerLoadPlanExtractJobRequest;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
use AlibabaCloud\Tea\Exception\TeaUnableRetryError;
use AlibabaCloud\Credentials\Credential;
// 使用默认凭证初始化Credentials Client。
$bearerToken = new Credential();
$config = new Config();
// 访问的域名,支持ipv4和ipv6两种方式,ipv6请使用docmind-api-dualstack.cn-hangzhou.aliyuncs.com
$config->endpoint = "docmind-api.cn-hangzhou.aliyuncs.com";
// 通过credentials获取配置中的AccessKey ID
$config->accessKeyId = $bearerToken->getCredential()->getAccessKeyId();
// 通过credentials获取配置中的AccessKey Secret
$config->accessKeySecret = $bearerToken->getCredential()->getAccessKeySecret();
$config->type = "access_key";
$config->regionId = "cn-hangzhou";
$client = new Docmindapi($config);
$request = new SubmitContainerLoadPlanExtractJobRequest();
$runtime = new RuntimeOptions();
$runtime->maxIdleConns = 3;
$runtime->connectTimeout = 10000;
$runtime->readTimeout = 10000;
$request->fileName = "example.pdf";
$request->fileUrl = "https://example.com/example.pdf";
try {
$response = $client->submitContainerLoadPlanExtractJob($request, $runtime);
var_dump($response->toMap());
} catch (TeaUnableRetryError $e) {
var_dump($e->getMessage());
var_dump($e->getErrorInfo());
var_dump($e->getLastException());
var_dump($e->getLastRequest());
}
正常返回示例
JSON
格式
{
"RequestId": "43A29C77-405E-4CC0-BC55-EE694AD0****",
"Data": {
"Id": "docmind-20220712-ContainerLoadPlan-b15f****"
}
}
步骤二:轮询结果查询服务GetSingleDocumentExtractResult接口
调用查询接口的入参ID就是前面异步任务提交接口返回的出参ID,查询结果有处理中、处理成功、处理失败三种情况。建议每10秒轮询一次,最多轮询10分钟。若明确返回Completed为true或者超过轮询最大时间,则终止轮询。
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
Id | string | 是 | 需要查询的业务订单号,订单号从提交接口的返回结果中获取。 | docmind-20220712-ContainerLoadPlan-b15f**** |
返回参数
名称 | 类型 | 描述 | 示例值 |
RequestId | string | 请求唯一ID。 | 43A29C77-405E-4CC0-BC55-EE694AD0**** |
Completed | boolean | 异步任务是否处理完成,false表示任务仍在处理中,true代表任务处理完成,有处理成功或处理失败的明确结果。 | true |
Status | String | 异步任务处理完成的状态,最终处理结束后的状态。Success为处理成功,Fail为处理失败。 | Success |
Data | string | 返回数据,文档智能解析的解析结果,输出包括文档内容及样式、文档版面信息以及文档逻辑信息(层级树、表格理解、表格及段落KV)的JSON数据结构返回。 | |
Code | string | 状态码。 | 200 |
Message | string | 详细信息。 | message |
示例
调用出口报关单识别接口的结果查询类API示例代码如下,调用getSingleDocumentExtractResult接口,通过ID参数传入查询流水号。
获取并使用AccessKey信息的方式,可参考SDK概述中不同语言的SDK使用指南。
import com.aliyun.docmind_api20220729.Client;
import com.aliyun.docmind_api20220729.models.*;
import com.aliyun.teaopenapi.models.Config;
public static void submit() throws Exception {
// 使用默认凭证初始化Credentials Client。
com.aliyun.credentials.Client credentialClient = new com.aliyun.credentials.Client();
Config config = new Config()
// 通过credentials获取配置中的AccessKey ID
.setAccessKeyId(credentialClient.getAccessKeyId())
// 通过credentials获取配置中的AccessKey Secret
.setAccessKeySecret(credentialClient.getAccessKeySecret());
// 访问的域名,支持ipv4和ipv6两种方式,ipv6请使用docmind-api-dualstack.cn-hangzhou.aliyuncs.com
config.endpoint = "docmind-api.cn-hangzhou.aliyuncs.com";
Client client = new Client(config);
GetSingleDocumentExtractResultRequest resultRequest = new GetSingleDocumentExtractResultRequest();
resultRequest.id = "docmind-20220902-ContainerLoadPlan-824b****";
GetSingleDocumentExtractResultResponse response = client.getSingleDocumentExtractResult(request);
System.out.println(response.getBody().getData());
}
const Client = require('@alicloud/docmind-api20220729');
const Credential = require('@alicloud/credentials');
const getResult = async () => {
// 使用默认凭证初始化Credentials Client
const cred = new Credential.default();
const client = new Client.default({
// 访问的域名,支持ipv4和ipv6两种方式,ipv6请使用docmind-api-dualstack.cn-hangzhou.aliyuncs.com
endpoint: 'docmind-api.cn-hangzhou.aliyuncs.com',
// 通过credentials获取配置中的AccessKey ID
accessKeyId: cred.credential.accessKeyId,
// 通过credentials获取配置中的AccessKey Secret
accessKeySecret: cred.credential.accessKeySecret,
type: 'access_key',
regionId: 'cn-hangzhou'
});
const resultRequest = new Client.GetSingleDocumentExtractResultRequest();
resultRequest.id = "docmind-20220712-ContainerLoadPlan-b15f****";
const response = await client.getSingleDocumentExtractResult(resultRequest);
return response.body;
}
from alibabacloud_docmind_api20220729.client import Client as docmind_api20220729Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_docmind_api20220729 import models as docmind_api20220729_models
from alibabacloud_tea_util.client import Client as UtilClient
from alibabacloud_credentials.client import Client as CredClient
def query():
# 使用默认凭证初始化Credentials Client。
cred=CredClient()
config = open_api_models.Config(
# 通过credentials获取配置中的AccessKey ID
access_key_id=cred.get_access_key_id(),
# 通过credentials获取配置中的AccessKey Secret
access_key_secret=cred.get_access_key_secret()
)
# 访问的域名
config.endpoint = f'docmind-api.cn-hangzhou.aliyuncs.com'
client = docmind_api20220729Client(config)
request = docmind_api20220729_models.GetSingleDocumentExtractResultRequest(
# id : 任务提交接口返回的id
id='docmind-20220902-ContainerLoadPlan-824b****'
)
try:
# 复制代码运行请自行打印 API 的返回值
response = client.get_single_document_extract_result(request)
# API返回值格式层级为 body -> data -> 具体属性。可根据业务需要打印相应的结果。获取属性值均以小写开头
# 获取异步任务处理情况,可根据response.body.completed判断是否需要继续轮询结果
print(response.body.completed)
# 获取返回结果。建议先把response.body.data转成json,然后再从json里面取具体需要的值。
print(response.body.data)
except Exception as error:
# 如有需要,请打印 error
UtilClient.assert_as_string(error.message)
import (
"fmt"
openClient "github.com/alibabacloud-go/darabonba-openapi/v2/client"
"github.com/alibabacloud-go/docmind-api-20220729/client"
"github.com/aliyun/credentials-go/credentials"
)
func query() {
// 使用默认凭证初始化Credentials Client。
credential, err := credentials.NewCredential(nil)
// 通过credentials获取配置中的AccessKey ID
accessKeyId, err := credential.GetAccessKeyId()
// 通过credentials获取配置中的AccessKey Secret
accessKeySecret, err := credential.GetAccessKeySecret()
// 访问的域名,支持ipv4和ipv6两种方式,ipv6请使用docmind-api-dualstack.cn-hangzhou.aliyuncs.com
var endpoint string = "docmind-api.cn-hangzhou.aliyuncs.com"
config := openClient.Config{AccessKeyId: accessKeyId, AccessKeySecret: accessKeySecret, Endpoint: &endpoint}
// 初始化client
cli, err := client.NewClient(&config)
if err != nil {
panic(err)
}
id := "docmind-20230201-ContainerLoadPlan-********"
request := client.GetSingleDocumentExtractResultRequest{
Id: &id,
}
// 替换成具体结果查询类API接口的方法,示例方法是出口报关单识别接口
response, err := cli.GetSingleDocumentExtractResult(&request)
if err != nil {
panic(err)
}
fmt.Println(response.Body.GoString())
}
using Newtonsoft.Json;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Threading.Tasks;
using Tea;
using Tea.Utils;
public static void GetResult()
{
// 使用默认凭证初始化Credentials Client。
var akCredential = new Aliyun.Credentials.Client(null);
AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
{
// 通过credentials获取配置中的AccessKey Secret
AccessKeyId = akCredential.GetAccessKeyId(),
// 通过credentials获取配置中的AccessKey Secret
AccessKeySecret = akCredential.GetAccessKeySecret(),
};
// 访问的域名
config.Endpoint = "docmind-api.cn-hangzhou.aliyuncs.com";
AlibabaCloud.SDK.Docmind_api20220729.Client client = new AlibabaCloud.SDK.Docmind_api20220729.Client(config);
AlibabaCloud.SDK.Docmind_api20220729.Models.GetSingleDocumentExtractResultRequest request = new AlibabaCloud.SDK.Docmind_api20220729.Models.GetSingleDocumentExtractResultRequest
{
Id = "docmind-20220712-ContainerLoadPlan-b15f****"
};
AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
try
{
// 复制代码运行请自行打印 API 的返回值
client.GetSingleDocumentExtractResult(request);
}
catch (TeaException error)
{
// 如有需要,请打印 error
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
}
catch (Exception _error)
{
TeaException error = new TeaException(new Dictionary<string, object>
{
{ "message", _error.Message }
});
// 如有需要,请打印 error
AlibabaCloud.TeaUtil.Common.AssertAsString(error.Message);
}
}
use AlibabaCloud\SDK\Docmindapi\V20220729\Docmindapi;
use AlibabaCloud\SDK\Docmindapi\V20220729\Models\GetSingleDocumentExtractResultRequest;
use Darabonba\OpenApi\Models\Config;
use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
use AlibabaCloud\Tea\Exception\TeaUnableRetryError;
use AlibabaCloud\Credentials\Credential;
// 使用默认凭证初始化Credentials Client。
$bearerToken = new Credential();
$config = new Config();
// 访问的域名,支持ipv4和ipv6两种方式,ipv6请使用docmind-api-dualstack.cn-hangzhou.aliyuncs.com
$config->endpoint = "docmind-api.cn-hangzhou.aliyuncs.com";
// 通过credentials获取配置中的AccessKey ID
$config->accessKeyId = $bearerToken->getCredential()->getAccessKeyId();
// 通过credentials获取配置中的AccessKey Secret
$config->accessKeySecret = $bearerToken->getCredential()->getAccessKeySecret();
$config->type = "access_key";
$config->regionId = "cn-hangzhou";
$client = new Docmindapi($config);
$request = new GetSingleDocumentExtractResultRequest();
$request->id = "docmind-20220712-ContainerLoadPlan-b15f****";
$runtime = new RuntimeOptions();
$runtime->maxIdleConns = 3;
$runtime->connectTimeout = 10000;
$runtime->readTimeout = 10000;
try {
$response = $client->getSingleDocumentExtractResult($request, $runtime);
var_dump($response->toMap());
} catch (TeaUnableRetryError $e) {
var_dump($e->getMessage());
var_dump($e->getErrorInfo());
var_dump($e->getLastException());
var_dump($e->getLastRequest());
}
查询结果有处理中、处理成功、处理失败三种情况,分别说明每种情况的返回结果示例。
处理中的返回结果
{
"RequestId": "2AABD2C2-D24F-12F7-875D-683A27C3****",
"Completed": false,
"Code": "DocProcessing",
"Message": "Document processing",
"HostId": "ocr-api.cn-hangzhou.aliyuncs.com",
"Recommend": "https://next.api.aliyun.com/troubleshoot?q=DocProcessing&product=docmind-api"
}
处理中:Completed会返回false,表示任务没有处理结束,仍在处理中。这种情况需要继续轮询,直到明确返回Completed为true或者超过轮询最大时间。
处理失败的返回结果
{
"RequestId": "A8EF3A36-1380-1116-A39E-B377BE27****",
"Completed": true,
"Status": "Fail",
"Code": "UrlNotLegal",
"Message": "Failed to process the document. The document url you provided is not legal.",
"HostId": "docmind-api.cn-hangzhou.aliyuncs.com",
"Recommend": "https://next.api.aliyun.com/troubleshoot?q=IDP.UrlNotLegal&product=docmind-api"
}
处理失败时:Completed会返回true,表示任务处理结束;Status会返回“Fail”,表示处理失败;同时会返回失败Code和详细原因Message。访问错误码可以查看错误码详细介绍。
处理成功的返回结果
{
"Completed":true,
"Status":"Success",
"RequestId":"4C71250F-CBAF-1ABA-8128-E4BD4A******",
"Data":{
"result":{
"kvListInfo":[
[
[
{
"valuePos":[
{
"width":96,
"x":207,
"y":144,
"pageId":1,
"height":10
}
],
"parsedValue":[
"JJCSIIKEK174262"
],
"valueSourceList":[
{
"documentType":"ContainerLoadPlan",
"parsedValue":"JJCSIIKEK174262",
"width":96,
"x":207,
"y":144,
"pageId":1,
"value":"JJCSIIKEK174262",
"height":10
}
],
"extractedValue":[
"JJCSIIKEK174262"
],
"keyDesc":[
"提单号"
],
"value":[
"JJCSIIKEK174262"
],
"key":[
"BLNo"
],
"extInfo":{
"recognizeFrom":"OCR",
"extractFrom":"NLP"
}
},
{
"valuePos":[
{
"width":35,
"x":330,
"y":139,
"pageId":1,
"height":14
}
],
"parsedValue":[
"1000"
],
"valueSourceList":[
{
"documentType":"ContainerLoadPlan",
"parsedValue":"1000",
"width":35,
"x":330,
"y":139,
"pageId":1,
"value":"1000",
"height":14
}
],
"extractedValue":[
"1000"
],
"keyDesc":[
"商品件数"
],
"value":[
"1000"
],
"key":[
"GPackNo"
],
"extInfo":{
"recognizeFrom":"OCR",
"extractFrom":"NLP"
}
},
{
"valuePos":[
{
"width":67,
"x":407,
"y":142,
"pageId":1,
"height":15
}
],
"parsedValue":[
"22,000.00"
],
"valueSourceList":[
{
"documentType":"ContainerLoadPlan",
"parsedValue":"22,000.00",
"width":67,
"x":407,
"y":142,
"pageId":1,
"value":"22,000.00",
"height":15
}
],
"extractedValue":[
"22,000.00"
],
"keyDesc":[
"商品毛重"
],
"value":[
"22,000.00"
],
"key":[
"GGrossWet"
],
"extInfo":{
"recognizeFrom":"OCR",
"extractFrom":"NLP"
}
},
{
"valuePos":[
{
"width":18,
"x":545,
"y":142,
"pageId":1,
"height":13
}
],
"parsedValue":[
"68"
],
"valueSourceList":[
{
"documentType":"ContainerLoadPlan",
"parsedValue":"68",
"width":18,
"x":545,
"y":142,
"pageId":1,
"value":"68",
"height":13
}
],
"extractedValue":[
"68"
],
"keyDesc":[
"商品体积"
],
"value":[
"68"
],
"key":[
"GMeasurement"
],
"extInfo":{
"recognizeFrom":"OCR",
"extractFrom":"NLP"
}
}
]
]
],
"kvInfo":[
{
"valuePos":[
{
"width":116,
"x":21,
"y":85,
"pageId":1,
"height":11
}
],
"parsedValue":[
"BLUE OCEAN"
],
"valueSourceList":[
{
"documentType":"ContainerLoadPlan",
"parsedValue":"BLUE OCEAN",
"width":116,
"x":21,
"y":85,
"pageId":1,
"value":"BLUE OCEAN",
"height":11
}
],
"extractedValue":[
"BLUE OCEAN"
],
"keySourceList":[
],
"keyPos":[
],
"keyDesc":[
"船名"
],
"value":[
"BLUE OCEAN"
],
"key":[
"VesselName"
],
"extInfo":{
"recognizeFrom":"OCR",
"extractFrom":"NLP"
}
},
{
"valuePos":[
{
"width":116,
"x":21,
"y":85,
"pageId":1,
"height":11
}
],
"parsedValue":[
"2134S"
],
"valueSourceList":[
{
"documentType":"ContainerLoadPlan",
"parsedValue":"2134S",
"width":116,
"x":21,
"y":85,
"pageId":1,
"value":"2134S",
"height":11
}
],
"extractedValue":[
"2134S"
],
"keySourceList":[
],
"keyPos":[
],
"keyDesc":[
"航次"
],
"value":[
"2134S"
],
"key":[
"VoyNo"
],
"extInfo":{
"recognizeFrom":"OCR",
"extractFrom":"NLP"
}
},
{
"valuePos":[
{
"width":93,
"x":24,
"y":120,
"pageId":1,
"height":13
}
],
"parsedValue":[
"TCLU8709520"
],
"valueSourceList":[
{
"documentType":"ContainerLoadPlan",
"parsedValue":"TCLU8709520",
"width":93,
"x":24,
"y":120,
"pageId":1,
"value":"TCLU8709520",
"height":13
}
],
"extractedValue":[
"TCLU8709520"
],
"keySourceList":[
],
"keyPos":[
],
"keyDesc":[
"箱号"
],
"value":[
"TCLU8709520"
],
"key":[
"ContainerNo"
],
"extInfo":{
"recognizeFrom":"OCR",
"extractFrom":"NLP"
}
},
{
"valuePos":[
{
"width":71,
"x":22,
"y":155,
"pageId":1,
"height":11
}
],
"parsedValue":[
"FX17923083"
],
"valueSourceList":[
{
"documentType":"ContainerLoadPlan",
"parsedValue":"FX17923083",
"width":71,
"x":22,
"y":155,
"pageId":1,
"value":"FX17923083",
"height":11
}
],
"extractedValue":[
"FX17923083"
],
"keySourceList":[
],
"keyPos":[
],
"keyDesc":[
"封号"
],
"value":[
"FX17923083"
],
"key":[
"SealNo"
],
"extInfo":{
"recognizeFrom":"OCR",
"extractFrom":"NLP"
}
},
{
"valuePos":[
{
"width":37,
"x":227,
"y":91,
"pageId":1,
"height":10
}
],
"parsedValue":[
"CNSHA"
],
"valueSourceList":[
{
"documentType":"ContainerLoadPlan",
"parsedValue":"CNSHA",
"width":37,
"x":227,
"y":91,
"pageId":1,
"value":"CNSHA",
"height":10
}
],
"extractedValue":[
"CNSHA"
],
"keySourceList":[
],
"keyPos":[
],
"keyDesc":[
"启运港"
],
"value":[
"CNSHA"
],
"key":[
"PortOfLoading"
],
"extInfo":{
"recognizeFrom":"OCR",
"extractFrom":"NLP"
}
},
{
"valuePos":[
{
"width":38,
"x":326,
"y":93,
"pageId":1,
"height":11
}
],
"parsedValue":[
"USXKB"
],
"valueSourceList":[
{
"documentType":"ContainerLoadPlan",
"parsedValue":"USXKB",
"width":38,
"x":326,
"y":93,
"pageId":1,
"value":"USXKB",
"height":11
}
],
"extractedValue":[
"USXKB"
],
"keySourceList":[
],
"keyPos":[
],
"keyDesc":[
"卸货港"
],
"value":[
"USXKB"
],
"key":[
"PortOfDischarge"
],
"extInfo":{
"recognizeFrom":"OCR",
"extractFrom":"NLP"
}
},
{
"valuePos":[
{
"width":34,
"x":331,
"y":418,
"pageId":1,
"height":14
}
],
"parsedValue":[
"1000"
],
"valueSourceList":[
{
"documentType":"ContainerLoadPlan",
"parsedValue":"1000",
"width":34,
"x":331,
"y":418,
"pageId":1,
"value":"1000",
"height":14
}
],
"extractedValue":[
"1000"
],
"keySourceList":[
],
"keyPos":[
],
"keyDesc":[
"件数总和"
],
"value":[
"1000"
],
"key":[
"TotalPackages"
],
"extInfo":{
"recognizeFrom":"OCR",
"extractFrom":"NLP"
}
},
{
"valuePos":[
{
"width":66,
"x":406,
"y":418,
"pageId":1,
"height":14
}
],
"parsedValue":[
"22,000.00"
],
"valueSourceList":[
{
"documentType":"ContainerLoadPlan",
"parsedValue":"22,000.00",
"width":66,
"x":406,
"y":418,
"pageId":1,
"value":"22,000.00",
"height":14
}
],
"extractedValue":[
"22,000.00"
],
"keySourceList":[
],
"keyPos":[
],
"keyDesc":[
"毛重总和"
],
"value":[
"22,000.00"
],
"key":[
"TotalCargoWt"
],
"extInfo":{
"recognizeFrom":"OCR",
"extractFrom":"NLP"
}
},
{
"valuePos":[
{
"width":19,
"x":521,
"y":418,
"pageId":1,
"height":12
}
],
"parsedValue":[
"68"
],
"valueSourceList":[
{
"documentType":"ContainerLoadPlan",
"parsedValue":"68",
"width":19,
"x":521,
"y":418,
"pageId":1,
"value":"68",
"height":12
}
],
"extractedValue":[
"68"
],
"keySourceList":[
],
"keyPos":[
],
"keyDesc":[
"体积总和"
],
"value":[
"68"
],
"key":[
"TotalMeas"
],
"extInfo":{
"recognizeFrom":"OCR",
"extractFrom":"NLP"
}
}
],
"pageInfo":[
{
"documentType":"ContainerLoadPlan",
"originalFileUrl":"https://docmind-api-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/publicIndustryExtract/testData/%E4%BA%8C%E6%9C%9F%E6%A0%B7%E4%BE%8B%E5%8D%95%E6%8D%AE/%E8%BF%9B%E6%B8%AF%E7%AE%B1%E5%8D%95.png?Expires=1684308257&OSSAccessKeyId=LTAI5tQL9bqLHC5HYK******&Signature=tRpRtdGTA3pzCOtVc2jrw2TDS7Y%3D",
"source":"OCR",
"pageId":1,
"pdfParseResult":"http://docmind-api-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/publicIndustryExtract/docmind-20230516-ContainerLoadPlan-67******/EasyPDF/0.txt?Expires=1684225504&OSSAccessKeyId=LTAI5tQL9bqLHC5HYK******&Signature=38ZCA2BeRqlTAI0UIHoQd84xK3s%3D",
"documentFileName":"进港箱单.png",
"filePageId":1,
"imageUrl":"http://docmind-api-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/publicIndustryExtract/docmind-20230516-ContainerLoadPlan-67******/0.png?Expires=1684225504&OSSAccessKeyId=LTAI5tQL9bqLHC5HYK******&Signature=ERF30qXwZlshSXeuUUyCTwMa630%3D",
"ocrStructuredResultUrl":"http://docmind-api-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/publicIndustryExtract/docmind-20230516-ContainerLoadPlan-67******/1_extract.txt?Expires=1684225460&OSSAccessKeyId=LTAI5tQL9bqLHC5HYK******&Signature=uUW%2Bd1%2FWZYRafNYl7MRa8G95rYk%3D",
"width":761,
"angle":0,
"fileType":"png",
"height":499
}
]
},
"errorMessage":null,
"errorCode":null,
"status":"success"
}
}
处理成功时:Completed会返回true,表示任务处理结束;Status会返回“Success”,表示处理成功。
- 本页导读 (0)