1. 上传比对合同

1.1. 调用地址

https://api.regenai.com/v1/comparison/docs/upload

1.2. 请求方式

POST

1.3. 请求数据类型

multipart/form-data

1.4. 返回类型

JSON

1.5. 请求参数

名称 变量名 必填 类型 示例值 描述
Key app_key true String c5ed72329fece2fe0010a437505b01cb 分配的key
令牌 token true String 7007bd1257dce8d47489166a7c77a926 授权令牌
时间戳 timestamp true String 1522374165 timestamp 为January 1 1970 00:00:00 GMT 到现在的秒数
命名空间 namespace false String   命名空间
基准文档 left_file false file   基准文档或图片列表
比对文档 right_file false file   比对文档或图片列表
基准文档URL left_file_url false String   仅支持单一文档或图片, 与left_filename配合使用
比对文档URL right_file_url false String   仅支持单一文档或图片, 与right_filename配合使用
基准文档名 left_filename false String   与left_file_url配合使用
比对文档名 right_filename false String   与right_file_url配合使用
比对模式 result_mode false int 0(false) or 1(true) default: 0 优化模式(将所有页转换为图片进行保存用于前端展示)。
解析忽略PDF图片 ignore_images false int 0(不忽略) or 1(忽略) default: 0(false) 解析参数,解析时是否忽略PDF文档内的图片
识别表格 parse_table false int 0(不识别表格) or 1(识别表格) default: 0 解析参数,识别table模式,当识别表格开启后,ignore_images参数无效。
自动比对 auto_compare false boolean false or true default: false 将以下比对参数作为默认比对参数,并进行自动比对计算相似度。该参数为true时以下比对参数才生效
识别语言 language false string   默认中英,其他语言需授权 auto-自动识别
cht-繁体中文
deu-德语
jpn-日语
kor-韩语
fra-法语
rus-俄语
nld-荷兰语
ita-意大利语
por-葡萄牙语
spa-西班牙语
msa-马来语
ind-印尼语
忽略空白 ignore_blank false int 0(false) or 1(true) default: 0 比对参数,是否忽略空白字符
忽略符号 ignore_punctuation false int 0(false) or 1(true) default: 0 比对参数,是否忽略符号
忽略页眉页脚 ignore_header_footer false int 0(false) or 1(true) default: 0 比对参数,是否忽略页眉页脚
忽略 equal hide_equal_ignore false int 0(false) or 1(true) default: 0 比对参数,是否隐藏比较类型为相同的文字坐标
全半角转换 to_dbc false int 0(false) or 1(true) default: 0 比对参数,是否将全半角转化后进行比较
繁简转换 to_simplified false int 0(false) or 1(true) default: 0 比对参数,是否将简繁体转化后进行比较
大小写转换 to_lower_case false int 0(false) or 1(true) default: 0 比对参数,是否将字母大小写转化后进行比较
符号转换 convert_symbol false int 0(false) or 1(true) default: 0 比对参数,是否将特殊符号转化后进行比较
忽略坐标 hide_coordinate false int 0(false) or 1(true) default: 0 比对参数,是否隐藏坐标信息
启用修改 need_update false int 0(false) or 1(true) default: 0 比对参数,是否启用 update
忽略低置信度 ignore_low_confidence false int 0(false) or 1(true) default: 0 比对参数,是否忽略低置信度差异
忽略手写 ignore_handwriting false int 0(false) or 1(true) default: 0 比对参数,是否忽略手写文本
忽略印章 ignore_seals false int 0(false) or 1(true) default: 1 比对参数,是否忽略印章
忽略附录 ignore_addendum false int 0(false) or 1(true) default: 0 比对参数,是否忽略附录
显示目录 need_contents false int 0(false) or 1(true) default: 0 比对参数,是否显示基准文档目录结构

