Media > AI活用ユースケース > 総務 > 海外子会社から届く英文の保険証券を読み取り、保険期間・てん補限度額・免責金額をグループの付保台帳に転記して、方針との不足と更新の近いものを拾う

海外子会社から届く英文の保険証券を読み取り、保険期間・てん補限度額・免責金額をグループの付保台帳に転記して、方針との不足と更新の近いものを拾う

実装ステータス:構成例 技術的に実現可能な構成として設計したもの。自社未検証

海外子会社から届く英文の保険証券を読み取り、保険期間・てん補限度額・免責金額をグループの付保台帳に転記します。グループの付保方針に届いていない契約と、更新の近い契約を拾って本社の担当者に回します。

サマリー
生成AI
ChatGPT/Claude/Gemini
AIサービス
AWS Textract/Azure AI/Google Document AI
連携・自動化
Python
対象業界
商社/物流/製造
対象部門
総務/財務
対象業務
データ入力・転記/台帳・マスタ管理
主な課題
入力作業が多い/情報が見つからない/期限・対応漏れが起きる
AIで行う処理
読み取り(OCR)
主な効果
入力漏れ削減/工数削減/機会損失防止
導入難易度
★★★☆☆
実装レベル
半自動化
費用感
API連携(中)
人間の確認
条件付き
現在工数
30h/月
AI導入後
8h/月
想定削減
73%
年間削減
264h
モデル条件による試算値です。実在企業の実績ではありません。

01導入前 / 導入後の業務フロー

導入前(Before)
  1. 子会社が共有フォルダに証券のPDFを入れ、本社の担当者にメールで知らせる
  2. 担当者がPDFを開き、明細のページを探して、保険会社・被保険者・保険期間・限度額・免責金額・保険料を読む
  3. 裏書を1枚ずつめくり、限度額や免責金額を変えるもの、補償を外すものが無いかを見る
  4. 付保台帳の子会社と保険の種類の行に写す。通貨は現地通貨のまま書く
  5. 付保方針の文書を開き、限度額と免責金額を見比べる。通貨が違うものは換算する
  6. 届いていないもの、気になるものを子会社にメールで問い合わせる
導入後(After)
  1. 人子会社が共有フォルダ(Amazon S3 に同期)に証券のPDFを入れる
  2. 自動保存をきっかけに処理が動き、形式・ページ数・パスワードの有無を確かめる
  3. 自動OCRが全文、表、キーと値、質問への答え、信頼度を返す
  4. 自動生成AIが、保険の種類ごとに保険会社・被保険者・保険期間・限度額(何についての限度額か)・免責金額を取り出し、裏書が変えている条件を拾う
  5. 自動プログラムが通貨を換算し、付保方針と照らし、更新までの日数を数える
  6. 自動付保台帳の下書きの行を作り、印の付いたものを担当者の一覧に入れる
  7. 人本社の担当者が、印の付いた契約を証券の該当ページと見比べ、台帳の行を確定する
  8. 人方針に届いていない契約と、更新の近い契約について、子会社と相談する
各工程の詳しい説明を読む
  1. 子会社が共有フォルダに証券のPDFを入れ、本社の担当者にメールで知らせる
  2. 担当者がPDFを開き、明細のページを探して、保険会社・被保険者・保険期間・限度額・免責金額・保険料を読む
  3. 裏書を1枚ずつめくり、限度額や免責金額を変えるもの、補償を外すものが無いかを見る
  4. 付保台帳の子会社と保険の種類の行に写す。通貨は現地通貨のまま書く
  5. 付保方針の文書を開き、限度額と免責金額を見比べる。通貨が違うものは換算する
  6. 届いていないもの、気になるものを子会社にメールで問い合わせる

(a)明細を探すだけで時間がかかる。 明細のページの位置も呼び方も保険会社ごとに違い、複数の保険が1冊に綴じられたパッケージの証券では、どの明細がどの保険かを見分けるところから始まります。

