文档

海运运单识别

更新时间:

文档介绍了海运运单识别API的调用方式,调用前,请先阅读API概览

步骤一:调用异步提交服务

异步提交服务支持本地文件和URL文件两种方式:

URL上传的异步提交服务接口为:SubmitSeaWaybillExtractJob接口。

本地文件上传的异步提交服务接口为:SubmitSeaWaybillExtractJobAdvance接口。

请求参数

名称

类型

必填

描述

示例值

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

说明

支持的文档格式:PDF、Word、Excel和图片(JPG、JPEG、PNG、BMP、GIF)。

返回参数

名称

类型

描述

示例值

RequestId

string

请求唯一ID。

43A29C77-405E-4CC0-BC55-EE694AD0****

Data

object

返回数据。

{"Id": "docmind-20220712-b15f****"}

+id

string

业务订单号,用于后续查询接口进行查询的唯一标识。

docmind-20230423-SeaWaybill-b15f****

Code

string

状态码。

200

Message

string

状态详细信息。

message

示例

本接口支持本地文档上传和传入文档URL这两种调用方式。

本地文档上传调用方式的请求示例代码如下,调用SubmitSeaWaybillExtractJobAdvance接口,通过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();
    SubmitSeaWaybillExtractJobAdvanceRequest advanceRequest = new SubmitSeaWaybillExtractJobAdvanceRequest();
    File file = new File("D:\\example.pdf");
    advanceRequest.fileUrlObject = new FileInputStream(file);
    advanceRequest.fileName = "example.pdf";
    // 发起请求并处理应答或异常。
    SubmitSeaWaybillExtractJobResponse response = client.submitSeaWaybillExtractJobAdvance(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.SubmitSeaWaybillExtractJobAdvanceRequest();
  const file = fs.createReadStream('./example.pdf');
  advanceRequest.fileUrlObject = file;
  advanceRequest.fileName = 'example.pdf';
  const runtimeObject = new Util.RuntimeOptions({});
  const response = await client.submitSeaWaybillExtractJobAdvance(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.SubmitSeaWaybillExtractJobAdvanceRequest(
        # 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_sea_waybill_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.SubmitSeaWaybillExtractJobAdvanceRequest{
		FileName:      &filename,
		FileUrlObject: f,
	}

	// 替换成具体异步任务提交类API接口的入参和方法,示例方法是出口报关单识别接口
	response, err := cli.SubmitSeaWaybillExtractJobAdvance(&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.SubmitSeaWaybillExtractJobAdvanceRequest request = new AlibabaCloud.SDK.Docmind_api20220729.Models.SubmitSeaWaybillExtractJobAdvanceRequest
            {
                FileUrlObject = bodySyream,
                FileNameExtension = "pdf"
            };
            AlibabaCloud.TeaUtil.Models.RuntimeOptions runtime = new AlibabaCloud.TeaUtil.Models.RuntimeOptions();
            try
            {
                // 复制代码运行请自行打印 API 的返回值
                client.SubmitSeaWaybillExtractJobAdvance(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调用方式的请求示例代码如下,调用SubmitSeaWaybillExtractJob接口,通过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);
    SubmitSeaWaybillExtractJobRequest request  = new SubmitSeaWaybillExtractJobRequest();
    request.fileName = "example.pdf";
    request.fileUrl = "https://example.com/example.pdf";
    SubmitSeaWaybillExtractJobResponse response = client.submitSeaWaybillExtractJob(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.SubmitSeaWaybillExtractJobRequest();
  request.fileName = 'example.pdf';
  request.fileUrl = 'https://example.com/example.pdf';
  const response = await client.submitSeaWaybillExtractJob(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.SubmitSeaWaybillExtractJobRequest(
        # 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_sea_waybill_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.SubmitSeaWaybillExtractJobRequest{
		FileName: &filename,
		FileUrl:  &fileUrl,
	}

	// 替换成具体异步任务提交类API接口的入参和方法,示例方法是出口报关单识别接口
	response, err := cli.SubmitSeaWaybillExtractJob(&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.SubmitSeaWaybillExtractJobRequest request = new AlibabaCloud.SDK.Docmind_api20220729.Models.SubmitSeaWaybillExtractJobRequest
            {
                FileUrl = "https://example.pdf",
                FileNameExtension = "pdf"
            };
            try
            {
                // 复制代码运行请自行打印 API 的返回值
                client.SubmitSeaWaybillExtractJob(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\SubmitBillOfLadingExtractJobRequest;
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 SubmitSeaWaybillExtractJobRequest();

$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->submitSeaWaybillExtractJob($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-20230423-SeaWaybill-b15f****"
  }  
}

步骤二:轮询结果查询服务GetSingleDocumentExtractResult接口

调用查询接口的入参ID就是前面异步任务提交接口返回的出参ID,查询结果有处理中、处理成功、处理失败三种情况。建议每10秒轮询一次,最多轮询10分钟。若明确返回Completed为true或者超过轮询最大时间,则终止轮询。

请求参数

名称

类型

必填

描述

示例值

Id

string

需要查询的业务订单号,订单号从提交接口的返回结果中获取。

docmind-20230423-SeaWaybill-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-20230423-SeaWaybill-b15f****";
    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-20220902-824b****";
  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-20220712-BillOfLading-b15f****'
    )
    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-20220712-BillOfLading-b15f****"
	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-BillOfLading-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-20220902-824b****";

$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。访问错误码可以查看错误码详细介绍。

  • 处理成功的返回结果

{
    "requestId":"2269B30A-3217-1B9C-AB64-D9421216****",
    "completed":true,
    "status":"Success",
    "data":{
        "result":{
            "kvListInfo":[
                [
                    [
                        {
                            "valuePos":[
                                {
                                    "width":309,
                                    "x":578,
                                    "y":1818,
                                    "pageId":1,
                                    "height":41
                                }
                            ],
                            "parsedValue":[
                                "15 PALLETS"
                            ],
                            "valueSourceList":[
                                {
                                    "documentType":"SeawayBill",
                                    "parsedValue":"15 PALLETS",
                                    "width":309,
                                    "x":578,
                                    "y":1818,
                                    "pageId":1,
                                    "value":"15",
                                    "height":41
                                }
                            ],
                            "extractedValue":[
                                "15"
                            ],
                            "keyDesc":[
                                "商品件数"
                            ],
                            "value":[
                                "15"
                            ],
                            "key":[
                                "GPackNo"
                            ],
                            "extInfo":{
                                "recognizeFrom":"OCR",
                                "extractFrom":"NLP"
                            }
                        },
                        {
                            "valuePos":[
                                {
                                    "width":242,
                                    "x":1690,
                                    "y":1824,
                                    "pageId":1,
                                    "height":42
                                }
                            ],
                            "parsedValue":[
                                "5230.000"
                            ],
                            "valueSourceList":[
                                {
                                    "documentType":"SeawayBill",
                                    "parsedValue":"5230.000",
                                    "width":242,
                                    "x":1690,
                                    "y":1824,
                                    "pageId":1,
                                    "value":"5230.000",
                                    "height":42
                                }
                            ],
                            "extractedValue":[
                                "5230.000"
                            ],
                            "keyDesc":[
                                "商品毛重"
                            ],
                            "value":[
                                "5230.000"
                            ],
                            "key":[
                                "GGrossWet"
                            ],
                            "extInfo":{
                                "recognizeFrom":"OCR",
                                "extractFrom":"NLP"
                            }
                        },
                        {
                            "valuePos":[
                                {
                                    "width":186,
                                    "x":2018,
                                    "y":1825,
                                    "pageId":1,
                                    "height":42
                                }
                            ],
                            "parsedValue":[
                                "20.080"
                            ],
                            "valueSourceList":[
                                {
                                    "documentType":"SeawayBill",
                                    "parsedValue":"20.080",
                                    "width":186,
                                    "x":2018,
                                    "y":1825,
                                    "pageId":1,
                                    "value":"20.080",
                                    "height":42
                                }
                            ],
                            "extractedValue":[
                                "20.080"
                            ],
                            "keyDesc":[
                                "商品体积"
                            ],
                            "value":[
                                "20.080"
                            ],
                            "key":[
                                "GMeasurement"
                            ],
                            "extInfo":{
                                "recognizeFrom":"OCR",
                                "extractFrom":"NLP"
                            }
                        }
                    ]
                ]
            ],
            "pageInfo":[
                {
                    "documentFileName":"26b8b6ca.pdf",
                    "documentType":"SeawayBill",
                    "filePageId":1,
                    "imageUrl":"http://docmind-api-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/publicIndustryExtract/docmind-20230428-SeaWaybill-63****/0.jpg?Expires=1682653009&OSSAccessKeyId=LTAI5tQL9bqLHC5HYK****&Signature=43fopcF%2FT2lBTDTSGS%2FvbImuKHo%3D",
                    "width":2539,
                    "angle":0,
                    "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/%E6%B5%B7%E8%BF%90%E5%8D%95.jpg?Expires=1682735804&OSSAccessKeyId=LTAI5tQL9bqLHC5HYK****&Signature=i30eUIeWzuT4804DsTBI%2BJMabZE%3D",
                    "source":"OCR",
                    "pageId":1,
                    "pdfParseResult":"http://docmind-api-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/publicIndustryExtract/docmind-20230428-SeaWaybill-63****/EasyPDF/0.txt?Expires=1682653009&OSSAccessKeyId=LTAI5tQL9bqLHC5HYK****&Signature=hXoZ4WnMOpnjjfjBwFtX7Q%2Fk%2Bbc%3D",
                    "fileType":"jpg",
                    "height":3546
                }
            ],
            "kvInfo":[
                {
                    "valuePos":[
                        {
                            "width":390,
                            "x":551,
                            "y":2744,
                            "pageId":1,
                            "height":35
                        },
                        {
                            "width":30,
                            "x":512,
                            "y":2789,
                            "pageId":1,
                            "height":36
                        }
                    ],
                    "parsedValue":[
                        "Packages received by the Carrier:1"
                    ],
                    "valueSourceList":[
                        {
                            "documentType":"SeawayBill",
                            "parsedValue":"Packages received by the Carrier:",
                            "width":390,
                            "x":551,
                            "y":2744,
                            "pageId":1,
                            "value":"Packages received by the Carrier: 1",
                            "height":35
                        },
                        {
                            "documentType":"SeawayBill",
                            "parsedValue":"1",
                            "width":30,
                            "x":512,
                            "y":2789,
                            "pageId":1,
                            "value":"Packages received by the Carrier: 1",
                            "height":36
                        }
                    ],
                    "extractedValue":[
                        "Packages received by the Carrier: 1"
                    ],
                    "keySourceList":[

                    ],
                    "keyPos":[

                    ],
                    "keyDesc":[
                        "集装箱总数"
                    ],
                    "value":[
                        "Packages received by the Carrier: 1"
                    ],
                    "key":[
                        "ContainerTotalNo"
                    ],
                    "extInfo":{
                        "recognizeFrom":"OCR",
                        "extractFrom":"NLP"
                    }
                },
                {
                    "valuePos":[
                        {
                            "width":187,
                            "x":40,
                            "y":1543,
                            "pageId":1,
                            "height":40
                        }
                    ],
                    "parsedValue":[
                        "NINGBO"
                    ],
                    "valueSourceList":[
                        {
                            "documentType":"SeawayBill",
                            "parsedValue":"NINGBO",
                            "width":187,
                            "x":40,
                            "y":1543,
                            "pageId":1,
                            "value":"NINGBO",
                            "height":40
                        }
                    ],
                    "extractedValue":[
                        "NINGBO"
                    ],
                    "keySourceList":[

                    ],
                    "keyPos":[

                    ],
                    "keyDesc":[
                        "起运港"
                    ],
                    "value":[
                        "NINGBO"
                    ],
                    "key":[
                        "PortOfLoading"
                    ],
                    "extInfo":{
                        "recognizeFrom":"OCR",
                        "extractFrom":"NLP"
                    }
                },
                {
                    "valuePos":[
                        {
                            "width":366,
                            "x":40,
                            "y":1642,
                            "pageId":1,
                            "height":41
                        }
                    ],
                    "parsedValue":[
                        "ROTTERDAM.NL"
                    ],
                    "valueSourceList":[
                        {
                            "documentType":"SeawayBill",
                            "parsedValue":"ROTTERDAM.NL",
                            "width":366,
                            "x":40,
                            "y":1642,
                            "pageId":1,
                            "value":"ROTTERDAM.NL",
                            "height":41
                        }
                    ],
                    "extractedValue":[
                        "ROTTERDAM.NL"
                    ],
                    "keySourceList":[

                    ],
                    "keyPos":[

                    ],
                    "keyDesc":[
                        "卸货港"
                    ],
                    "value":[
                        "ROTTERDAM.NL"
                    ],
                    "key":[
                        "PortOfDischarge"
                    ],
                    "extInfo":{
                        "recognizeFrom":"OCR",
                        "extractFrom":"NLP"
                    }
                },
                {
                    "valuePos":[
                        {
                            "width":366,
                            "x":40,
                            "y":1642,
                            "pageId":1,
                            "height":41
                        }
                    ],
                    "parsedValue":[
                        "ROTTERDAM.NL"
                    ],
                    "valueSourceList":[
                        {
                            "documentType":"SeawayBill",
                            "parsedValue":"ROTTERDAM.NL",
                            "width":366,
                            "x":40,
                            "y":1642,
                            "pageId":1,
                            "value":"ROTTERDAM.NL",
                            "height":41
                        }
                    ],
                    "extractedValue":[
                        "ROTTERDAM.NL"
                    ],
                    "keySourceList":[

                    ],
                    "keyPos":[

                    ],
                    "keyDesc":[
                        "交货地"
                    ],
                    "value":[
                        "ROTTERDAM.NL"
                    ],
                    "key":[
                        "PlaceOfDelivery"
                    ],
                    "extInfo":{
                        "recognizeFrom":"OCR",
                        "extractFrom":"NLP"
                    }
                },
                {
                    "valuePos":[
                        {
                            "width":1214,
                            "x":30,
                            "y":2285,
                            "pageId":1,
                            "height":48
                        }
                    ],
                    "parsedValue":[
                        "VESSEL NAME: MARSTAL MAERSK VOYAGE: 124W"
                    ],
                    "valueSourceList":[
                        {
                            "documentType":"SeawayBill",
                            "parsedValue":"VESSEL NAME: MARSTAL MAERSK VOYAGE: 124W",
                            "width":1214,
                            "x":30,
                            "y":2285,
                            "pageId":1,
                            "value":"124W",
                            "height":48
                        }
                    ],
                    "extractedValue":[
                        "124W"
                    ],
                    "keySourceList":[

                    ],
                    "keyPos":[

                    ],
                    "keyDesc":[
                        "航次"
                    ],
                    "value":[
                        "124W"
                    ],
                    "key":[
                        "VoyNo"
                    ],
                    "extInfo":{
                        "recognizeFrom":"OCR",
                        "extractFrom":"NLP"
                    }
                },
                {
                    "valuePos":[
                        {
                            "width":1214,
                            "x":30,
                            "y":2285,
                            "pageId":1,
                            "height":48
                        }
                    ],
                    "parsedValue":[
                        "VESSEL NAME: MARSTAL MAERSK VOYAGE: 124W"
                    ],
                    "valueSourceList":[
                        {
                            "documentType":"SeawayBill",
                            "parsedValue":"VESSEL NAME: MARSTAL MAERSK VOYAGE: 124W",
                            "width":1214,
                            "x":30,
                            "y":2285,
                            "pageId":1,
                            "value":"NAME: MARSTAL MAERSK VOYAGE:",
                            "height":48
                        }
                    ],
                    "extractedValue":[
                        "NAME: MARSTAL MAERSK VOYAGE:"
                    ],
                    "keySourceList":[

                    ],
                    "keyPos":[

                    ],
                    "keyDesc":[
                        "船名"
                    ],
                    "value":[
                        "NAME: MARSTAL MAERSK VOYAGE:"
                    ],
                    "key":[
                        "VesselName"
                    ],
                    "extInfo":{
                        "recognizeFrom":"OCR",
                        "extractFrom":"NLP"
                    }
                },
                {
                    "valuePos":[
                        {
                            "width":130,
                            "x":37,
                            "y":1814,
                            "pageId":1,
                            "height":41
                        }
                    ],
                    "parsedValue":[
                        "HLBU"
                    ],
                    "valueSourceList":[
                        {
                            "documentType":"SeawayBill",
                            "parsedValue":"HLBU",
                            "width":130,
                            "x":37,
                            "y":1814,
                            "pageId":1,
                            "value":"HLBU",
                            "height":41
                        }
                    ],
                    "extractedValue":[
                        "HLBU"
                    ],
                    "keySourceList":[

                    ],
                    "keyPos":[

                    ],
                    "keyDesc":[
                        "唛头"
                    ],
                    "value":[
                        "HLBU"
                    ],
                    "key":[
                        "Marks"
                    ],
                    "extInfo":{
                        "recognizeFrom":"OCR",
                        "extractFrom":"NLP"
                    }
                },
                {
                    "valuePos":[
                        {
                            "width":309,
                            "x":578,
                            "y":1818,
                            "pageId":1,
                            "height":41
                        }
                    ],
                    "parsedValue":[
                        "15 PALLETS"
                    ],
                    "valueSourceList":[
                        {
                            "documentType":"SeawayBill",
                            "parsedValue":"15 PALLETS",
                            "width":309,
                            "x":578,
                            "y":1818,
                            "pageId":1,
                            "value":"PALLETS",
                            "height":41
                        }
                    ],
                    "extractedValue":[
                        "PALLETS"
                    ],
                    "keySourceList":[

                    ],
                    "keyPos":[

                    ],
                    "keyDesc":[
                        "包装种类"
                    ],
                    "value":[
                        "PALLETS"
                    ],
                    "key":[
                        "WrapType"
                    ],
                    "extInfo":{
                        "recognizeFrom":"OCR",
                        "extractFrom":"NLP"
                    }
                },
                {
                    "valuePos":[
                        {
                            "width":186,
                            "x":2018,
                            "y":1825,
                            "pageId":1,
                            "height":42
                        }
                    ],
                    "parsedValue":[
                        "20.080"
                    ],
                    "valueSourceList":[
                        {
                            "documentType":"SeawayBill",
                            "parsedValue":"20.080",
                            "width":186,
                            "x":2018,
                            "y":1825,
                            "pageId":1,
                            "value":"20.080",
                            "height":42
                        }
                    ],
                    "extractedValue":[
                        "20.080"
                    ],
                    "keySourceList":[

                    ],
                    "keyPos":[

                    ],
                    "keyDesc":[
                        "体积"
                    ],
                    "value":[
                        "20.080"
                    ],
                    "key":[
                        "Measurement"
                    ],
                    "extInfo":{
                        "recognizeFrom":"OCR",
                        "extractFrom":"NLP"
                    }
                },
                {
                    "valuePos":[
                        {
                            "width":242,
                            "x":1690,
                            "y":1824,
                            "pageId":1,
                            "height":42
                        }
                    ],
                    "parsedValue":[
                        "5230.000"
                    ],
                    "valueSourceList":[
                        {
                            "documentType":"SeawayBill",
                            "parsedValue":"5230.000",
                            "width":242,
                            "x":1690,
                            "y":1824,
                            "pageId":1,
                            "value":"5230.000",
                            "height":42
                        }
                    ],
                    "extractedValue":[
                        "5230.000"
                    ],
                    "keySourceList":[

                    ],
                    "keyPos":[

                    ],
                    "keyDesc":[
                        "毛重"
                    ],
                    "value":[
                        "5230.000"
                    ],
                    "key":[
                        "GrossWet"
                    ],
                    "extInfo":{
                        "recognizeFrom":"OCR",
                        "extractFrom":"NLP"
                    }
                },
                {
                    "valuePos":[
                        {
                            "width":459,
                            "x":30,
                            "y":2379,
                            "pageId":1,
                            "height":43
                        }
                    ],
                    "parsedValue":[
                        "FREIGHT PREPAID"
                    ],
                    "valueSourceList":[
                        {
                            "documentType":"SeawayBill",
                            "parsedValue":"FREIGHT PREPAID",
                            "width":459,
                            "x":30,
                            "y":2379,
                            "pageId":1,
                            "value":"FREIGHT PREPAID",
                            "height":43
                        }
                    ],
                    "extractedValue":[
                        "FREIGHT PREPAID"
                    ],
                    "keySourceList":[

                    ],
                    "keyPos":[

                    ],
                    "keyDesc":[
                        "运费条款"
                    ],
                    "value":[
                        "FREIGHT PREPAID"
                    ],
                    "key":[
                        "TermsOfPayment"
                    ],
                    "extInfo":{
                        "recognizeFrom":"OCR",
                        "extractFrom":"NLP"
                    }
                }
            ]
        },
        "status":"success"
    }
}

处理成功时:Completed会返回true,表示任务处理结束;Status会返回“Success”,表示处理成功。

  • 本页导读 (0)
文档反馈