1.5.1. 请求说明

  • 支持的图片类型: jpg, jpeg, png及pdf, doc, docx, xls,xlsx. pdf/word/excel格式文件只支持单个上传,文件最大支持50M. 文档文件建议页数在200页以内
  • token 的值计算方式为:md5($appkey+$timestamp+$appSecret)
    • token=md5("c5ed72329fece2fe0010a437505b01cb+1522374165+5c9597f3c8245907ea71a89d9d39d08e")=7007bd1257dce8d47489166a7c77a926
  • 生成token时,字符串连接中的“+”是必需的,缺少这个符号会无法验证通过验证

1.6. 返回值

1.6.1. 正确返回参数

名称 变量名 必填 类型 示例值 描述
返回状态码 result true int 0或1 请求状态. 1:成功, 0:失败
返回状态 message true String success  
回复 response true json    

1.6.2. 正确返回样例

  • result_mode = 0
{
    "result": 1,
    "message": "success",
    "response": {
        "data": {
            "id": "99999",                    // 比对项目 ID 字符串形式
            "project_id": 99999,            // 比对项目 ID 数字形式
            "parsed_count": 0,                    // 当前已经解析总页数
            "left_filename": "word.docx",        // 基准文件名
            "right_filename": "PDF.pdf",            // 比对文件名
            "left_page_count": 1,            // 基准文档页数
            "right_page_count": 1,            // 比对文档页数
            "created_at": "2022-06-07T08:01:03.889010Z", // 比对创建时间
            "status": "pending",            // 当前比对状态, 比对状态列表:
                                                    // 1. "pending" 等待处理
                                                    // 2. "progress" 处理中
                                                    // 3. "success" 解析成功(完成)
                                                    // 4. "complete" 比对完成
                                                    // 5. "failure" 解析失败
                                                    // 6. "expired" 任务已过期
    }
    }
}
  • result_mode = 1
{
    "result": 1,
    "message": "success",
    "response": {
        "data": {
            "id": "99999",                    // 比对项目 ID 字符串形式
            "project_id": 99999,            // 比对项目 ID 数字形式
            "parsed_count": 0,                    // 当前已经解析总页数
            "left_filename": "word.docx",        // 基准文件名
            "right_filename": "PDF.pdf",            // 比对文件名
            "left_page_count": 1,            // 基准文档页数
            "right_page_count": 1,            // 比对文档页数
            "created_at": "2022-06-07T08:01:03.889010Z", // 比对创建时间
            "status": "pending",            // 当前比对状态, 比对状态列表:
                                                    // 1. "pending" 等待处理
                                                    // 2. "progress" 处理中
                                                    // 3. "success" 解析成功(完成)
                                                    // 4. "complete" 比对完成
                                                    // 5. "failure" 解析失败
                                                    // 6. "expired" 任务已过期
            "left": {                               // 优化模式文档信息(下同)
                "page_count": 1,                    // 基准文档页数
                "pages": [                                  // * 数据随解析进度变化
                    {
                        "id": "51236",                      // 页 ID
                        "index": 0,                         // 页数 index
                        "url": "http://oss-host/0/001.png"  // 页 URL
                    }
                ]
            },
            "right": {
                "page_count": 1,
                "pages": [
                    {
                        "id": "51237",
                        "index": 0,
                        "url": "http://oss-host/1/001.png"
                    }
                ]
            },
            "left_docs": [  // 基准(比对)文件列表 (下同)
                {
                    "id": "666",            // 文档ID
                    "location": "LEFT",     // 基准文档 or 比对文档
                    "name": "word.docx",    // 文档名
                    "type": "WORD",         // 文档类型
                    "page_count": 1,        // 文档页数
                    "pages": [
                        {
                            "id": "51236",                      // 页 ID
                            "index": 0,                         // 页数 index
                            "url": "http://oss-host/0/001.png"  // 页 URL
                        }
                    ]
                }
            ],
            "right_docs": [
                {
                    "id": "667",
                    "location": "RIGHT",
                    "name": "PDF.pdf",
                    "type": "PDF",
                    "page_count": 1,
                    "pages": [
                        {
                            "id": "51237",
                            "index": 0,
                            "url": "http://oss-host/1/001.png"
                        }
                    ]
                },
                {
                    "id": "668",
                    "location": "RIGHT",
                    "name": "image.png",
                    "type": "IMAGE",
                    "page_count": 1,
                    "pages": [
                        {
                            "id": "51238",
                            "index": 0,
                            "url": "http://oss-host/1/002.png"
                        }
                    ]
                }
            ],
            "report": {                 // 优化模式比对报告
                "similarity": "0.00"   // 比对相似度百分比
            }
        }
    }
}