(b)裏書を読み切れない。 3番目は数十ページになることがあり、急いでいる月は明細だけを写して終わります。 サブリミットや免責金額の引き上げが裏書にあると、台帳には残りません。

(c)更新に気づかない。 台帳には保険期間の列がありますが、更新が近いものを毎月抜き出す作業はしていません。 子会社から更新の証券が届かないまま期間が切れていても、本社が気づくのは次の問い合わせのときです。

(d)方針との照合が抜ける。 5番目は通貨の換算を伴うので、為替の変動で方針の境目に近い契約ほど判断が分かれます。

  1. 【人】 子会社が共有フォルダ(Amazon S3 に同期)に証券のPDFを入れる
  2. 【自動】 保存をきっかけに処理が動き、形式・ページ数・パスワードの有無を確かめる
  3. 【自動】 OCRが全文、表、キーと値、質問への答え、信頼度を返す
  4. 【自動】 生成AIが、保険の種類ごとに保険会社・被保険者・保険期間・限度額(何についての限度額か)・免責金額を取り出し、裏書が変えている条件を拾う
  5. 【自動】 プログラムが通貨を換算し、付保方針と照らし、更新までの日数を数える
  6. 【自動】 付保台帳の下書きの行を作り、印の付いたものを担当者の一覧に入れる
  7. 【人】 本社の担当者が、印の付いた契約を証券の該当ページと見比べ、台帳の行を確定する
  8. 【人】 方針に届いていない契約と、更新の近い契約について、子会社と相談する

7番目が、この設計の分かれ目です。 担当者は証券を最初から読み直すのではなく、印の付いた項目と、裏書で条件が変わった箇所だけを開きます。 印の無い契約は、取り出した値と出どころの一覧で流し見ます。

5番目をAIにさせないのも、意図してのことです。 通貨の換算、方針の値との比較、日数の計算。どれも規則で決まる処理で、生成AIには証券から値を写すところまでをさせます。

02今回想定するシステム構成

構成図
英文の保険証券(PDF。子会社が共有フォルダに入れる)
   ▼【トリガー】受付フォルダ(Amazon S3)への保存
AWS Lambda ── 形式・ページ数・パスワードの確認
   ▼
AWS Textract(StartDocumentAnalysis:FORMS/TABLES/QUERIES)
   │   全文、キーと値、表、質問への答え、信頼度
   ▼
Claude API ── 保険の種類ごとに明細と裏書の条件を取り出す
   │   ① 保険会社・証券番号  ② 被保険者  ③ 保険期間
   │   ④ 限度額(1事故・合計・サブリミット)  ⑤ 免責金額  ⑥ 裏書による変更
   ▼
Python ── 通貨の換算、付保方針との照合、更新までの日数
   ▼
付保台帳の下書き(ok / below_minimum / deductible_over / expiring_soon / endorsement_change / needs_human)
   ▼
【本社の担当者が印の付いた契約を確認】
   └──▶ 子会社と相談(追加・変更・更新の確認)
役割想定する製品代替候補
OCRAWS Textract(StartDocumentAnalysis/GetDocumentAnalysis)Azure AI Document Intelligence、Google Document AI
生成AIClaude API(明細と裏書の条件の取り出し)OpenAI API、Gemini API
差異計算Python(通貨の換算、付保方針との照合、更新までの日数)付保台帳の関数
連携AWS Lambda(保存と完了の通知を起点に処理を動かす)Amazon EventBridge
保管Amazon S3(証券、読み取り結果、照合の結果)社内のファイルサーバー

付保台帳と付保方針は、新しく足すものではありません。 最初の準備は、付保方針を「保険の種類・限度額の種類・最低の金額・免責金額の上限・通貨」の表に書き直すことと、換算に使う為替の基準(月初の社内レートなど)を決めることです。

OCRに AWS Textract を選ぶのは、証券が英文だからです。 公式の上限の表で、対応言語は英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語とされ、日本語や中国語は読めません。 質問の検出は英語の文書だけなので、この構成は英文の証券に限ります。 欧州や南米の子会社の現地語の証券は、文字は読めても質問が使えないため、担当者が目で見る一覧に入れます。

