Metadata-Version: 2.5
Name: scnet-ocr-recognition
Version: 1.0.8
Summary: OCR识别-MCP服务，基于MCP-stdio模式
Author: Sugon
License-Expression: MIT
Keywords: mcp,ocr,scnet,stdio,凭证识别,单据识别,发票识别,证件识别
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27.0
Requires-Dist: mcp>=2.0.0
Description-Content-Type: text/markdown

# SCNET-OCR-RECOGNITION

OCR识别服务

可对上传的本地文件进行文字识别和信息提取，覆盖多个识别场景，传递识别场景枚举值和需要识别的文件即可调用。
## 请求参数
- sceneType: 识别场景。请传递**识别场景**章节列表中列出的英文标识，如 `VAT_INVOICE`。
- local_filepath: 上传需要识别的文件，传递本地文件路径。
## 识别场景
所有识别场景以及每个场景及对应的枚举值sceneType：
- 通用识别
    - 文字识别: GENERAL
    - 印章识别: SEAL_CHARACTER_RECOGNITION
    - 表格识别: TABLE_RECOGNITION
- 个人证照
    - 居民身份证: ID_CARD
    - 银行卡: BANK_CARD
    - 社保卡: SOCIAL_SECURITY_CARD
    - 户口本: HOUSEHOLD_REGISTER
    - 出生医学证明: BIRTH_CERTIFICATE
    - 往来港澳通行证: HK_MACAU_PASS
    - 往来台湾通行证: TAIWAN_PASS
    - 台湾居民来往大陆通行证: TAIWAN_MAINLAND_PASS
    - 港澳居民来往内地通行证: HK_MAINLAND_PASS
    - 中国香港身份证: HONG_KONG_IDENTITY_CARD
    - 外国人永久居留身份证: PERMANENT_RESIDENCE_ID_CARD_FOR
    - 结婚证: MARRIAGE_CERTIFICATE
    - 不动产权证书: REAL_ESTATE_OWNERSHIP_CERTIFICAT
    - 机动车行驶证正页: FRONT_PAGE_OF_MOTOR_VEHICLE_DRIV
    - 机动车行驶证副页: SECOND_SHEET_OF_MOTOR_VEHICLE_DR
    - 机动车驾驶证正页: MOTOR_VEHICLE_DRIVING_LICENSE
    - 机动车驾驶证副页: MOTOR_VEHICLE_DRIVING_LICENSE_SU
    - 中国护照: CHINESE_PASSPORT
    - 学历证书: ACADEMIC_CERTIFICATE
    - 学历证书电子注册备案表: ONLINE_VERIFICATION_REPORT_OF_HE
    - 学位证书: DIPLOMA
- 行业资质
    - 营业执照: BUSINESS_LICENSE
    - 社会团体法人登记证书: SOCIAL_ORG_REG
    - 工会法人资格证书: TRADE_UNION_REG
    - 民办非企业单位登记证书: PRIVATE_NON_ENTERPRISE_REG
    - 事业单位法人证书: INSTITUTION_LEGAL_REG
    - 统一社会信用代码证书: UNIFIED_SOCIAL_CREDIT_REG
    - 食品经营许可证: FOOD_BUSINESS_LICENSE
    - 食品生产许可证: FOOD_PRODUCTION_LICENSE
    - 卫生许可证: HYGIENE_LICENSE
    - 金融许可证: FINANCIAL_LICENSE
    - 金融机构代码证: FINANCIAL_INSTITUTION_CODE_CERT
    - 支付业务许可证: PAYMENT_BUSINESS_LICENSE
    - 开户许可证: ACCOUNT_OPENING_LICENSE
    - 商标注册证: TRADEMARK_REGISTRATION_CERT
    - 税务登记证: TAX_REGISTRATION_CERT
    - 组织机构代码证: ORGANIZATION_CODE_CERT
- 财务票据
    - 增值税发票: VAT_INVOICE
    - 增值税通行费发票: VAT_TOLL_INVOICE
    - 增值税卷票: VAT_ROLL_INVOICE
    - 出租车发票: TAXI_INVOICE
    - 火车票: TRAIN_TICKET
    - 航空运输电子客票行程单: AIRPORT_TICKET
    - 机动车销售统一发票: VEHICLE_SALE_INVOICE
    - 定额发票: QUOTA_INVOICE
    - 过路过桥费发票: TOLL_INVOICE
    - 医疗门诊发票: MEDICAL_INVOICE
    - 医疗住院发票: MEDICAL_INPATIENT_INVOICE
    - 医疗费用结算单: MEDICAL_EXPENSE_SETTLEMENT
    - 税收完税证明: TAX_CERTIFICATE
    - 船票: SHIP_TICKET
    - 非税票据: NON_TAX_BILL
    - 通用机打发票: GENERAL_MACHINE_INVOICE
    - 汽车票: BUS_TICKET
    - 网约车行程单: RIDE_HAILING_ITINERARY
    - 银联POS签购单: UNIONPAY_POS_RECEIPT
