メインコンテンツへスキップ

機能概要

複数のカテゴリの複数ファイルを含む複合文書に対して、ファイル分割機能は文書内容をインテリジェントに認識し、文書の自動分割と分類を実現します。

利用シーン

1. 医療保険請求シーン

複数ページのファイルに以下が含まれる場合:
  • 1〜2 ページ目:保険証券情報
  • 3〜5 ページ目:医療請求書
  • 6〜10 ページ目:入院記録
ファイル分割機能により、これら 3 種類の異なる文書を個別に分割し、後続の分類と抽出処理を容易にします。

2. 物流輸出入シーン

1 つのファイルに以下が含まれる場合:
  • 1 ページ目:輸出通関申告書
  • 2 ページ目:商業送り状
  • 3 ページ目:梱包明細書
  • 4 ページ目:売買契約書
ファイル分割機能により、文書タイプに基づいてインテリジェントに分割できます。

API パラメータ設定

ファイル分割機能を有効化

アップロード API で split_flag=true を設定し、ファイル分割機能を有効にします。
curl -X POST \
  -H "x-ti-app-id: <your-app-id>" \
  -H "x-ti-secret-code: <your-secret-code>" \
  -F "file=@/path/to/multi-page-document.pdf" \
  "https://docflow.textin.ai/api/app-api/sip/platform/v2/file/upload?workspace_id=<your-workspace-id>&split_flag=true"

パラメータ説明

パラメータ名デフォルト値説明
split_flagbooleanfalseファイル分割機能を有効にするかどうか

サンプルコード

import requests
import json

def upload_with_split(file_path, workspace_id, app_id, secret_code):
    """
    Upload file and enable file splitting function
    """
    url = "https://docflow.textin.ai/api/app-api/sip/platform/v2/file/upload"

    headers = {
        "x-ti-app-id": app_id,
        "x-ti-secret-code": secret_code
    }

    params = {
        "workspace_id": workspace_id,
        "split_flag": "true"  # Enable file splitting function
    }

    with open(file_path, 'rb') as file:
        files = {'file': file}
        response = requests.post(url, headers=headers, params=params, files=files)

    return response.json()

def fetch_split_results(workspace_id, batch_number, app_id, secret_code):
    """
    Query file splitting results
    """
    url = "https://docflow.textin.ai/api/app-api/sip/platform/v2/file/fetch"

    headers = {
        "x-ti-app-id": app_id,
        "x-ti-secret-code": secret_code
    }

    params = {
        "workspace_id": workspace_id,
        "batch_number": batch_number
    }

    response = requests.get(url, headers=headers, params=params)
    return response.json()

# Usage example
if __name__ == "__main__":
    # Configuration information
    WORKSPACE_ID = "your-workspace-id"
    APP_ID = "your-app-id"
    SECRET_CODE = "your-secret-code"
    FILE_PATH = "/path/to/multi-page-document.pdf"

    # Upload file and enable file splitting
    upload_result = upload_with_split(FILE_PATH, WORKSPACE_ID, APP_ID, SECRET_CODE)
    print("Upload result:", json.dumps(upload_result, indent=2, ensure_ascii=False))

    # Get batch number
    batch_number = upload_result.get("result", {}).get("batch_number")

    if batch_number:
        # Query file splitting results
        fetch_result = fetch_split_results(WORKSPACE_ID, batch_number, APP_ID, SECRET_CODE)
        print("File splitting result:", json.dumps(fetch_result, indent=2, ensure_ascii=False))

結果の説明

ファイル分割の結果構造

ファイル分割機能を有効にした場合、file/fetch API のレスポンスに child_files フィールドが含まれ、分割後のサブ文書の情報が記録されます。
{
  "code": 200,
  "result": {
    "files": [
      {
        "id": "parent-file-001",
        "name": "multi-document.pdf",
        "format": "pdf",
        "child_files": [
          {
            "id": "child-001",
            "task_id": "task-001",
            "task_type": 0,  // 0 indicates sub-file generated by file splitting
            "name": "multi-document.pdf#1",
            "format": "pdf",
            "category": "invoice",
          },
          {
            "id": "child-002",
            "task_id": "task-002",
            "task_type": 0,
            "name": "multi-document.pdf#2",
            "format": "pdf",
            "category": "contract",
          }
        ]
      }
    ]
  }
}

主要フィールドの説明

フィールド名説明
child_filesarray分割後のサブファイルリスト
child_files[].idstringサブファイルの一意識別子
child_files[].task_typeintegerタスクタイプ。0 はファイル分割によって生成されたことを示す
child_files[].categorystring文書分類結果
child_files[].pagesstring分割後のサブファイルのページ情報。元ファイルにおけるサブファイルのページ番号を含む