この題材で効くのは、質問(QUERIES)とページの指定です。 明細は証券の最初の数ページにあることが多く、Pages で質問を明細のページに絞ると、約款の本文に出てくる例示の金額を答えとして拾わずに済みます。 質問は1ページあたり非同期で30個までです。

03どうやって実装するのか

Step1

処理の起点を決める

起点は2つあります。証券が受付フォルダに入ったときと、毎月1日の定時です。

1つ目は、受付フォルダ(Amazon S3)に証券のPDFが保存されたことです。子会社ごとに共有フォルダを分け、子会社名と保険の種類が分かるように置いてもらいます。保存の通知で AWS Lambda が動き、読み取りから台帳の下書きまでを済ませます。子会社の担当者が本社にメールで知らせる手順は残しますが、処理はメールを待たずに始まります。

2つ目は、毎月1日の定時です。付保台帳の全契約について、保険期間の終わりまで90日を切ったもの、60日を切っても更新の証券が届いていないもの、期間が過ぎたのに新しい証券が無いものを一覧にし、本社の担当者に送ります。更新の管理を、担当者の記憶ではなく台帳の側に置きます。

期中に届く変更の裏書も、同じ経路で入れます。 証券番号が同じものは、台帳の同じ行の履歴に足します。

Step2

入力データを集める

データ中身取得元
保険証券PDF。明細(保険会社、証券番号、被保険者、保険期間、限度額、免責金額、保険料)、約款、裏書受付フォルダ(Amazon S3)
読み取り結果全文、キーと値、表とセル、質問への答え、それぞれの信頼度AWS Textract
付保方針の表保険の種類ごと・限度額の種類ごとの最低の金額、免責金額の上限、通貨本社財務部で作る表
為替の基準換算に使う月ごとの社内レート本社財務部
付保台帳子会社と保険の種類ごとの契約、前の期の条件、更新の履歴付保台帳
子会社の一覧子会社の正式名称と、証券に書かれうる名称の揺れ本社総務部

質を決めるのは、付保方針の表です。 今の方針の文書は「賠償責任は十分な限度額を付けること」のような書き方も混ざっており、1事故あたりか合計かが書かれていない項目があります。 照合の前に、限度額の種類ごとの金額に書き直します。

子会社の名称の揺れの一覧は、被保険者の確認に使います。 証券の被保険者が親会社の名前だけになっている、旧社名のままになっている、という契約があります。被保険者に子会社が含まれていなければ、限度額が足りていても意味がありません。

Step3

データの取得方法を決める

読み取りは StartDocumentAnalysis にS3の場所と FeatureTypes を渡して始めます。完了は NotificationChannel に指定した Amazon SNS のトピックに通知され、状態が SUCCEEDED なら GetDocumentAnalysis で結果を取ります。

指定するもの値理由
FeatureTypesFORMS、TABLES、QUERIES明細のキーと値、限度額の表、文章の中の条件
QueriesConfig質問の文と Alias、Pages の組明細のページに絞って項目名で受け取る
ClientRequestTokenファイルのハッシュ同じ証券で二重に読み取りを始めない
JobTag子会社のコード完了の通知から子会社を引く
Alias質問の文
INSURERWhat is the name of the insurance company?
POLICY_NOWhat is the policy number?
NAMED_INSUREDWho is the named insured?
POLICY_PERIODWhat is the policy period?
LIMIT_OCCURRENCEWhat is the limit of liability each occurrence?
LIMIT_AGGREGATEWhat is the aggregate limit?
DEDUCTIBLEWhat is the deductible or retention amount?

質問の答えが見つからなければ空のまま返ります。 空なら、明細のページの表とキーと値から探します。財物の保険のように限度額が建物・在庫・設備ごとに表で並ぶものは、質問より表のほうが確実です。

結果は1回最大1,000ブロックで区切られ、NextToken が返る限り呼び直します。同期の処理はPDF1ページまでで、証券は数十ページあるので非同期で読みます。 JobId は7日間しか有効でないため、取った結果はその場でS3に保存します。

