接口简介
支持对原合同和对比合同内部所有文字与排版情况进行识别,输出结构化信息。
限制条件
名称 | 内容 |
---|
输入要求 | 1. 仅支持PDF格式合同比对。 2. 文件大小:要求Base64编码和urlencode之后不超过 8 MB。 3. 输入文件过大时,返回的HttpCode如下:400/413/502。 |
请求说明
基本信息
请求参数
以下请求参数列表仅列出了接口请求参数和必要公共参数,完整公共参数列表见 公共参数。
名称 | 类型 | 是否必填 | 描述 |
---|
X-Date | String | 是 | 使用UTC时间,精确到秒。请使用格式:YYYYMMDD'T'HHMMSS'Z' ,例如:20201103T104027Z |
Authorization | String | 是 | HMAC-SHA256:签名方法
-Credential为签名凭证,其中:
-AccessKeyId为访问密钥ID,可在 访问密钥(Access Key) 获取;
-ShortDate为请求的短时间,使用UTC时间,精确到日。请使用格式:YYYYMMDD ,例如:20180201 ;
-Region为请求地区,国内一般为为cn-north-1 ;
-Service为请求的服务,文字识别一般为cv ;
-SignedHeaders为参与签名计算的头部信息,content-type 和 host 为必选头部;
-Signature为签名,可在 签名方法 获取。
注:我们提供了SDK及签名示例供您实现服务快速接入,具体可参考 快速接入
例如:HMAC-SHA256 Credential={AccessKeyId}/{ShortDate}/{Region}/{Service}/request, SignedHeaders={SignedHeaders}, Signature={Signature} |
X-Security-Token | String | 否 | 指安全令牌服务(Security Token Service,STS) 颁发的临时安全凭证中的SessionToken,使用长期密钥时无需填写该参数。 |
Query请求参数
参数 | 可选/必选 | 类型 | 说明 |
---|
Action | 必选 | String | 接口名,取值:OcrTextAlignment |
Version | 必选 | String | 版本号,取值:2021-08-23 |
Body参数
参数 | 可选/必选 | 类型 | 说明 |
---|
org_contract_base64 | 必选 | String | 原始合同(PDF)的base64编码 注意: 只需要传PDF文件的base64值 |
cmp_contract_base64 | 必选 | String | 比对合同(PDF)的base64编码 注意: 只需要传PDF文件的base64值 |
list_punctuation | 可选 | String | 需要忽略的标点符号,如 ",?!:" |
输出说明
通用输出参数
请参考通用返回字段及错误码 |
业务输出参数
data 字段说明
字段 | 类型 | 说明 | 备注 |
---|
main | main | 主页面信息 | 字段说明见下方 |
main 字段说明
字段 | 类型 | 说明 | 备注 |
---|
contract_oprations | ContractOprations | 比对结果 | 主页信息 |
similar_ratio | Float | 文本相似度 | 主页信息 |
org_contract_page_text | Array of PageText | 原始合同文本内容 | 主页信息 |
compare_contract_page_text | Array of PageText | 比对合同文本内容 | 主页信息 |
PageText 字段说明
字段 | 类型 | 说明 |
---|
page_id | Int | 页码 |
full_page_text | Array of String | 页面全部行内容 |
ContractOprations 字段说明
DeleteItem 字段说明
InsertItem 字段说明
ReplaceItem 字段说明
字段 | 类型 | 说明 |
---|
org_contract_replace | Array of PagePolyText | 原始合同改动信息 |
compare_contract_replace | Array of PagePolyText | 比对合同改动信息 |
op_id | Int | 结果id |
PageStartEnd 字段说明
PagePolyText 字段说明
字段 | 类型 | 说明 |
---|
page_id | Int | 页码 |
poly | TextRotatedRect | 改动字符的精确位置 |
text | String | 改动字符内容 |
line_id | Int | 行号 |
line_poly | TextRotatedRect | 行位置 |
line_text | String | 行内容 |
char_id | Int | 首个text字符在该行的下标 |
type | String | 行类型 |
TextRotatedRect 字段说明
字段 | 类型 | 说明 |
---|
x0 | Float | 左上 x |
y0 | Float | 左上 y |
x1 | Float | 右上 x |
y1 | Float | 右上 y |
x2 | Float | 右下 x |
y2 | Float | 右下 y |
x3 | Float | 左下 x |
y3 | Float | 左下 y |
输出示例
{
"code":10000,
"data":{
"main":{
"contract_oprations":{
"delete_items":[
{
"org_contract_delete":[
{
"page_id":0,
"poly":{
"x0":0.15042,
"y0":0.406176,
"x1":0.371429,
"y1":0.406176,
"x2":0.371429,
"y2":0.421021,
"x3":0.15042,
"y3":0.421021
},
"text":"哗啦啦哗啦啦下雨啦下雨啦",
"line_id":6,
"line_poly":{
"x0":0.148739,
"y0":0.40677,
"x1":0.371429,
"y1":0.40677,
"x2":0.371429,
"y2":0.419834,
"x3":0.148739,
"y3":0.419834
},
"line_text":"哗啦啦哗啦啦下雨啦下雨啦",
"char_id":0,
"type":""
}
],
"compare_contract_delete":{
"start_line":{
"page_id":0,
"poly":{
"x0":0.412259,
"y0":0.229216,
"x1":0.420655,
"y1":0.229216,
"x2":0.420655,
"y2":0.24228,
"x3":0.412259,
"y3":0.24228
},
"text":"。",
"line_id":5,
"line_poly":{
"x0":0.150294,
"y0":0.229216,
"x1":0.417296,
"y1":0.229216,
"x2":0.417296,
"y2":0.24228,
"x3":0.150294,
"y3":0.24228
},
"line_text":"内容详见附件一《投放明细表》。",
"char_id":14,
"type":""
},
"end_line":{
"page_id":1,
"poly":{
"x0":0.150294,
"y0":0.087886,
"x1":0.165407,
"y1":0.087886,
"x2":0.165407,
"y2":0.100356,
"x3":0.150294,
"y3":0.100356
},
"text":"八",
"line_id":0,
"line_poly":{
"x0":0.148615,
"y0":0.086698,
"x1":0.256927,
"y1":0.086698,
"x2":0.256927,
"y2":0.099762,
"x3":0.148615,
"y3":0.099762
},
"line_text":"八.不可抗力",
"char_id":0,
"type":""
}
},
"op_id":3
}
],
"insert_items":[
{
"org_contract_insert":{
"start_line":{
"page_id":0,
"poly":{
"x0":0.205042,
"y0":0.332542,
"x1":0.223529,
"y1":0.332542,
"x2":0.223529,
"y2":0.345606,
"x3":0.205042,
"y3":0.345606
},
"text":"见",
"line_id":5,
"line_poly":{
"x0":0.15042,
"y0":0.331354,
"x1":0.360504,
"y1":0.331354,
"x2":0.360504,
"y2":0.3462,
"x3":0.15042,
"y3":0.3462
},
"line_text":"内容详见《投放明细表》。",
"char_id":3,
"type":""
},
"end_line":{
"page_id":0,
"poly":{
"x0":0.232773,
"y0":0.333729,
"x1":0.240336,
"y1":0.333729,
"x2":0.240336,
"y2":0.344418,
"x3":0.232773,
"y3":0.344418
},
"text":"《",
"line_id":5,
"line_poly":{
"x0":0.15042,
"y0":0.331354,
"x1":0.360504,
"y1":0.331354,
"x2":0.360504,
"y2":0.3462,
"x3":0.15042,
"y3":0.3462
},
"line_text":"内容详见《投放明细表》。",
"char_id":4,
"type":""
}
},
"compare_contract_insert":[
{
"page_id":0,
"poly":{
"x0":0.224181,
"y0":0.229216,
"x1":0.278757,
"y1":0.229216,
"x2":0.278757,
"y2":0.242874,
"x3":0.224181,
"y3":0.242874
},
"text":"附件一",
"line_id":5,
"line_poly":{
"x0":0.150294,
"y0":0.229216,
"x1":0.417296,
"y1":0.229216,
"x2":0.417296,
"y2":0.24228,
"x3":0.150294,
"y3":0.24228
},
"line_text":"内容详见附件一《投放明细表》。",
"char_id":4,
"type":""
}
],
"op_id":2
}
],
"replace_items":[
{
"org_contract_replace":[
{
"page_id":0,
"poly":{
"x0":0.27479,
"y0":0.150238,
"x1":0.293277,
"y1":0.150238,
"x2":0.293277,
"y2":0.162708,
"x3":0.27479,
"y3":0.162708
},
"text":"20",
"line_id":1,
"line_poly":{
"x0":0.152941,
"y0":0.150238,
"x1":0.623529,
"y1":0.150238,
"x2":0.623529,
"y2":0.164489,
"x3":0.152941,
"y3":0.164489
},
"line_text":"1.合作期限:2020年12月18日至2020年1月31日。",
"char_id":9,
"type":""
}
],
"compare_contract_replace":[
{
"page_id":0,
"poly":{
"x0":0.277078,
"y0":0.121734,
"x1":0.292191,
"y1":0.121734,
"x2":0.292191,
"y2":0.135986,
"x3":0.277078,
"y3":0.135986
},
"text":"19",
"line_id":1,
"line_poly":{
"x0":0.150294,
"y0":0.121734,
"x1":0.623846,
"y1":0.121734,
"x2":0.623846,
"y2":0.135986,
"x3":0.150294,
"y3":0.135986
},
"line_text":"1.合作期限:2019年12月18日至2020年1月31日。",
"char_id":9,
"type":""
}
],
"op_id":0
},
{
"org_contract_replace":[
{
"page_id":0,
"poly":{
"x0":0.793277,
"y0":0.204276,
"x1":0.848739,
"y1":0.204276,
"x2":0.848739,
"y2":0.218527,
"x3":0.793277,
"y3":0.218527
},
"text":"熠熠生",
"line_id":2,
"line_poly":{
"x0":0.148739,
"y0":0.204276,
"x1":0.847899,
"y1":0.204276,
"x2":0.847899,
"y2":0.218527,
"x3":0.148739,
"y3":0.218527
},
"line_text":"2.乙方按照甲方要求,为甲方A项目(下称\"项目\")提供稿件撰写及发布/稿件熠熠生",
"char_id":37,
"type":""
},
{
"page_id":0,
"poly":{
"x0":0.14958,
"y0":0.241686,
"x1":0.167227,
"y1":0.241686,
"x2":0.167227,
"y2":0.255344,
"x3":0.14958,
"y3":0.255344
},
"text":"辉",
"line_id":3,
"line_poly":{
"x0":0.148739,
"y0":0.241686,
"x1":0.267227,
"y1":0.241686,
"x2":0.267227,
"y2":0.255938,
"x3":0.148739,
"y3":0.255938
},
"line_text":"辉,hahahh",
"char_id":0,
"type":""
}
],
"compare_contract_replace":[
{
"page_id":0,
"poly":{
"x0":0.793451,
"y0":0.157363,
"x1":0.847187,
"y1":0.157363,
"x2":0.847187,
"y2":0.171021,
"x3":0.793451,
"y3":0.171021
},
"text":"发布服",
"line_id":2,
"line_poly":{
"x0":0.148615,
"y0":0.15677,
"x1":0.846348,
"y1":0.15677,
"x2":0.846348,
"y2":0.171021,
"x3":0.148615,
"y3":0.171021
},
"line_text":"2.乙方按照甲方要求,为甲方A项目(下称\"项目\")提供稿件撰写及发布/稿件发布服",
"char_id":37,
"type":""
},
{
"page_id":0,
"poly":{
"x0":0.150294,
"y0":0.175178,
"x1":0.165407,
"y1":0.175178,
"x2":0.165407,
"y2":0.188836,
"x3":0.150294,
"y3":0.188836
},
"text":"务",
"line_id":3,
"line_poly":{
"x0":0.148615,
"y0":0.175178,
"x1":0.267003,
"y1":0.175178,
"x2":0.267003,
"y2":0.18943,
"x3":0.148615,
"y3":0.18943
},
"line_text":"务,hahahh",
"char_id":0,
"type":""
}
],
"op_id":1
}
]
},
"similar_ratio":0.943867,
"org_contract_page_text":[
{
"page_id":0,
"full_page_text":[
"一.合作形式",
"1.合作期限:2020年12月18日至2020年1月31日。",
"2.乙方按照甲方要求,为甲方A项目(下称\"项目\")提供稿件撰写及发布/稿件熠熠生",
"辉,hahahh",
"3.具体",
"内容详见《投放明细表》。",
"哗啦啦哗啦啦下雨啦下雨啦"
]
},
{
"page_id":1,
"full_page_text":[
"八.不可抗力",
"\"不可抗力\"是指甲乙双方在签订本协议时不可预见或即使预见亦无法避免、不",
"能合理控制的事件,该事件妨碍、影响或延误任何一方根据协议履行其全部或",
"部分义务。该事件包括但不限于政府行为、自然灾害、战争、网络通信故障(非",
"由于甲乙双方的行为引起的)或任何其它类似事件。"
]
}
],
"compare_contract_page_text":[
{
"page_id":0,
"full_page_text":[
"一.合作形式",
"1.合作期限:2019年12月18日至2020年1月31日。",
"2.乙方按照甲方要求,为甲方A项目(下称\"项目\")提供稿件撰写及发布/稿件发布服",
"务,hahahh",
"3.具体",
"内容详见附件一《投放明细表》。"
]
},
{
"page_id":1,
"full_page_text":[
"八.不可抗力",
"\"不可抗力\"是指甲乙双方在签订本协议时不可预见或即使预见亦无法避免、不能合理",
"控制的事件,该事件妨碍、影响或延误任何一方根据协议履行其全部或部分义务。该",
"事件包括但不限于政府行为、自然灾害、战争、网络通信故障(非由于甲乙双方的行为",
"引起的)或任何其它类似事件。"
]
}
]
}
},
"message":"Success",
"request_id":"69060129731987394641607931446",
"status":10000,
"time_elapsed":"1.041247764s"
}
错误码
通用错误码
请参考通用返回字段及错误码
业务错误码
HttpCode | 错误码 | 错误消息 | 描述 |
---|
200 | 10000 | 无 | 请求成功 |
400 | 51000 | "Original contract type error" | 原始合同类型不支持或文件缺失 |
400 | 51001 | "Compare contract type error" | 比对合同类型不支持或文件缺失 |
400 | 51002 | "Original contract is empty" | 原始合同内容为空 |
400 | 51003 | "Compare contract is empty" | 比对合同内容为空 |
400 | 51005 | "Saving PDF error" | PDF保存失败 |
400 | 51006 | "PDF to image error" | PDF转图片失败 |
400 | 51007 | "Call OCR service error" | 调用OCR服务失败 |
400 | 51008 | "Read image error" | 图片读取失败 |
400 | 60103 | "Missing Input Parameters: empty input image" | 输入图片为空 |
400 | 60301 | "Invalid Input Image: get input image error" | 获取图片错误 |
400 | 61301 | "Invalid Input Parameters: Input image can not be decoded" | 输入图片错误 |