海外の委託先から届く英文の保険証明書を読み取って取引先台帳に転記し、契約で求める補償条件の不足と期限切れ間近を拾う
海外の委託先から届く英文の保険証明書を読み取り、保険の種類・補償額・有効期限・被保険者を取引先台帳に転記します。委託の契約で求める補償条件を満たさないものと、期限切れが近いものを拾って担当者に回します。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Python
- 対象業界
- 商社/物流/製造
- 対象部門
- 法務/購買
- 対象業務
- 内容確認・チェック/台帳・マスタ管理
- 主な課題
- 入力作業が多い/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 委託先や保険代理店からメールで届いた証明書のPDFを、委託先ごとのフォルダに保存する
- 担当者が証明書を開き、被保険者の名前、保険の種類ごとの証券番号・保険会社・期間・補償額を台帳に写す
- 台帳の「求める補償の条件」と見比べ、補償額が足りているかを確かめる
- 追加被保険者と代位求償の放棄の欄、証明書の保有者(Certificate Holder)の名前を確かめる
- 有効期限を台帳に入れ、期限が近いものに更新の依頼を出す
- 足りないものは委託先に連絡し、必要なら法務に相談する
- 自動保険証明書の受け取り用のメールアドレスに届いた添付を、受付フォルダへ保存する
- 自動保存をきっかけに、形式・ページ数・パスワードの有無を確かめる
- 自動OCRが証明書のキーと値、保険の種類ごとの表、チェック欄の状態、質問への答えを、信頼度とともに返す
- 自動生成AIが、保険の種類ごとに証券番号・保険会社・期間・補償額・チェック欄をそろえ、備考欄の追加被保険者の記載を原文で切り出す
- 自動取引先台帳の委託先と求める補償の条件を引き、規則で照らす
- 自動証明書ごとに `ok` / `limit_short` / `coverage_missing` / `endorsement_needed` / `name_mismatch` / `expiring` / `needs_human` を付けて確認の一覧に出す
- 人購買の担当者が `ok` 以外を開き、委託先に連絡するか、法務に相談するかを決める
- 人確かめ終えたものを台帳に確定する
- 自動毎月1回、台帳の期限から30日以内に切れるものを一覧にし、更新の依頼の下書きを作る
各工程の詳しい説明を読む
- 委託先や保険代理店からメールで届いた証明書のPDFを、委託先ごとのフォルダに保存する
- 担当者が証明書を開き、被保険者の名前、保険の種類ごとの証券番号・保険会社・期間・補償額を台帳に写す
- 台帳の「求める補償の条件」と見比べ、補償額が足りているかを確かめる
- 追加被保険者と代位求償の放棄の欄、証明書の保有者(Certificate Holder)の名前を確かめる
- 有効期限を台帳に入れ、期限が近いものに更新の依頼を出す
- 足りないものは委託先に連絡し、必要なら法務に相談する
(a)期限を追い切れない。 5番で、台帳の期限の列を見て依頼を出す運用ですが、400社の期限を毎月見直す時間が取れず、期限が切れてから気づくことがあります。期限の切れた委託先に配送を任せている間に事故が起きると、補償が無い状態です。
(b)補償額の読み方が人によって違う。 一般賠償責任には「1事故あたり」「総額」「製造物・完成作業の総額」などの欄が並びます。どの欄を契約の条件と比べるかが、担当者によって違います。 自動車は、対人・対物を合わせた補償額で書く場合と、分けて書く場合があります。
(c)チェック欄を見落とす。 4番で、追加被保険者と代位求償の放棄は、表の小さな列に「Y」や「X」が書かれるだけです。空欄のまま届いた証明書を、見落として受け付けてしまいます。
(d)被保険者の名前が委託先と合わない。 委託先の正式な名前と、証明書の被保険者の名前(屋号や親会社の名前)が違うことがあります。別の会社の保険を見ている可能性があるのに、名前が似ていれば通してしまいます。
- 【自動】 保険証明書の受け取り用のメールアドレスに届いた添付を、受付フォルダへ保存する
- 【自動】 保存をきっかけに、形式・ページ数・パスワードの有無を確かめる
- 【自動】 OCRが証明書のキーと値、保険の種類ごとの表、チェック欄の状態、質問への答えを、信頼度とともに返す
- 【自動】 生成AIが、保険の種類ごとに証券番号・保険会社・期間・補償額・チェック欄をそろえ、備考欄の追加被保険者の記載を原文で切り出す
- 【自動】 取引先台帳の委託先と求める補償の条件を引き、規則で照らす
- 【自動】 証明書ごとに
ok/limit_short/coverage_missing/endorsement_needed/name_mismatch/expiring/needs_humanを付けて確認の一覧に出す - 【人】 購買の担当者が
ok以外を開き、委託先に連絡するか、法務に相談するかを決める - 【人】 確かめ終えたものを台帳に確定する
- 【自動】 毎月1回、台帳の期限から30日以内に切れるものを一覧にし、更新の依頼の下書きを作る
4番目でAIに任せるのは「そろえる」ところまでです。 補償が足りているか、契約の条件を満たすかはAIに判断させません。求める条件は台帳にあり、照らし方は規則で決まっているからです。
9番目が、期限の見直しを確実にします。 証明書の受け取りとは別に月1回動かすことで、証明書が届かない委託先の期限切れも拾えます。
02今回想定するシステム構成
委託先・保険代理店からの英文の保険証明書(PDF) ▼【トリガー】受付フォルダ(Amazon S3)への保存 AWS Lambda ── 形式・ページ数・サイズ・パスワードの確認 ▼ AWS Textract(StartDocumentAnalysis:FORMS/TABLES/QUERIES) │ キーと値、保険の種類ごとの表、チェック欄、信頼度 ▼ Claude API ── 保険の種類ごとに項目をそろえ、備考欄を切り出す ▼ Python ── 取引先台帳の求める条件で照らす │ ① 種類の有無 ② 補償額 ③ 期間 ④ 追加被保険者・代位求償の放棄 │ ⑤ 被保険者の名前 ⑥ 証明書の保有者 ▼ 判定(ok / limit_short / coverage_missing / endorsement_needed / name_mismatch / expiring / needs_human) ▼ 【購買の担当者が ok 以外を確認、必要なら法務へ】 ├──▶ 委託先への依頼(英文の下書き) └──▶ 取引先台帳へ確定
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | AWS Textract(StartDocumentAnalysis/GetDocumentAnalysis) | Azure AI Document Intelligence、Google Document AI |
| 生成AI | Claude API(保険の種類ごとの項目の整形と備考欄の切り出し、依頼文の下書き) | OpenAI API、Gemini API |
| 差異計算 | Python(求める補償の条件との照合と期限の判定) | 取引先管理の仕組みの照合の機能 |
| 連携 | AWS Lambda(保存と完了の通知、月1回の期限の見直しを起点に処理を動かす) | Amazon EventBridge |
| 保管 | Amazon S3(証明書、読み取り結果、照合の結果) | 社内のファイルサーバー |
取引先台帳と契約書は、新しく足すものではありません。 最初の準備は、委託の種類ごとに求める補償の条件を、表の列として持たせることです。契約書に文章で書かれた条件を、「自動車の補償額」「貨物の補償額」のような列に起こします。
OCRに AWS Textract を選ぶのは、証明書が英文だからです。 対応言語は英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語で、日本語は読めません。 手書きの文字が読めるのは英語だけです。
使う機能は、文書の分析(AnalyzeDocument と、その非同期版の StartDocumentAnalysis)です。 FORMS でキーと値の組、TABLES で保険の種類ごとの表、QUERIES で質問への答えが返ります。証明書の要は、チェック欄です。 Textract はチェック欄やラジオボタンを SELECTION_ELEMENT として検出し、SelectionStatus に SELECTED か NOT_SELECTED を返します。表のセルの中のチェック欄も、表の中で検出されます。
ACORD 25 の書式では、保険の種類ごとに行が分かれ、 「ADDL INSD(追加被保険者)」「SUBR WVD(代位求償の放棄)」の列、証券番号、開始日と終了日(MM/DD/YYYY)、補償額の欄が並びます。2025年12月版の書式がニューヨーク州金融サービス局の承認済みの書式として公開されています。
03どうやって実装するのか
処理の起点を決める
処理の起点は2つです。 1つは、受付フォルダ(Amazon S3)に証明書が保存されたこと。もう1つは、毎月1日の定時実行で、台帳の期限を見直します。
証明書の受け取り用のメールアドレスを委託先と保険代理店に案内し、添付を自動で受付フォルダへ保存します。 保険代理店から直接届く証明書も多いので、契約のときに代理店にもこのアドレスを伝えてもらいます。
月1回の見直しは、証明書が届くかどうかに関係なく動かします。更新の証明書が届かない委託先は、受け取りの起点だけでは永久に拾えないからです。処理が終わった証明書は処理済みの場所へ移し、移すのは確認の一覧への書き出しまで成功したときだけにします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 保険証明書 | PDF。送り元のアドレス、受け取った日時 | 受付フォルダ |
| 読み取り結果 | キーと値、表のセル、チェック欄の状態、質問への答え、値ごとの信頼度 | AWS Textract |
| 取引先台帳 | 委託先のコード、正式な名前と別名(屋号・親会社)、委託の種類、求める補償の条件、現在の証明書の期限 | 取引先台帳 |
| 求める補償の条件 | 保険の種類、最低の補償額と比べる欄、追加被保険者・代位求償の放棄の要否 | 委託の種類ごとの条件表 |
| 自社の名前の一覧 | 証明書の保有者として書かれるべき自社と現地法人の名前と住所 | 自社で用意する一覧 |
| 裏書の写し | 追加被保険者・代位求償の放棄の裏書のPDF | 委託先から届いたもの |
質を決めるのは、求める補償の条件の表です。 「一般賠償責任 100万ドル」とだけ書くと、1事故あたりか総額かが決まりません。比べる欄まで決めておくことが、第3章の(b)を解きます。
データの取得方法を決める
読み取りは、Lambda から StartDocumentAnalysis を呼んで始めます。 文書はS3の場所で指定し、完了の通知先にSNSのトピックを渡します。ClientRequestToken に受付のファイルごとの値を入れ、同じ証明書の処理が二重に始まらないようにします。 JobId は7日間しか有効でないので、完了を受けたらすぐに GetDocumentAnalysis で結果を取り、自社のバケットへ書き出します。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 被保険者・保険代理店・証明書の保有者 | KEY_VALUE_SET(「INSURED」「PRODUCER」「CERTIFICATE HOLDER」) | 名前の照合 |
| 保険会社の一覧 | KEY_VALUE_SET(「INSURER A」〜「INSURER F」) | 保険の種類ごとの保険会社 |
| 保険の種類ごとの行 | TABLE と CELL | 種類・証券番号・期間・補償額 |
| チェック欄 | SELECTION_ELEMENT の SelectionStatus | 「CLAIMS-MADE/OCCUR」「ANY AUTO」など |
| 追加被保険者・代位求償の放棄の列 | 表のセルの文字(「Y」「X」)またはチェック欄 | 契約の要否との照合 |
| 証明書の日付と番号 | 質問への答え | 新しい版かの判定 |
| 備考欄 | 「DESCRIPTION OF OPERATIONS」の全文 | 追加被保険者の記載の切り出し |
質問(Queries)は英語の文書だけで使えます。 「What is the certificate date?」「What is the certificate number?」のような、表の外の項目を取るのに使います。フランス語の証明書(カナダのケベック州など)では、質問を外します。
書式が決まった証明書が多い場合は、アダプターも選べます。 AdaptersConfig で、自社の証明書で学習させたアダプターを指定できます。学習には5件から2,500件の文書を使います。まず標準の機能で3か月回し、読み違いの多い欄が分かってから検討します。
AIへ渡す前に整形する
- 形式の確認 … 扱えるのはJPEG、PNG、PDF、TIFFです。XFA形式のPDFには対応していません
- パスワードの確認 … パスワードで保護されたPDFは読めません。 送り直してもらいます
- 解像度の確認 … 読み取れる文字の高さは15ピクセル以上(150dpiで8ポイント)。証明書の表の小さな文字が、この下限に近いことがあります。 保険代理店が出したPDFをそのまま送ってもらい、印刷してスキャンしたものは避けます
- 委託先の特定 … 送り元のアドレスと被保険者の名前から取引先台帳を引きます。引けなければ
needs_human - 書式の判別 … 1ページ目の題と書式の番号(「ACORD 25」など)で、標準の書式か独自の書式かを分けます
- 補償額と日付の正規化 … 「$1,000,000」「1M」「1,000,000」を数値に、「MM/DD/YYYY」を自社の形に直します。元の文字列は残します
- 重複の検知 … 同じ委託先・同じ証明書の番号のものが既にあれば、再送か改訂かの印を付けます
6番目はAIに任せません。 日付の書き方は書式で決まっており、ACORD 25 では月・日・年の順です。オセアニアの証明書は日・月・年の順で書かれることが多く、生成AIに読ませると、期限が数か月ずれた値で照らすことになります。
AIに処理させる
させるのは、読み取り結果を保険の種類ごとの行にそろえ、備考欄の追加被保険者の記載を原文で切り出すことだけです。
| 見るもの | 書き出す内容 | 判断できないときの扱い |
|---|---|---|
| 保険の種類 | 一般賠償責任/自動車/超過賠償/労災・使用者賠償/貨物/その他 | 決められなければ other と原文 |
| 種類ごとの行 | 保険会社の記号、証券番号、開始日、終了日、補償額の欄の名前と値の組 | 書かれていなければ「不明」 |
| チェック欄 | 種類ごとの選択の状態(OCCUR/CLAIMS-MADE、ANY AUTO など) | 状態が読めなければ unknown |
| 追加被保険者・代位求償の放棄 | 種類ごとの列の記載 | 空欄なら空欄のまま |
| 備考欄 | 追加被保険者・代位求償の放棄・自社の名前に触れた文の原文 | 無ければ空 |
| 名前 | 被保険者、保険代理店、証明書の保有者 | 書かれていなければ「不明」 |
補償額を「欄の名前と値の組」で出させるのは、比べる欄を規則の側で選ぶためです。 一般賠償責任には「EACH OCCURRENCE」「GENERAL AGGREGATE」など複数の欄があります。AIに1つの補償額にまとめさせると、どの欄の値かが分からなくなります。
| させないこと | 理由 |
|---|---|
| 補償が足りるかの判断 | 求める条件の表で規則が照らす |
| 追加被保険者として認められるかの判断 | 証明書は権利を与えない。 裏書で確かめる |
| 補償額の合算 | 種類の違う補償額を足さない |
| 期限の計算 | 規則で行う |
| 名前が同じ会社かの判断 | 台帳の別名で照らし、当たらなければ人 |
2行目がいちばん大事です。 備考欄に「Certificate holder is included as additional insured」と書かれていると、AIは頼まなくても「追加被保険者として確認済み」とまとめます。証明書にはそれが権利を与えないと明記されています。 書かれていることと、保険でそうなっていることを分けます。
指示内容を固定する
あなたは物流会社の購買部で、委託先から届いた英文の保険証明書を、
取引先台帳の形にそろえる立場です。
渡すのは、OCRが返した読み取り結果(キーと値、表、チェック欄の状態)です。
そこに書かれたことだけを使ってください。
【書き出すこと】
1. insured, producer, certificate_holder, certificate_date, certificate_no
2. 保険の種類ごとの行: coverage_type, insurer_letter, policy_no,
eff_date, exp_date, addl_insd, subr_wvd,
limits(欄の名前と値の組をすべて), checkboxes(選択の状態)
3. remarks_text: 備考欄のうち、追加被保険者・代位求償の放棄・
証明書の保有者に触れた文を原文のまま
【厳守事項】
- 書かれていない項目は「不明」としてください。推測で埋めないでください。
- 補償額・日付・証券番号は、読み取り結果の文字列のまま写してください。
単位を直したり、合算したりしないでください。
- 補償額は、欄の名前(EACH OCCURRENCE など)と値の組で書いてください。
1つの補償額にまとめないでください。
- addl_insd と subr_wvd は、表に書かれた文字をそのまま写し、
空欄なら空欄のままにしてください。備考欄の記載から埋めないでください。
- チェック欄の状態は、読み取り結果の SELECTED / NOT_SELECTED に従い、
状態が無いものは unknown としてください。
- 補償が足りるか、契約の条件を満たすか、追加被保険者として
認められるかを書かないでください。
- 保険証明書でない書類(保険証券の写し、裏書、請求書など)と判断した
場合は、そろえる作業をせず document_type に種類を書いてください。
【読み取り結果】{textract_result}
「備考欄の記載から埋めない」を書かないと、表の空欄が埋まります。 表の追加被保険者の列が空欄でも、備考欄に「additional insured」とあれば、AIは列に「Y」を入れて返します。表と備考欄の食い違いこそ、人が確かめるべきところです。
「保険証明書でない書類」を分けさせるのは、裏書の写しが同じアドレスに届くからです。 裏書を証明書として読むと、種類ごとの行が空のまま coverage_missing になります。
出力形式を固定する
次の形のJSONで受け取ります。 Claude API の構造化出力(output_config.format に type: "json_schema" とJSONスキーマを渡す)を使うと、スキーマどおりの形で返り、必須の項目が欠けません。
{
"document_type": "certificate_of_insurance",
"insured": "",
"producer": "",
"certificate_holder": "",
"certificate_date": "",
"certificate_no": "",
"coverages": [
{ "coverage_type": "general_liability", "insurer_letter": "",
"policy_no": "", "eff_date": "", "exp_date": "",
"addl_insd": "", "subr_wvd": "",
"limits": [ { "label": "", "value": "" } ],
"checkboxes": [ { "label": "", "status": "" } ] }
],
"remarks_text": ""
}
この後に、Python が照合を足します。
| 確かめること | 規則 | 結果 |
|---|---|---|
| 名前 | 被保険者が台帳の正式な名前か別名に当たるか | 当たらなければ name_mismatch |
| 種類 | 委託の種類で求める保険の種類がそろっているか | 無ければ coverage_missing |
| 補償額 | 求める条件の表で決めた欄の値が、最低の額以上か | 下回れば limit_short と不足額 |
| 期間 | 終了日が今日より後か、30日以内に切れないか | 切れていれば coverage_missing、30日以内なら expiring |
| 追加被保険者・代位求償の放棄 | 要とする契約で、列に記載があるか | 無ければ endorsement_needed。あっても裏書の写しが無ければ endorsement_needed |
| 証明書の保有者 | 自社の名前の一覧に当たるか | 当たらなければ needs_human |
| 信頼度 | 補償額・終了日の信頼度が決めた値を下回らないか | 下回れば needs_human |
1つ目の理由は、比べる欄を条件の表で決められることです。 求める条件の表に「一般賠償責任は EACH OCCURRENCE で比べる」と書いておけば、担当者ごとに比べる欄が違うということが無くなります。
2つ目は、endorsement_needed を列の記載と裏書の写しの両方で決めることです。 列に「Y」があっても、裏書の写しが台帳に無ければ確かめを求めます。 証明書が権利を与えないという前提を、規則の側で守ります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 受付フォルダ(Amazon S3) | 保存の通知で Lambda を起動 | 証明書の受け取り |
| AWS Textract | StartDocumentAnalysis/GetDocumentAnalysis | キーと値、表、チェック欄 |
| Claude API | API呼び出し | 項目の整形と備考欄の切り出し、依頼文の下書き |
| 取引先台帳 | 読み取りと、確定したものの書き込み | 書き込みは担当者が確定したものだけ |
| 確認の一覧 | 表への書き出し | 購買の担当者が確認する一覧 |
| 定時実行 | 毎月1日に Lambda を起動 | 期限の見直しと更新の依頼の下書き |
委託の停止や配車の仕組みへは、何も書き込みません。 期限が切れた委託先に仕事を出さないかは、購買と現場の判断です。この構成が出すのは、期限と不足の事実までです。
人が確認する
人が開くのは ok 以外の証明書です。
- 期限切れの
coverage_missingを最優先で見る … その委託先に今月仕事を出しているかを現場に確かめます limit_shortを見る … 不足額を添えて、委託先に補償の引き上げを求めるかを決めますendorsement_neededを見る … 裏書の写しを委託先に求めます。表現が契約の条件に合うかは法務に相談しますname_mismatchを見る … 屋号か親会社の名前か、別の会社か。別名なら台帳に積みますexpiringは更新の依頼の下書きを確かめて送る
3番目で法務に回すのは、裏書の文言の読み方が保険の法的な解釈になるからです。 購買の担当者が決めてよいのは、写しが届いているかどうかまでです。
目標は、90件をならして1件8分です。 ok は数分、endorsement_needed で法務に相談するものは20分以上かかる想定です。
例外に対処する
| 起きること | 対応 |
|---|---|
| パスワードで保護されたPDF | 読めない。送り直してもらう |
| 標準でない独自の書式 | 表とキーと値で読み、種類が決められない行は needs_human |
| 1枚に収まらず続きの紙が付く | 続きのページを同じ証明書として束ねてから照らす |
| 裏書の写しが証明書として届く | document_type を見て、台帳の裏書の欄に紐付ける |
| 被保険者の名前が台帳に無い | name_mismatch。別の会社の保険の可能性を先に疑う |
| 補償額の欄が空 | limit_short にはせず needs_human。読み取りの漏れか記載の無さか |
| 証明書の保有者が他社の名前 | 別の荷主向けの証明書の転用。自社向けに出し直してもらう |
| OCRが応答しない | 受付フォルダに残す。処理済みへ移すのは成功時だけ |
下から2行目を軽く見ないでください。 委託先が別の荷主向けに取った証明書をそのまま送ってくることがあります。証明書の保有者が自社でなければ、補償の条件を満たしていても受け付けません。
記録を残す
- 元の証明書のPDFと、受け取った日時・送り元
- OCRが返したJSONの全文
- AIが返したJSONと、照合の結果
- 照合に使った求める補償の条件の表の版
- 人が確定・変更した記録と、法務への相談の結果
- 委託先への依頼と回答、裏書の写しの受け取り
- 月1回の期限の見直しの結果と、依頼を送った日時
「求める補償の条件の表の版」を残すのは、契約の条件が改定されるためです。 補償額の引き上げを契約で求めた後で過去の判定を見ると、当時は ok だったものが不足に見えます。いつの条件で照らしたかが残っていないと、どこまで依頼し直すかが決まりません。
04実装レベルの3段階
本記事の想定は半自動化です。 1件30分が8分になります。本格構成で依頼を自動で送ると、委託先の担当者が変わったときに宛先の誤りが続きます。 半自動化で依頼の下書きを人が送る運用を半年続け、宛先の台帳が整ってから進めます。
05工数削減シミュレーション
導入後 90件 × 8分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 北米・オセアニアなどで現地の運送会社・倉庫会社・通関業者に配送や保管を委託している国際物流会社と、その現地法人を管理する本社の購買部門。委託の契約で賠償責任保険・自動車保険・貨物保険の補償額や追加被保険者の扱いを求めており、委託先から英文の保険証明書が月に数十件以上届く場合。海外の委託先を多く使う商社やメーカーの物流部門。
- 委託先が国内の会社だけで、保険証明書が日本語で届く場合(この構成のOCRは英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語しか読めません)。委託先が数社で、年に数回の確認で足りる場合。保険証明書の管理を専門の外部サービスに任せている場合。なお、補償が十分かどうかの最終的な判断と、保険の条件に関する法的な解釈は、この構成では代替できません。
07最小構成で試す方法
- 手元の証明書から10件を選ぶ(ACORD 25 と独自の書式、補償が足りないと分かっているもの、追加被保険者の列が空欄のものを入れる)
- 10件について、担当者が台帳に入れた内容と判断を書き出しておく
- 証明書のPDFを手元のAIサービスに貼り付ける
- 「この保険証明書から、保険の種類ごとに証券番号・期間・補償額(欄の名前と値の組)・追加被保険者と代位求償の放棄の列の記載を書き出してください。書かれていない項目は『不明』としてください。補償が足りるかは判断しないでください」と指示する
- 出てきた内容を、担当者の台帳と突き合わせる
10件は必ずやってください。 組む前に、「補償額を欄ごとに正しく取れるか」「空欄を空欄のまま返せるか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 担当者の台帳とほぼ同じ値が出た | OCRと照合の仕組みに進む |
| 備考欄から追加被保険者の列を埋めた | 指示の書き方で直る。構成は有効 |
| 補償額の欄と値がずれる | 表の読み取りの確認が先。 印刷してスキャンしたものを避ける |
3行目が出たら、元の画質を疑います。 保険代理店が出したPDFを転送してもらうだけで、表の読み取りが安定することが多くあります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| AIが「追加被保険者として確認済み」とまとめる | 証明書は権利を与えない。 列の記載と裏書の写しを規則で見る |
| 備考欄から表の空欄を埋める | 空欄は空欄のまま返させる |
| 補償額を1つにまとめる | 欄の名前と値の組で出させる |
| 比べる欄が担当者ごとに違う | 求める条件の表に比べる欄まで書く |
| 日付の月と日が入れ替わる | 書式ごとに書き方を決め打ちし、AIに読ませない |
| 証明書が届かない委託先の期限切れを拾えない | 月1回の見直しを受け取りと別に動かす |
| 別の荷主向けの証明書を受け付ける | 証明書の保有者を自社の名前の一覧で照らす |
| 屋号で名前が当たらない | 別名を台帳に積む |
| 更新の依頼を自動で送る | 下書きまでにする。 送るのは担当者 |
| 印刷してスキャンした証明書で表が崩れる | 代理店が出したPDFを転送してもらう |
上の3行が、この構成の失敗のほとんどです。 どれも、証明書に書かれた文字を「保険でそうなっている」と読み替えてしまうことから出ています。書かれていることをそのまま取り、判断は規則と人、という分け方を崩さないことです。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 委託先の名前と住所、保険会社と証券番号、補償額、保険代理店の連絡先、委託の契約の保険条項です。個人の情報はほとんど含みませんが、委託先との取引の条件は外に出せない情報です。
- 外部へ渡す範囲を、整形に必要な項目に限る … 生成AIに渡すのは証明書の読み取り結果だけです。求める補償の条件の表と契約書は渡しません
- 補償の判断をAIに任せない … 証明書に書かれていることと、保険でそうなっていることは別です。照らすのは規則、判断は購買と法務です
- 委託先への依頼を自動で送らない … 依頼の文は下書きまでです
- 期限切れの委託先への仕事の出し方を決めておく … この構成は事実を出すだけです。期限が切れた委託先に仕事を出さない、という運用の決まりを先に作ります
- 保存先を暗号化する … 非同期の分析では、結果を自社のバケットに出し、KMSの鍵で暗号化する設定ができます
- 人の確認を Textract の仕組みに頼らない … Textract の人の確認の仕組みが使う Amazon Augmented AI は、2026年7月から新規の受付をしていません。確認は自社の一覧で行います
誤りが起きた場合のリスクは、補償の無い委託先に仕事を出すことと、追加被保険者になっていないのに安心することの2つです。 前者は期限の見直しの抜けで、後者は証明書の記載を権利と読み替えることで起きます。どちらも、月1回の見直しと裏書の確認を規則に置く設計で防ぎます。
10まず何から始めるか
1週目:求める補償の条件を表に起こす
委託の契約書から保険条項を抜き出し、委託の種類ごとに保険の種類、比べる欄、最低の補償額、追加被保険者と代位求償の放棄の要否の表にします。法務と一緒に作ります。
2週目:10件で試す
手元のAIサービスで、証明書を保険の種類ごとに書き出させます。空欄を埋めていないか、補償額を1つにまとめていないかを最優先で見ます。
3週目:台帳の期限を見直す
取引先台帳の証明書の期限の列を、今ある証明書で埋め直します。期限が空の委託先と、すでに切れている委託先の数を数えます。 これが最初の月の依頼の対象です。
4週目:受付から確認の一覧までをつなぐ
S3 の受付フォルダから StartDocumentAnalysis を呼び、保険の種類ごとの整形と、求める条件との照合を一覧に書き出すところまで作ります。この時点では期限の見直しは手で行い、一覧の判定だけを見ます。
2か月目: 月1回の期限の見直しと更新の依頼の下書きを足し、ok 以外の件数を毎週数えます。3か月目以降: 裏書の写しの紐付けを足し、1件30分が何分になったかを実測します。期限の切れた委託先が毎月0件で始まるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
StartDocumentAnalysis がJPEG・PNG・TIFF・PDFを非同期で分析し、完了をSNSに通知し、GetDocumentAnalysis で結果を取ること。FeatureTypes に TABLES・FORMS・QUERIES などを指定でき、AdaptersConfig でアダプターを指定できること。ClientRequestToken で二重起動を防げること、JobId が7日間有効なこと、OutputConfig と KMSKeyId で自社のバケットへの出力と暗号化ができること | AWS: StartDocumentAnalysis | 2026-10-06 |
AnalyzeDocument がキーと値(KEY_VALUE_SET)、表とセル、質問、チェック欄(SELECTION_ELEMENT)を返すこと。HumanLoopConfig が使う Amazon Augmented AI が2026年7月から新規の受付をしていないこと | AWS: AnalyzeDocument | 2026-10-06 |
チェック欄やラジオボタンが SELECTION_ELEMENT として検出され、SelectionStatus が SELECTED か NOT_SELECTED であること。キーと値と表のセルの中で検出されること | AWS: Selection Elements | 2026-10-06 |
| 同期の処理がPDFで1ページ・10MBまで、非同期がPDFで500MB・3,000ページまで、XFA形式とパスワード保護のPDFは不可、対応言語が6言語で手書きは英語のみ、質問の検出は英語の文書だけ、文字の高さが15ピクセル以上(150dpiで8ポイント)、アダプターの学習が5〜2,500件であること | AWS: Set Quotas in Amazon Textract | 2026-10-06 |
| ACORD 25(2025/12)の書式に、情報のためだけに発行され証明書の保有者に権利を与えないこと、追加被保険者には保険の条項か裏書が要り証明書の記載は裏書に代わらないこと、補償額は支払った保険金で減っている場合があることが記載されていること。ADDL INSD・SUBR WVD の列、開始日と終了日(MM/DD/YYYY)、INSURER A〜F、DESCRIPTION OF OPERATIONS の欄があること | New York State DFS: ACORD 25 (2025/12) - Certificate of Liability Insurance | 2026-10-06 |
構造化出力を output_config.format(type: "json_schema")で指定でき、スキーマどおりの形で必須の項目が欠けずに返ること | Claude Docs: Structured outputs | 2026-10-06 |
補償の条件が十分かどうかと、裏書の文言の解釈は、自社の法務と保険の専門家に確かめてください。 本記事は上記の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0588)についてのご相談はこちらから。