裏書は、明細とは別に、ページごとの見出しで拾います。 Endorsement、Amendment、It is hereby agreed のような言い方で始まるページを裏書として集め、生成AIに渡します。

Step4

AIへ渡す前に整形する

  1. 形式の確認 … JPEG、PNG、PDF、TIFF であることを確かめます
  2. パスワードの確認 … PDFはパスワードで保護されていてはいけないとされています。保護されたものは子会社に解除したものを頼みます
  3. サイズとページ数の確認 … 非同期の処理で、PDFとTIFFは500MB・3,000ページまでです
  4. 言語の確認 … 英語以外の証券は質問が使えないため、読み取りに回さず担当者の一覧に入れます
  5. 明細のページの特定 … 1ページ目から順に、Declarations、Schedule のような見出しのあるページを探し、質問の Pages に入れます。パッケージの証券では、保険の種類ごとの明細の範囲を分けます
  6. 重複の確認 … 同じ証券番号・同じ保険期間の証券が台帳にあれば、差し替えか重複かを確かめる印を付けます
Step5

AIに処理させる

させるのは、保険の種類ごとに明細の値を原文のまま写し、限度額の種類を区別し、裏書が変えている条件を拾うことです。 方針との照合と補償の評価はさせません。

見るもの取り出し方判断できないときの扱い
保険会社・証券番号原文のまま複数あれば保険の種類ごとに分ける
被保険者記名被保険者と追加の被保険者を原文のまま子会社の名前が見つからなければ、その旨を記録
保険期間始まりと終わりの日付と、時刻・地域の記載を原文のまま日と月の順序が決まらなければ ambiguous
限度額1事故あたり・合計・サブリミットを分け、金額と通貨を原文のまま何についての限度額か決まらなければ ambiguous
免責金額金額と、1事故あたりか合計かの別を原文のまま書かれていなければ空
裏書による変更限度額・免責金額・被保険者・補償の範囲を変える裏書を、変更の内容とページで何を変えるか決まらなければ needs_human

限度額の種類を分けさせるのは、方針がそれぞれに金額を決めているためです。 1事故あたりと合計を取り違えると、同じ金額でも方針に届いているかの結論が逆になります。

させないこと理由
補償の範囲が十分かの評価本社の担当者と保険の仲介者が決める
方針との照合換算と比較は Python が行う
通貨の換算社内レートで Python が行う
約款の解釈免責事由や補償の範囲の意味は人が読む
書かれていない限度額の推測前の期の値や一般的な水準で埋めない

5行目がいちばん起きやすい失敗です。 更新の証券に限度額が見つからないと、前の期の台帳の値や、よくある金額を答えにしがちで、その瞬間に「方針に届いている」という誤った結論が台帳に入ります。

Step6

指示内容を固定する

あなたは商社の本社財務部で、海外子会社から届いた英文の保険証券の
条件をグループの付保台帳に記録する担当です。
OCRの読み取り結果だけを使ってください。推測で埋めないでください。

【取り出す項目(保険の種類ごと)】
coverage_line、insurer_raw、policy_no、named_insured_raw、
additional_insured_raw、period_start_raw、period_end_raw、
limits(kind:each_occurrence/aggregate/sublimit、amount_raw、currency_raw、
対象の説明)、deductible(amount_raw、currency_raw、basis)、
endorsements(変更の内容、ページ)、各項目の status とページ

【status の選び方】
- ok ........... 値が読み取れており、その項目として解釈できる
- missing ...... 書かれていない
- unreadable ... 文字は検出されているが値として確定できない
- ambiguous .... 候補が複数ある、または限度額の種類が決まらない

【厳守事項】
- 限度額は、1事故あたり(each occurrence など)、期間中の合計
  (aggregate など)、特定の損害だけの限度額(sublimit)を分けて
  ください。どれか決まらなければ kind を空にし、status を ambiguous
  にしてください。
