ドキュメント解析
生成AIを用いてドキュメントファイルの内容を解析し、構造化データを抽出した結果をJSON文字列形式として出力するタスクです。
月間利用上限
本タスクは生成AIを利用する機能のため、ドキュメント内容および出力結果に応じて消費されるトークン数に基づき、月間の利用量に上限があります。
消費トークン数は、解析対象ファイルの内容量や抽出項目数により変動します。
対応ファイル形式
解析が可能なファイル形式は以下の通りです。
csv, html, txt, pdf, md, docx, doc, xlsx, xls
なお、解析が可能なファイルサイズの上限は4.5MBです。
画像内文字の解析
PDF全体の90%以上が画像で構成されている場合、画像内の文字も解析します。
PDF以外のファイル形式では画像内文字の解析には対応していません。
入力値
入力値の構造
im_sendTextMail <object>
├─ disableCache <boolean>
├─ file <storage>
└─ jsonString <string>
入力値の詳細
| 項目名 | 説明 | 型 | 備考 |
|---|---|---|---|
| disableCache | キャッシュ無効 | boolean | 解析結果のキャッシュを無効化する場合trueを指定します。 |
| file | 解析対象ファイル | string | 解析を行うドキュメントファイルを指定します。 |
| jsonString | 解析パラメータJSON文字列 | string | ファイル解析時に使用する、抽出対象および出力形式を定義するパラメータを指定します。 |
解析結果のキャッシュ
解析対象ファイルおよび解析パラメータJSON文字列が同一の場合、解析結果は一定時間キャッシュされ、再利用されます。
キャッシュが利用された場合、月間の利用量には加算されません。
解析パラメータJSON文字列の構造
以下のJSON構造を文字列として定義してください。
fields <object[]>
├─ key <string>
├─ label <string>
├─ prompt <string>
└─ columns <object[]>
├─ key <string>
├─ label <string>
└─ prompt <string>
pdf <object>
├─ limit <integer>
└─ startPage <integer>
| 項目名 | 説明 | 型 | 備考 |
|---|---|---|---|
| fields | 抽出項目設定 | object[] | 抽出を行う項目の設定を配列で指定します。 |
| PDF設定 | object | PDFファイルを解析する際の設定を指定します。 |
fields
| 項目名 | 説明 | 型 | 備考 |
|---|---|---|---|
| key | 出力キー | string | 抽出した項目を出力する際のキーを指定します。 |
| label | 項目名 | string | 抽出する項目名を指定します。 |
| prompt | 補足説明 | string | 生成AIが項目を正しく抽出するための補足説明を指定します。 日付形式など、取得する文字列の形式を指定することも可能です。 |
| columns | 明細項目設定 | object[] | 項目を明細データ(テーブル構造)として抽出する場合に指定します。 |
columns
| 項目名 | 説明 | 型 | 備考 |
|---|---|---|---|
| key | 出力キー | string | 明細データの列として抽出した項目を出力する際のキーを指定します。 |
| label | 項目名 | string | 明細データの列として抽出する項目名を指定します。 |
| prompt | 補足説明 | string | 生成AIが項目を正しく抽出するための補足説明を指定します。 日付形式など、取得する文字列の形式を指定することも可能です。 |
pdf
| 項目名 | 説明 | 型 | 備考 |
|---|---|---|---|
| limit | ページ数上限 | integer | 解析対象とするページ数の上限を指定します。 |
| startPage | 開始ページ | integer | 解析対象とする開始ページを指定します。 指定したページから解析を開始します。 |
解析パラメータJSON文字列のサンプル
{
"fields": [
{ "key": "invoice_number", "label": "請求書番号"},
{ "key": "invoice_date", "label": "請求日", "prompt": "請求書に記載された請求日の日付です。YYYY-MM-DD 形式で抽出します。" },
{ "key": "issuer_name", "label": "請求書発行者名", "prompt": "請求書に記載された請求書を発行した会社名または氏名です。" },
{ "key": "customer_name", "label": "顧客名", "prompt": "請求書に記載された顧客の会社名または氏名です。" },
{ "key": "total_amount", "label": "合計金額", "prompt": "請求書に記載された税込みの合計金額です。" },
{
"key": "billing_details",
"label": "請求明細",
"prompt": "請求書に記載された明細表です。",
"columns": [
{ "key": "item_name", "label": "商品名", "prompt": "明細表に記載された商品名です。" },
{ "key": "quantity", "label": "数量", "prompt": "明細表に記載された数量です。" },
{ "key": "unit_price", "label": "単価", "prompt": "明細表に記載された単価です。" },
{ "key": "amount", "label": "金額", "prompt": "明細表に記載された金額です。" }
]
}
],
"pdf": {
"limit": 10,
"startPage": 1
}
}
出力値
出力値の構造
im_analyzeDocument<string>
出力値の詳細
| 項目名 | 説明 | 型 | 備考 |
|---|---|---|---|
| im_analyzeDocument | 解析結果JSON文字列 | string | 解析パラメータで指定された項目をキーとして含む、解析結果の JSON 文字列です。 |
出力値のサンプル
{
"invoice_number": "20251115-123",
"invoice_date": "2025-11-15",
"issuer_name": "株式会社サンプル",
"customer_name": "株式会社サンプル取引先",
"total_amount": "23100",
"billing_details": [
{ "item_name": "コピー用紙", "quantity": "10", "unit_price": "800", "amount": "8000" },
{ "item_name": "ボールペン", "quantity": "50", "unit_price": "120", "amount": "6000" },
{ "item_name": "ファイルケース", "quantity": "20", "unit_price": "350", "amount": "7000" }
]
}
出力値の変換
出力値はJSON文字列として出力されます。
抽出した各項目を利用する場合は、後続の処理でマッピング関数「JSON - parseJSON」を利用するなどしてオブジェクトに変換してください。