2. 查询比对状态

2.1. 调用地址

https://api.regenai.com/v1/comparison/docs/query

2.2. 请求方式

GET

2.3. 返回类型

JSON

2.4. 请求参数

名称 变量名 必填 类型 示例值 描述
Key app_key true String c5ed72329fece2fe0010a437505b01cb 分配的key
令牌 token true String 7007bd1257dce8d47489166a7c77a926 授权令牌
时间戳 timestamp true String 1522374165 timestamp 为January 1 1970 00:00:00 GMT 到现在的秒数
命名空间 namespace false String   命名空间
比对ID project_id true long 99999 project id
比对模式 result_mode false int 0(false) or 1(true) default: 0 优化模式(将所有页转换为图片进行保存用于前端展示)。

2.5. 请求说明

用户需要通过使用 上传比对合同 获取的 project_id, 定时调用该API, 实时获取当前已经解析的页数(parsed_count), 该页数表示已经左右文档都已经解析的页数, 即当前最大可比较页数

2.6. 返回值

2.6.1. 正确返回参数 (与上传比对合同返回一致)

3. 查询比对结果

3.1. 调用地址

https://api.regenai.com/v1/comparison/docs/compare_result

3.2. 请求方式

GET

3.3. 返回类型

JSON

3.4. 请求参数

名称 变量名 必填 类型 示例值 描述
Key app_key true String c5ed72329fece2fe0010a437505b01cb 分配的key
令牌 token true String 7007bd1257dce8d47489166a7c77a926 授权令牌
时间戳 timestamp true String 1522374165 timestamp 为January 1 1970 00:00:00 GMT 到现在的秒数
命名空间 namespace false String   命名空间
比对ID project_id true long 99999 project id
基准文档ID left_doc_id false long 666 指定比对基准文档ID
比对文档ID right_doc_id false long 667 指定比对比对文档ID
起始页 start_idx false long 1 比较起始页数 从1开始
结束页 end_idx false long 100 比较结尾页数(比较时包含结尾页) 即比较范围是[start_idx, end_idx]
自动比对 auto_compare false boolean false or true default: false 优先使用默认比对参数作为比对参数(若存在默认比对参数以下比对参数失效)
忽略空白 ignore_blank false int 0(false) or 1(true) default: 0 比对参数,是否忽略空白字符
忽略符号 ignore_punctuation false int 0(false) or 1(true) default: 0 比对参数,是否忽略符号
忽略页眉页脚 ignore_header_footer false int 0(false) or 1(true) default: 0 比对参数,是否忽略页眉页脚
忽略 equal hide_equal_ignore false int 0(false) or 1(true) default: 0 比对参数,是否隐藏比较类型为相同的文字坐标
全半角转换 to_dbc false int 0(false) or 1(true) default: 0 比对参数,是否将全半角转化后进行比较
繁简转换 to_simplified false int 0(false) or 1(true) default: 0 比对参数,是否将简繁体转化后进行比较
大小写转换 to_lower_case false int 0(false) or 1(true) default: 0 比对参数,是否将字母大小写转化后进行比较
符号转换 convert_symbol false int 0(false) or 1(true) default: 0 比对参数,是否将特殊符号转化后进行比较
忽略坐标 hide_coordinate false int 0(false) or 1(true) default: 0 比对参数,是否隐藏坐标信息
启用修改 need_update false int 0(false) or 1(true) default: 0 比对参数,是否启用 update
忽略低置信度 ignore_low_confidence false int 0(false) or 1(true) default: 0 比对参数,是否忽略低置信度差异
忽略手写 ignore_handwriting false int 0(false) or 1(true) default: 0 比对参数,是否忽略手写文本
忽略印章 ignore_seals false int 0(false) or 1(true) default: 1 比对参数,是否忽略印章
忽略附录 ignore_addendum false int 0(false) or 1(true) default: 0 比对参数,是否忽略附录
显示目录 need_contents false int 0(false) or 1(true) default: 0 比对参数,是否显示基准文档目录结构
比对模式 result_mode false int 0(文本模式-文本结构),1(图片模式-文本结构), 2(图片模式-summary结构) 优化模式(将coordinate整合到对比信息内, 当启用优化模式后 coordinate 将不再返回)
差异模式 merge_mode false int 1 0(仅显示差异且不分组合并),1(显示相同部分并分组合并差异) default: 1