- 金額と通貨は書かれたとおりに入れてください。換算しないでください。
- 書かれていない限度額や免責金額を、前の期の値や一般的な水準で
  埋めないでください。
- 裏書が限度額・免責金額・被保険者・補償の範囲を変えている場合は、
  変更の内容を原文のまま短く写し、ページを書いてください。
- 約款の本文に出てくる例示の金額を、この契約の値として使わないで
  ください。値は明細のページと裏書からだけ取ってください。
- 補償が十分か、方針を満たすかを書かないでください。
- 保険証券でない書類(請求書、見積書、証明書など)と判断した場合は、
  項目を取り出さず document_type に種類を書いてください。

【読み取り結果】{textract_forms_tables_queries}
【明細のページの範囲】{declaration_pages}
【裏書のページ】{endorsement_pages}

「前の期の値で埋めない」を明記しないと、埋めます。 台帳の情報を渡していなくても、よくある限度額を「一般的な」値として書き添えることがあります。台帳の前の期の値は、そもそも生成AIに渡しません。

Step7

出力形式を固定する

Claude API の構造化出力(output_config.format に json_schema を指定)で、次の形のJSONを受け取ります。

{
  "file": "",
  "document_type": "insurance_policy",
  "subsidiary_code": "US02",
  "coverages": [
    {
      "coverage_line": "general_liability",
      "insurer_raw": "",
      "policy_no": "GL-2026-55821",
      "named_insured_raw": "",
      "period_start_raw": "10/01/2026",
      "period_end_raw": "10/01/2027",
      "limits": [
        { "kind": "each_occurrence", "amount_raw": "1,000,000", "currency_raw": "USD" },
        { "kind": "aggregate", "amount_raw": "2,000,000", "currency_raw": "USD" }
      ],
      "deductible": { "amount_raw": "25,000", "currency_raw": "USD", "basis": "each occurrence" },
      "endorsements": [ { "change_raw": "", "page": 34 } ],
      "items": [ { "item": "limits", "status": "ok", "confidence": 0, "page": 2 } ]
    }
  ]
}

1つ目の理由は、照合をプログラムの側に置けることです。 Python が金額を数値に直し、社内レートで換算して、付保方針の表と比べて印を付けます。

印付ける条件
ok限度額の種類ごとに方針の最低の金額以上、免責金額が上限以下、被保険者に子会社が含まれ、更新まで90日以上
below_minimum限度額のいずれかが方針の最低の金額に届かない
deductible_over免責金額が方針の上限を超える
expiring_soon保険期間の終わりまで90日を切った
endorsement_change裏書が限度額・免責金額・被保険者・補償の範囲を変えている
needs_humanambiguous か unreadable がある、被保険者に子会社が見つからない、または証券でない書類

2つ目は、通貨の換算を記録として残せることです。 原文の金額と通貨、使った社内レート、換算後の金額を並べて台帳に残すので、為替が動いて方針の境目を越えたときに、どの契約から見直すかがすぐに分かります。

Step8

システムへ連携する

つなぎ先方式内容
受付フォルダ(Amazon S3)保存の通知証券の保存を検知して AWS Lambda を動かす
AWS TextractAPI呼び出し(非同期)読み取りを始め、完了の通知で結果を取る
Claude APIAPI呼び出し明細と裏書の条件の取り出し
付保方針の表・社内レート読み取り照合と換算に使う
付保台帳下書きの行の書き込み契約ごとの値・出どころ・印。確定は担当者

付保台帳の確定は、担当者が行います。 この構成が書くのは下書きの行までです。台帳は保険の仲介者や監査に出す資料の元になるため、確定した値と確かめた人を分けて残します。

Step9

人が確認する

本社の担当者が開くのは、ok 以外の印が付いた契約です。 ok の契約は、取り出した値と出どころの一覧で流し見ます。

  1. needs_human を先に見る … 被保険者に子会社が見つからないものは、限度額の確認より先に子会社に確かめます
  2. endorsement_change の裏書を読む … 該当ページを開き、変わった条件を台帳に反映します
  3. below_minimum と deductible_over を確かめる … 証券の該当ページで値と限度額の種類を確かめてから、子会社と相談します
  4. expiring_soon の更新の予定を子会社に聞く … 更新の手配が進んでいるか、条件を変える予定があるかを確かめます