- 金融单据
    - 银行汇票: BANK_DRAFT
    - 银行承兑汇票: BANK_ACCEPTANCE_BILL
    - 电子银行承兑汇票: ELECTRONIC_BANK_ACCEPTANCE_BILL
    - 商业承兑汇票: COMMERCIAL_ACCEPTANCE_BILL
    - 电子商业承兑汇票: ELECTRONIC_COMMERCIAL_ACCEPTANCE
    - 银行支票: BANK_CHECK
    - 银行回单: BANK_RECEIPT
    - 进账单: DEPOSIT_SLIP
    - 电汇凭证: TELEGRAPHIC_TRANSFER_VOUCHER
    - 支款凭证: WITHDRAWAL_VOUCHER
    - 移动支付账单: MOBILE_PAYMENT_BILL
    - 财政授权支付凭证: FISCAL_AUTH_PAYMENT_VOUCHER
    - 海关专用缴款书: CUSTOMS_PAYMENT_RECEIPT
    - 海关进/出口货物报关单: CUSTOMS_DECLARATION
    - 国际汇票: INTERNATIONAL_BILL
    - 商业发票: COMMERCIAL_INVOICE
    - 原产地证明: CERTIFICATE_OF_ORIGIN
    - 货物运输保险单: CARGO_TRANSPORT_INSURANCE
    - 装箱单: PACKING_LIST
    - 提单: BILL_OF_LADING
## 返回结构
- 识别结果整体以：code、message、data结构返回；
- 识别结果`code`中，返回**200**标识识别成功，返回**500**表示识别失败，失败时`message`字段会返回失败原因描述；
- 识别结果`data`中，可能包含多个结果（一份文件中可能包含多个凭证），每个识别结果中，包含`fileIndex`（文件页数）、`cutIndex`（文件中第几张凭证）、`coordinate`（文件中第几张凭证的坐标）、`confidence`（文字置信度）基础字段和：
  - 对于 GENERAL 文字识别，包含`ocrText`字段；
  - 对于 SEAL_CHARACTER_RECOGNITION 印章识别，包含`stamps`字段；
  - 对于 TABLE_RECOGNITION 表格识别，包含`tables`字段；
  - 除上述特殊识别外，其他识别场景包含`fields`字段。