3.5. 请求说明

用户通过 查询比对状态 查询到的最新的解析页数,控制对比页数,并按需使用对比参数。当进行了一次完整比对后,将默认获取所有页进行比较,以获得最佳的比对效果,此时start_idx,end_idx无效。

  • 分段对比:将 start_idx 设置为上一次比较的 end_idx + 1 (第一次比较时设置为 1),即可实现分段对比,适用于差异较小且不包含跨页差异的样本。
  • 精准对比:将start_idx始终设置为1,每次对比所有已解析页,可以解决跨页问题。(推荐使用)

3.6. 返回值

3.6.1. 正确返回参数

名称 变量名 必填 类型 示例值 描述
返回状态码 result true int 0或1 请求状态. 1:成功, 0:失败
返回状态 message true String success  
回复 response true json    

3.6.2. 正确返回样例

  • result_mode = 0(文本模式-文本结构)
{
 "result": 1,
 "message": "success",
 "response": {
  "data": {
  "contents": [  // 仅当启用文档目录结构时显示(need_contents = 1)
    {
      "idx": 0,                           // 目录所属差异 idx 与 left 和 right 内一致
      "level": 1,                         // 目录层级
      "text": "第一条服务概况",           // 目录文本
      "rows": [
        {
          "page": 1,                       // 目录页码
          "text": "第一条服务概况",        // 目录文本
          "region": [172, 339, 341, 369]  // 目录坐标
        }
      ]
    }
  ],
  "left": [
    {
     "page": [
      {
       "type": "paragraph", // paragraph 对比对象
       "contents": [         // 对比内容对象列表
        {                     // 对比内容对象
         "status": "equal", // 对比内容状态 可能的值: equal/delete/insert/update
         "text": "测试合同", // 对比内容文本
         "idx": 0     // 对比内容属于哪一个 diff block, 与 right相对应
        }
       ]
      },
      {
       "type": "table",   // table 对比对象
       "cells": [         // 单元格列表
        {
         "startcol": 0,// 单元格起始列
         "startrow": 0,// 单元格起始行
         "endcol": 1,  // 单元格终止列
         "endrow": 1,  // 单元格终止行
         "contents": [ // 对比内容对象列表
          {
           "status": "equal",
           "text": "产品",
           "idx": 6
          }
         ]
        }
       ],
       "column_num": 4,  // table 总列数
       "row_num": 2      // table 总行数
      }
     ],
     "page_number": 1    // 页码
    }
   ],
   "right": [
    // 与 left 结构相同
   ],
   "left_coordinate": [
    {
     "tables": [ // table 坐标对象列表
      {
       "regions": [210, 466, 1199, 611], // 表格坐标
       "cells": [
        {
         "startcol": 0,// 单元格起始列
         "startrow": 0,// 单元格起始行
         "endcol": 1,  // 单元格终止列
         "endrow": 1,  // 单元格终止行
         "lines": [    // 当前表格文本块列表
          {
           "words": [  // 文本块 word 列表
            {
             "region": [218, 468, 258, 504],
             "result": "产"
            },
            {
             "region": [258, 468, 289, 504],
             "result": "品"
            }
           ],
           "regions": [227, 473, 282, 501], // 文本块坐标
           "result": "产品"                   // 文本块文本
          }
         ]
        }
       ],
       "column_num": 4,  // table 总列数
       "row_num": 2      // table 总行数
      }
     ],
     "width": 1414,        // 页宽
     "height": 2000,       // 页高
     "page_number": 1,     // 页码
     "type": "IMAGE_PAGE",    // 解析类型
     "text2": [ // text 坐标对象列表
      {
       "words": [ // 文本块 word 列表
        {
         "region": [582, 187, 644, 261],
         "result": "测"
        },
        {
         "region": [644, 187, 710, 261],
         "result": "试"
        },
        {
         "region": [710, 187, 770, 261],
         "result": "合"
        },
        {
         "region": [770, 187, 833, 261],
         "result": "同"
        }
       ],
       "regions": [576, 187, 836, 261], // 文本块坐标
       "result": "测试合同"               // 文本块文本
      }
     ],
     "text9": [],
    }
   ],
   "right_coordinate": [
    // 与 left_coordinate 结构相同
   ]
  }
 }
}
  • result_mode = 1(图片模式-文本结构)
{
 "result": 1,
 "message": "success",
 "response": {
  "data": {
  "contents": [  // 仅当启用文档目录结构时显示(need_contents = 1)
    {
      "idx": 0,                           // 目录所属差异 idx 与 left 和 right 内一致
      "level": 1,                         // 目录层级
      "text": "第一条服务概况",           // 目录文本
      "rows": [
        {
          "page": 1,                       // 目录页码
          "text": "第一条服务概况",        // 目录文本
          "region": [172, 339, 341, 369]  // 目录坐标
        }
      ]
    }
  ],
  "left": [
    {
     "page": [
      {
       "type": "paragraph", // paragraph 对比对象
       "contents": [         // 对比内容对象列表
        {                     // 对比内容对象
         "status": "equal", // 对比内容状态 可能的值: equal/delete/insert/update
         "text": "测试合同", // 对比内容文本
         "idx": 0,           // 对比内容属于哪一个 diff block, 与 right相对应
         "region": [576, 187, 836, 261] // 文本块坐标
        }
       ]
      },
      {
       "type": "table",   // table 对比对象
       "cells": [         // 单元格列表
        {
         "startcol": 0,// 单元格起始列
         "startrow": 0,// 单元格起始行
         "endcol": 1,  // 单元格终止列
         "endrow": 1,  // 单元格终止行
         "contents": [ // 对比内容对象列表
          {
           "status": "equal",
           "text": "产品",
           "idx": 6,
           "region": [227, 473, 282, 501] // 文本块坐标
          }
         ]
        }
       ],
       "regions": [210, 466, 1199, 611], // 表格坐标
       "column_num": 4,  // table 总列数
       "row_num": 2      // table 总行数
      }
     ],
     "width": 1414,        // 页宽
     "height": 2000,       // 页高
     "page_number": 1,     // 页码
     "orientation": 0,     // 页面顺时针旋转角度 可能的值:0/90/180/270
     "type": "IMAGE_PAGE"  // 解析类型
    }
   ],
   "right": [
    // 与 left 结构相同
   ],
  }
 }
}
  • result_mode = 2(图片模式-summary结构) *summary结构 coordinate/left/right都不返回
{
 "result": 1,
 "message": "success",
 "response": {
  "data": {
  "contents": [  // 仅当启用文档目录结构时显示(need_contents = 1)
    {
      "idx": 0,                           // 目录所属差异 idx 与 left 和 right 内一致
      "level": 1,                         // 目录层级
      "text": "第一条服务概况",            // 目录文本
      "rows": [
        {
          "page": 1,                       // 目录页码
          "text": "第一条服务概况",         // 目录文本
          "region": [172, 339, 341, 369]   // 目录坐标
        }
      ]
}
    ...
  ],
  "summary": {  // 差异总结, 
    "diffs": [  // 差异列表
      {  // 差异左右两部分组成, 包含差异的上下文(既有相同部分又有不同部分)
        "left": [  // 差异基准文档上下文
          {
            "status": "equal",               // 差异上下文类型
            "region": [90, 210, 150, 222],  // 差异上下文坐标
            "text": "乙方",                   // 差异上下文文本
            "page_number": 2                 // 差异上下文所在页码
          },
          {
            "status": "delete",
            "region": [150, 210, 246, 222],
            "text": "杭州睿真软件有限公司",
            "page_number": 2
          }
        ],
        "right": [  // 差异比对文档上下文
        // 与 left 结构相同
        ],
        "idx": 1,            // 对比内容属于哪一个 diff block, 与 right相对应
        "status": "delete"  // 差异类型
      },
      ...
    ],
    "left_infos": [
      {
        "page_number": 1,     // 页码
        "width": 1414,        // 页宽
        "height": 2000,       // 页高
        "orientation": 0,     // 页面顺时针旋转角度 可能的值:0/90/180/270
        "type": "PDF_PAGE",   // 解析类型
        "url": "http://oss-host/0/001.png"  // 页 URL
      },
      ...
    ],
    "right_infos": [
    // 与 left_infos 结构相同
    ],
    "report": {                // 优化模式比对报告
      "similarity": "99.86",   // 比对相似度百分比
      "parse_parameters": {    // 当前比对任务解析参数
        "ignore_images": 1,
        "parse_table": 0
      },
      "compare_parameters": {  // 当前比对比对参数
        "ignore_blank": 1,
        "ignore_punctuation": 1,
        "ignore_header_footer": 1,
        "hide_equal_ignore": 0,
        "to_dbc": 0,
        "to_simplified": 0,
        "to_lower_case": 0,
        "convert_symbol": 1,
        "hide_coordinate": 0,
        "need_update": 1,
        "optimize": 1,
        "ignore_low_confidence": 1,
        "ignore_handwriting": 0,
        "ignore_seals": 1,
        "ignore_images": 0,
        "ignore_addendum": 0,
        "need_contents": 1,
        "ignore_characters": ""
      }
    }
   }
  }
 }
}