3番目の順序を崩さないでください。 読み取りの誤りによる不足を子会社に伝えると、子会社は仲介者に追加の見積を頼み始めます。 確かめてから相談します。

Step10

例外に対処する

起きること対応
パスワードで保護されたPDF読めない。子会社に解除したものを頼む
英語以外の証券質問が使えない。担当者が目で見る
明細のページが見つからないneeds_human。証明書や見積書が入れられていないかを確かめる
パッケージの証券で保険の種類が分かれない種類ごとに分けられなければ needs_human
限度額の通貨が書かれていないambiguous。子会社に確かめる
更新の証券が届かないまま期間が過ぎる毎月1日の一覧に載せ、子会社に問い合わせる
ジョブが FAILED または PARTIAL_SUCCESSStatusMessage と Warnings のページ番号を記録し、そのページを人へ

上から3行目が、運用の初めに多く出ます。 保険証券ではなく保険証明書や仲介者の見積書が入れられていることがあり、どれを入れてほしいかを子会社に伝えると減ります。

Step11

記録を残す

  • 元の証券と、受け取った日時、子会社、保険の種類
  • AWS Textract が返したJSONの全文と、使った質問とページの指定
  • Claude API が返したJSON
  • 照合の結果と、そのとき参照した付保方針の表と社内レート
  • 担当者が値や限度額の種類を直した記録 … どの項目を、どう変えたか、誰が確かめたか
  • 子会社との相談の記録と、追加・変更の結果

付保方針の表の版を残すのは、方針が見直されるためです。 最低の金額を引き上げると、過去に ok だった契約が不足になります。 当時の方針が残っていれば、どの契約から見直すかがすぐに決まります。

04実装レベルの3段階

最小構成:証券を手でAIの画面に渡し、条件を表にさせる / 1件ごとの条件の取り出し
半自動化:上記+受付フォルダを起点に AWS Textract で読み、通貨を換算して付保方針と照らし、台帳の下書きと更新の一覧を作る / 読み取り、条件の取り出し、換算、方針との照合、更新の管理
本格構成:上記+子会社への問い合わせの下書きと、グループ全体の付保の状況を毎月まとめる / 問い合わせの下書きと、グループの集計まで

本記事の想定は半自動化です。 読み取りと照合と更新の管理が自動になり、担当者は印の付いた契約を確かめて台帳を確定します。1件60分が16分になるのはこの段階です。 本格構成で足すのは、子会社とのやり取りの準備です。 ただし問い合わせを送るのは、引き続き本社の担当者です。段階を飛ばさず、半自動化の間に付保方針の表の書き方を固めておきます。

05工数削減シミュレーション

前提値(モデル条件)
対象人数
2 名
月間件数
30 件
1件あたり現在時間
60 分
1件あたり導入後時間
16 分
現在  30件 × 60分 ÷ 60 = 30 時間/月
導入後 30件 × 16分 ÷ 60 = 8 時間/月
月間削減時間
22h
削減率
73%
年間削減時間
264h
年間金額換算(時間単価3,500円)
92万円
モデル条件による試算であり、実際の効果は業務内容・運用方法によって異なります。

自社条件で導入効果を整理したい方へ

このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。

AI活用について相談する

06向いている企業・向いていない企業

向いている
  1. 海外に十数社以上の子会社を持ち、子会社がそれぞれ現地の保険会社や代理店で財物・賠償・役員賠償責任(D&O)などの保険を手配している商社・製造業・物流業。本社の財務部や総務部が英文の保険証券や更新の証券をPDFで受け取り、グループの付保台帳に手で写している場合。グループとしての付保方針(保険の種類ごとの最低の限度額、免責金額の上限)を決めていて、子会社の契約がそれに届いているかを更新のたびに確かめたい場合。
