RecognizeGeneralStructure - 通用票证抽取

通用票证抽取结合读光OCR和通义千问大模型的能力,能够自动抽取非标准、非高频的长尾票证关键信息,适用于票据、合同等场景。

接口说明

如何使用本接口

步骤概述
1开通 OCR 统一识别 服务。本接口在公测阶段,是免费接口,开通后即可调用。
3可以参照调试页面 提供的代码示例完成 API 接入开发。接入完成后,调用 API 获取识别结果。如果使用子账号调用接口,需要阿里云账号(主账号)对 RAM 账号进行授权。创建 RAM 用户的具体操作,请参考:创建 RAM 用户。文字识别服务提供一种系统授权策略,即 AliyunOCRFullAccess。具体授权操作,请参见在用户页面为 RAM 用户授权。

重要提示

类型概述
图片格式
  • 本接口支持:PNG、JPG、JPEG、BMP、GIF、TIFF、WebP。
图片尺寸
  • 图片长宽需要大于 15 像素,小于 8192 像素。
  • 长宽比需要小于 50。
  • 如需达到较好识别效果,建议长宽均大于 500px。
图片大小
  • 图片二进制文件不能超过 10MB。
  • 图片过大会影响接口响应速度,建议使用小于 1.5M 图片进行识别,且通过传图片 URL 的方式调用接口。
其他提示
  • 请保证整张图片内容及其边缘包含在图像内。
  • 本能力会自动处理反光、扭曲等干扰信息,但会影响精度。请尽量选择清晰度高、无反光、无扭曲的图片。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。
  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。
  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:
    • 对于必选的资源类型,用背景高亮的方式表示。
    • 对于不支持资源级授权的操作,用全部资源表示。
  • 条件关键字:是指云产品自身定义的条件关键字。
  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。
操作访问级别资源类型条件关键字关联操作
ocr:RecognizeGeneralStructurenone
*全部资源
*

请求参数

名称类型必填描述示例值
Urlstring
  • 本字段和 body 字段二选一,不可同时透传或同时为空。
  • 图片链接(长度不超过 2048 字节,不支持 base64)。
https://example.png
bodybyte
  • 本字段和 URL 字段二选一,不可同时透传或同时为空。
  • 图片二进制文件,最大 10MB。
  • 使用 HTTP 方式调用,把图片二进制文件放到 HTTP body 中上传即可。
  • 使用 SDK 的方式调用,把图片放到 SDK 的 body 中即可。
图片二进制文件
Keysarray
  • 需要抽取的所有 Key(字符串数组)。
  • 默认值为,表示由大模型自动判断需要抽取的 Key。
  • Key 的上限数量为 30(包含 30)。
  • 建议调用接口时传此参数,减小接口耗时。请注意:接口响应时间和 Key 的数量呈正相关关系。
string
  • 需要抽取的 Key。
  • 请注意:每个 Key 的长度限制为:50(包含 50)。
"姓名"

请求注意事项

  1. 此接口 30 秒超时。
  2. 如果通过 OCR SDK 调用接口,SDK 默认的 socketTimeout10 秒。请注意通过适当增加 RuntimeOptionssocketTimeout 参数的值。
  3. 如果传入的 Key 数量过多,可能会返回 LLMTimeout 错误码。建议减少 Key 的数量后重试。

返回参数

名称类型描述示例值
object

Schema of Response

RequestIdstring

请求唯一 ID。

2F86F9B6-CF68-1574-860C-7CC5E46F14BC
Dataobject

识别结果。

Heightinteger

原图高度。

2000
Widthinteger

原图宽度。

1000
SubImageCountinteger

图片包含的子图数量。

1
SubImagesarray<object>

图片包含的子图信息。

subImagesobject
SubImageIdinteger

子图 ID(编号从 0 开始)。

0
Angleinteger

子图顺时针旋转角度(范围:0~359 度)。

0
KvInfoobject
  • 子图的结构化信息。
KvCountinteger

子图所包含结构化信息的键值对数量。

6
Dataany
  • 结构化信息文字内容。字典类型,键为字段名称,值为字段对应的识别结果。
{ "姓名": "呂XX(LOI XX)", "护照号码": "MBXX", "签发机关": "澳門特別行政區身份證明局", "出生日期": "19XX年X月X日", "出生地": "澳門 (MACAO)", "国家码": "CHN", "性别": "F (女性)" }
Codestring

错误码(当识别成功时不会返回)。

LLMTimeout
Messagestring

错误信息(当识别成功时不会返回)。

Large language model timeout, please try again with fewer keys.

示例

正常返回示例

JSON格式

{
  "RequestId": "2F86F9B6-CF68-1574-860C-7CC5E46F14BC",
  "Data": {
    "Height": 2000,
    "Width": 1000,
    "SubImageCount": 1,
    "SubImages": [
      {
        "SubImageId": 0,
        "Angle": 0,
        "KvInfo": {
          "KvCount": 6,
          "Data": "{\n  \"姓名\": \"呂XX(LOI XX)\",\n  \"护照号码\": \"MBXX\",\n  \"签发机关\": \"澳門特別行政區身份證明局\",\n  \"出生日期\": \"19XX年X月X日\",\n  \"出生地\": \"澳門 (MACAO)\",\n  \"国家码\": \"CHN\",\n  \"性别\": \"F (女性)\"\n}"
        }
      }
    ]
  },
  "Code": "LLMTimeout",
  "Message": "Large language model timeout, please try again with fewer keys."
}

错误码

HTTP status code错误码错误信息描述
400ExceededKeyNumberToo many keys, please try again with fewer keys.调用大模型超时,请减少抽取的Key数量,然后重试。
400DataInspectionFailedInput or output data may contain inappropriate content.数据检查错误,输入或者输出包含疑似敏感内容被绿网拦截。
504LLMTimeoutLarge language model timeout, please try again with fewer keys.调用大模型超时,请减少抽取的Key数量,然后重试。

访问错误中心查看更多错误码。

变更历史

变更时间变更内容概要操作
2024-07-10OpenAPI 错误码发生变更查看变更详情