4. 生成比对报告

4.1. 调用地址

https://api.regenai.com/v1/comparison/docs/report

4.2. 请求方式

GET

4.3. 返回类型

  • Word报告: application/vnd.openxmlformats-officedocument.wordprocessingml.document
  • HTML报告: application/zip

4.4. 请求参数

名称 变量名 必填 类型 示例值 描述
Key app_key true String c5ed72329fece2fe0010a437505b01cb 分配的key
令牌 token true String 7007bd1257dce8d47489166a7c77a926 授权令牌
时间戳 timestamp true String 1522374165 timestamp 为January 1 1970 00:00:00 GMT 到现在的秒数
比对ID project_id true String 111 project id
命名空间 namespace false String   命名空间
差异模式 merge_mode false int 1 0(仅显示差异且不分组合并),1(显示相同部分并分组合并差异) default: 1
差异忽略项 ignore_diff_index_list false String 0,1,2 使用差异在当前差异列表中的顺序作为index (从0开始),使用半角逗号 "," 拼接。
基准文档ID left_doc_id false int 666 与 right_doc_id 配合使用,返回一组比对报告;不同时存在时返回所有比对报告
比对文档ID right_doc_id false int 667 与 left_doc_id 配合使用
报告类型 report_type false String 0 0(Word报告),1(HTML报告,返回类型为zip) default: 0

4.5. 请求说明

用户可以通过当前接口获取比对报告

4.6. 返回值

文件流

results matching ""

    No results matching ""