向いていない
  1. 海外子会社の保険をグループ一括の保険計画(本社が手配する保険と現地の保険の組み合わせ)で本社がすべて手配しており、子会社から証券を集める工程が無い場合。証券が英語以外(中国語・タイ語・日本語など)で届く子会社が中心の場合(この構成のOCRは英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語しか読めず、質問(Queries)は英語の文書だけが対象です)。子会社が数社で、証券も年に数件しか届かない場合。なお、補償の範囲が十分かの評価、約款の解釈、保険を追加・変更するかの判断は、この構成では代替できません。

07最小構成で試す方法

  1. 去年届いた証券から10件を選ぶ(パッケージの証券、裏書で条件が変わっているもの、限度額が1事故あたりと合計で並ぶものを必ず入れる)
  2. 手元の生成AIの画面に1件ずつ渡し、「この証券の保険の種類ごとに、保険会社、被保険者、保険期間、1事故あたりの限度額、合計の限度額、サブリミット、免責金額を、金額と通貨を書かれたとおりに表にしてください。裏書で変わっている条件があれば、ページと一緒に書いてください。書かれていない値は空欄にしてください」と指示する
  3. 出てきた表を、当時の付保台帳と見比べる
  4. 当時の台帳に、裏書の変更が反映されていなかった件数を数える

10件は必ずやってください。 仕組みを組む前に、限度額の種類を取り違えないか、書かれていない値を埋めないかを確かめます。件数が少ないのは、1件のページ数が多く、1件ごとに当時の台帳と突き合わせる時間がかかるためです。

出てきた内容判断
限度額を種類ごとに分けて原文どおりに取り出したOCRのAPIと照合の処理に進む
合計の限度額を1事故あたりとして返した指示で禁じる。直るまで先に進まない
約款の例示の金額を拾った明細のページに絞る。構成は有効

08実装時につまずきやすいポイント

問題対策
合計の限度額を1事故あたりとして台帳に入れる限度額の種類を分けて取り出させ、決まらなければ人へ
書かれていない限度額を前の期の値で埋める前の期の値を生成AIに渡さない。空のまま返させる
約款の例示の金額を拾う質問を明細のページに絞る
裏書の変更が台帳に反映されない条件を変える裏書を拾い、endorsement_change で人へ
被保険者に子会社が含まれていない名称の揺れの一覧で照らし、見つからなければ人へ
通貨の換算で方針の境目を行き来する社内レートの基準日を決め、換算の記録を残す
証明書や見積書が証券として入れられる入れてほしい書類を子会社に伝える
更新の証券が届かないことに気づかない毎月1日に更新の一覧を出す
保険期間の日付の日と月を取り違える原文を残し、順序が決まらなければ人へ
免責金額が1事故あたりか合計かを取り違えるbasis を原文のまま写させ、方針の表にも区別を持たせる

上の2行が、この構成の失敗のほとんどです。 どちらも、方針に届いていない契約を届いているように見せる失敗です。限度額の種類を分け、書かれていない値は空のまま残す設計で守ります。

09セキュリティ・AIガバナンス上の注意点

この構成で扱うデータ: 子会社の保険の条件と保険料、保険会社と仲介者の名前、被保険者の名称、D&Oの証券では役員の範囲に関する記載です。事業上の秘密に当たり、D&Oの証券には個人に関する記載が含まれることがあります。

  1. 外部へ渡す範囲を、取り出しに必要なものに限る … 生成AIに渡すのは明細と裏書のページの読み取り結果だけです。付保方針の表、前の期の台帳、社内レートは渡しません。 照合は社内の Python で行います
  2. 補償の評価をさせない … この構成が出すのは値と照合の印までで、補償の範囲が十分か、追加の保険が要るかは、本社の担当者と保険の仲介者が決めます
  3. 約款の解釈を台帳に書かない … 免責事由や補償の範囲の意味を要約させると、台帳に「補償される」という解釈が残り、事故のときの判断を誤らせます
  4. 現地の規制を本社の方針より先に確かめる … 子会社がどの保険会社と契約できるか、加入が義務の保険は何かは国ごとに違います。方針との不足を見つけても、現地の仲介者に確かめてから相談します