- `ocrText`字段值为字符串，表示识别的文字内容；
- `stamps`字段值为列表，表示识别的多个印章，每个识别的印章包含`stampPosition`（印章所在坐标）、`stampConfidence`（印章文字置信度）、`stampShape`（印章形状）、`stampColor`（印章颜色）、`stampType`（印章类型）、`stampTextList`（印章文字信息）字段；
- `tables`字段值为列表，表示识别的多个表格，每个识别的表格包含`type`（表格类型，wired_table表示有线表格，wireless_table表示无线表格）、`bbox`（表格所在坐标）、`html`（表格html格式内容）字段；
- `fields`字段值为列表，表示识别的多个字段结果。`key`表示要素英文名称，`name`表示要素中文名称。当`value`结果有值时，要素为单值字段；当`listValue`结果有值时，要素为细项列表字段，`listValue`为二维数组结构，第一层表示有多少行，第二层表示列，每列包含`key`,`name`,`value`结果。
### 识别成功返回结构示例
```json
{
  "code": 200,
  "message": "SUCCESS",
  "data": [
    {
      "fileIndex": 1,
      "cutIndex": 1,
      "coordinate": [19, 2023, 19, 0, 3724, 0, 3724, 2023],
      "confidence": 0.923,
      "fields": [
        {
          "key": "title",
          "name": "标题",
          "value": "广东增值税电子普通发票"
        },
        {
          "key": "invoiceCode",
          "name": "发票代码",
          "value": "12078687162"
        },
        {
          "key": "goodsDetails",
          "name": "发票商品明细",
          "listValue": [
            [
              {
                "key": "goodsName",
                "name": "货物服务名称",
                "value": "*运输服务*客票款"
              },
              {
                "key": "itemAmount",
                "name": "金额",
                "value": "1223.98"
              }
            ],
            [
              {
                "key": "goodsName",
                "name": "货物服务名称",
                "value": "*运输服务*客运燃油附加费"
              },
              {
                "key": "itemAmount",
                "name": "金额",
                "value": "120.00"
              }
            ]
          ]
        }
      ]
    }
  ]
}
```
### 识别错误返回结构示例
```json
{
  "code": 500,
  "message": "请求服务发生错误，获取数据错误，请联系管理员",
  "data": null
}
```
### GENERAL 文字识别返回结果示例
```json
{
  "code": 200,
  "message": "SUCCESS",
  "data": [
    {
      "fileIndex": 1,
      "cutIndex": 1,
      "coordinate": [19, 2023, 19, 0, 3724, 0, 3724, 2023],
      "confidence": 0.923,
      "ocrText": "悯农李绅锄禾日当午，汗滴禾下土。谁知盘中餐，粒粒皆辛苦。"
    }
  ]
}
```
### SEAL_CHARACTER_RECOGNITION 印章识别返回结果示例
```json
{
  "code": 200,
  "message": "SUCCESS",
  "data": [
    {
      "fileIndex": 1,
      "cutIndex": 1,
      "coordinate": [19, 2023, 19, 0, 3724, 0, 3724, 2023],
      "confidence": 0.923,
      "stamps": [
        {
          "stampPosition": [566, 46, 789, 269],
          "stampConfidence": 0.9686,
          "stampShape": "圆形",
          "stampColor": "红色",
          "stampType": "合同专用章",
          "stampTextList": [
            "某某某某管理有限公司",
            "合同专用章"
          ]
        }
      ]
    }
  ]
}
```
### TABLE_RECOGNITION 表格识别返回结果示例
```json
{
  "code": 200,
  "message": "SUCCESS",
  "data": [
    {
      "fileIndex": 1,
      "cutIndex": 1,
      "coordinate": [19, 2023, 19, 0, 3724, 0, 3724, 2023],
      "confidence": 0.923,
      "tables": [
        {
          "type": "wired_table",
          "bbox": [14, 101, 839, 484],
          "html": "<html><body><table><tr><td rowspan=2 colspan=1>学期科目</td><td rowspan=1 colspan=2>初一</td><td rowspan=1 colspan=2>初 二</td><td rowspan=1 colspan=2>初 三</td></tr><tr><td rowspan=1 colspan=1>第一学期</td><td rowspan=1 colspan=1>第二学期</td><td rowspan=1 colspan=1>第一学期</td><td rowspan=1 colspan=1>第二学期</td><td rowspan=1 colspan=1>第一学期</td><td rowspan=1 colspan=1>第二学期</td></tr><tr><td rowspan=1 colspan=1>语文</td><td rowspan=1 colspan=1>86</td><td rowspan=1 colspan=1>88</td><td rowspan=1 colspan=1>87</td><td rowspan=1 colspan=1>90</td><td rowspan=1 colspan=1>81</td><td rowspan=1 colspan=1>90</td></tr><tr><td rowspan=1 colspan=1>数学</td><td rowspan=1 colspan=1>85</td><td rowspan=1 colspan=1>90</td><td rowspan=1 colspan=1>89</td><td rowspan=1 colspan=1>89</td><td rowspan=1 colspan=1>87</td><td rowspan=1 colspan=1>79</td></tr><tr><td rowspan=1 colspan=1>英语</td><td rowspan=1 colspan=1>85</td><td rowspan=1 colspan=1>92</td><td rowspan=1 colspan=1>90</td><td rowspan=1 colspan=1>92</td><td rowspan=1 colspan=1>95</td><td rowspan=1 colspan=1>94</td></tr><tr><td rowspan=1 colspan=1>物理</td><td rowspan=1 colspan=1>86</td><td rowspan=1 colspan=1>92</td><td rowspan=1 colspan=1>88</td><td rowspan=1 colspan=1>88</td><td rowspan=1 colspan=1>84</td><td rowspan=1 colspan=1>89</td></tr><tr><td rowspan=1 colspan=1>化学</td><td rowspan=1 colspan=1>86</td><td rowspan=1 colspan=1>92</td><td rowspan=1 colspan=1>89</td><td rowspan=1 colspan=1>89</td><td rowspan=1 colspan=1>92</td><td rowspan=1 colspan=1>91</td></tr><tr><td rowspan=1 colspan=1>生物</td><td rowspan=1 colspan=1>89</td><td rowspan=1 colspan=1>85</td><td rowspan=1 colspan=1>95</td><td rowspan=1 colspan=1>85</td><td rowspan=1 colspan=1>91</td><td rowspan=1 colspan=1>90</td></tr><tr><td rowspan=1 colspan=1>政治</td><td rowspan=1 colspan=1>85</td><td rowspan=1 colspan=1>89</td><td rowspan=1 colspan=1>89</td><td rowspan=1 colspan=1>89</td><td rowspan=1 colspan=1>91</td><td rowspan=1 colspan=1>79</td></tr><tr><td rowspan=1 colspan=1>历史</td><td rowspan=1 colspan=1>89</td><td rowspan=1 colspan=1>92</td><td rowspan=1 colspan=1>91</td><td rowspan=1 colspan=1>89</td><td rowspan=1 colspan=1>91</td><td rowspan=1 colspan=1>90</td></tr><tr><td rowspan=1 colspan=1>地理</td><td rowspan=1 colspan=1>92</td><td rowspan=1 colspan=1>92</td><td rowspan=1 colspan=1>89</td><td rowspan=1 colspan=1>89</td><td rowspan=1 colspan=1>91</td><td rowspan=1 colspan=1>79</td></tr></table></body></html>"
        }
      ]
    }
  ]
}
```