誤りが起きた場合のリスクは、不足している契約を見逃すことと、更新の切れ目を作ることの2つです。 前者は限度額の種類の取り違えから、後者は更新の一覧の漏れから起きるので、値を種類と原文の通貨と一緒に残し、更新の管理を台帳の側に置く設計を崩さないでください。

10まず何から始めるか

1週目:付保方針を表に書き直す

付保方針の文書を、保険の種類・限度額の種類(1事故あたり・合計)・最低の金額・免責金額の上限・通貨の表に書き直します。種類が書かれていない項目は、財務部の責任者に決めてもらいます。

2週目:10件で試す

去年の証券から10件を選び、手元の生成AIの画面で条件を表にさせます。限度額の種類を取り違えないか、書かれていない値を埋めないかを最優先で見ます。

3週目:受け取り方を子会社にそろえてもらう

子会社ごとの共有フォルダを作り、証券の全ページ(明細・約款・裏書)を1つのPDFで入れてもらうように依頼します。あわせて、子会社の名称の揺れの一覧を作ります。

4週目:受付フォルダから台帳の下書きまでをつなぐ

S3、Lambda、Textract、Claude API、Python の照合をつなぎ、台帳の下書きの行を書くところまで作ります。この時点では、北米の子会社の証券だけを対象にします。

2か月目: 対象を英文の証券を出すすべての子会社に広げ、needs_human と endorsement_change の件数を毎週数えて、明細のページの探し方と質問を直します。3か月目以降: 毎月1日の更新の一覧を足し、1件60分が何分になったかを実測します。更新の切れ目が台帳の上で前もって見えるようになった時点で、この構成は完成です。


11関連ユースケース

12この仕組みを理解するための記事

13技術仕様の確認日・参考情報

技術仕様確認日:2026-10-08/最終更新:2026-10-08
確認した内容情報源確認日
対応する形式がJPEG、PNG、PDF、TIFFであること。同期はPDF1ページ・10MB、非同期はPDFとTIFFで500MB・3,000ページであること。PDFはパスワードで保護できないこと。対応言語が英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語で、質問の検出は英語の文書だけであること。質問は同期で1ページ15個、非同期で30個までであることAWS: Set Quotas in Amazon Textract2026-10-08
StartDocumentAnalysis の FeatureTypes(TABLES/FORMS/QUERIES/SIGNATURES/LAYOUT)、QueriesConfig(Alias、Pages、Text)、ClientRequestToken、JobTag、NotificationChannel で Amazon SNS に完了を通知すること。JobId が7日間だけ有効なことAWS: StartDocumentAnalysis2026-10-08
GetDocumentAnalysis の JobStatus(SUCCEEDED/FAILED/PARTIAL_SUCCESS ほか)、MaxResults(最大1,000)と NextToken、StatusMessage、Warnings。質問のページ数の上限を超えると INVALID_REQUEST_PARAMETERS が出ることAWS: GetDocumentAnalysis2026-10-08
質問の応答が QUERY と QUERY_RESULT のブロックで返り、別名(Alias)と信頼度を持つこと。答えが見つからなければ空のまま返ることAWS: Queries2026-10-08
KEY_VALUE_SET、TABLE、CELL、QUERY_RESULT などのブロックの種類と、信頼度が0〜100で返ることAWS: Block2026-10-08
構造化出力を output_config.format に json_schema を指定して受け取れることClaude Docs: Structured outputs2026-10-08

補償の範囲が十分か、保険を追加・変更するかは、本社の担当者と保険の仲介者が判断してください。 本記事は公開仕様で確認できた範囲だけを扱っています。現地で加入が義務の保険や契約できる保険会社は、子会社のある国の規制を確かめてください。

実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。

自社の業務に使えるAI活用候補を整理します

このユースケース(UC-0868)についてのご相談はこちらから。

AI活用について相談する
目次