海外の委託先工場の英文の監査報告書を読み取り、指摘事項・重要度・是正期限を是正管理台帳に転記して、前回からの再発と期限切れ間近を拾う
海外の委託先工場の監査会社から届く英文の監査報告書を読み取り、指摘事項・重要度・是正期限を是正管理台帳に転記します。前回の監査と照らして再発の候補を示し、期限の近い指摘を拾います。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Python
- 対象業界
- EC/商社/小売/製造
- 対象部門
- 品質管理/購買
- 対象業務
- データ入力・転記/台帳・マスタ管理
- 主な課題
- 入力作業が多い/判断に時間がかかる/期限・対応漏れが起きる
- AIで行う処理
- 抽出
- 主な効果
- 判断支援/工数削減/機会損失防止
- 導入難易度
- ★★★★☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 共有フォルダに届いた監査報告書のPDFを、担当者が開く
- 指摘事項の一覧の表を探し、条項ごとの所見の本文と見比べながら指摘を読む
- 指摘ごとに、内容、重要度、是正期限を是正管理台帳に写す
- 同じ工場の前回の行を探し、同じ指摘が無いかを見比べる
- 是正期限を台帳に入れ、期限の近いものを月末にまとめて工場に催促する
- 重い指摘と再発を、課長と取引先の窓口に報告する
- 自動共有フォルダに監査報告書のPDFが保存されると、受付フォルダ(Amazon S3)に複製される
- 自動保存をきっかけに処理が動き、形式・ページ数・パスワードの有無を確かめる
- 自動OCRが、レイアウト(見出し・本文・表の位置と読み順)、表とセル、質問への答えを、信頼度付きで返す
- 自動生成AIが、指摘事項の一覧と所見から、指摘ごとの内容・重要度の表記・是正期限・根拠の頁を原文のまま取り出し、自社の分類に当てる
- 自動プログラムが、重要度を対応表で自社の段階に当て、是正期限を日付に直し、前回の指摘と照らして再発の候補を付ける
- 人担当者が、取り出された指摘の一覧を報告書と見比べて確定させ、再発の候補を判断する
- 自動確定した指摘を是正管理台帳に書き、毎週、期限の近い指摘と過ぎた指摘を一覧にする
- 人担当者が、工場への催促と、課長・取引先への報告を行う
各工程の詳しい説明を読む
- 共有フォルダに届いた監査報告書のPDFを、担当者が開く
- 指摘事項の一覧の表を探し、条項ごとの所見の本文と見比べながら指摘を読む
- 指摘ごとに、内容、重要度、是正期限を是正管理台帳に写す
- 同じ工場の前回の行を探し、同じ指摘が無いかを見比べる
- 是正期限を台帳に入れ、期限の近いものを月末にまとめて工場に催促する
- 重い指摘と再発を、課長と取引先の窓口に報告する
(a)指摘を探して写すのに時間がかかる。 1通に指摘が10件前後あり、一覧の表と本文の所見の両方を読まないと、指摘の中身が分かりません。 1通を写し終えるのに1時間を超えます。
(b)再発に気づかない。 前回の報告書は別の監査員が書いていて、同じ問題でも言い回しが違います。 担当者が前回の行を覚えていなければ、再発は新しい指摘として台帳に入ります。
(c)期限を追いかけられない。 是正期限が「30日以内」のように日数で書かれ、日付に直して台帳に入れる作業が後回しになります。月末にまとめて見るので、期限を過ぎてから催促することになります。
(d)取引先からの問い合わせに答えられない。 製品を納める取引先から「この工場の前回の指摘は是正されたか」と聞かれても、台帳の行と報告書の頁を探し直すところから始まります。 答えるまでに数日かかることがあります。
- 【自動】 共有フォルダに監査報告書のPDFが保存されると、受付フォルダ(Amazon S3)に複製される
- 【自動】 保存をきっかけに処理が動き、形式・ページ数・パスワードの有無を確かめる
- 【自動】 OCRが、レイアウト(見出し・本文・表の位置と読み順)、表とセル、質問への答えを、信頼度付きで返す
- 【自動】 生成AIが、指摘事項の一覧と所見から、指摘ごとの内容・重要度の表記・是正期限・根拠の頁を原文のまま取り出し、自社の分類に当てる
- 【自動】 プログラムが、重要度を対応表で自社の段階に当て、是正期限を日付に直し、前回の指摘と照らして再発の候補を付ける
- 【人】 担当者が、取り出された指摘の一覧を報告書と見比べて確定させ、再発の候補を判断する
- 【自動】 確定した指摘を是正管理台帳に書き、毎週、期限の近い指摘と過ぎた指摘を一覧にする
- 【人】 担当者が、工場への催促と、課長・取引先への報告を行う
6番目で全件を人が確かめるのは、監査の指摘が取引の判断に直結するからです。 取り出しの漏れが1件あれば、その指摘は是正の追跡から外れます。human_check を「必須」としているのはこのためです。
5番目をAIにさせないのも意図してのことです。 重要度の読み替え、日数から日付への換算、再発の候補の抽出は、対応表と規則で決まる処理として Python に置きます。
02今回想定するシステム構成
英文の工場監査報告書(PDF。30〜80ページ) ▼【トリガー】受付フォルダ(Amazon S3)への保存 AWS Lambda ── 形式・ページ数・パスワードの確認 ▼ AWS Textract(StartDocumentAnalysis:LAYOUT/TABLES/QUERIES) │ 見出し・本文・表の位置と読み順、表とセル、質問への答え、信頼度 ▼ Python ── 指摘事項の章と表のページを切り出す(写真・従業員の名簿は除く) ▼ Claude API ── 指摘ごとに原文のまま取り出し、自社の分類に当てる │ ① 条項と指摘の内容 ② 重要度の表記 ③ 是正期限の表記 │ ④ 根拠の頁 ⑤ 自社の分類コード ▼ Python ── 重要度の対応表、期限の日付への換算、前回の指摘との照合 ▼ 【担当者が指摘の一覧を確定、再発の候補を判断】 ▼ 是正管理台帳(due_soon / overdue / possible_recurrence / needs_human)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | AWS Textract(StartDocumentAnalysis/GetDocumentAnalysis) | Azure AI Document Intelligence、Google Document AI |
| 生成AI | Claude API(指摘事項の取り出しと分類) | OpenAI API、Gemini API |
| 差異計算 | Python(重要度の読み替え、期限の換算、前回の指摘との照合) | サプライヤー管理システムの是正追跡の機能 |
| 連携 | AWS Lambda(保存と完了の通知を起点に処理を動かす) | Amazon EventBridge |
| 保管 | Amazon S3(報告書、読み取り結果、確定した指摘) | 社内のファイルサーバー |
是正管理台帳と工場の一覧は、新しく足すものではありません。 最初の準備は2つの表です。スキームと監査会社ごとの重要度の表記を自社の段階に読み替える対応表と、指摘を分ける自社の分類の一覧(労働時間、賃金、防火・避難、化学品の管理、品質記録など)です。
OCRに AWS Textract を選ぶのは、報告書が英文だからです。 公式の上限の表で、対応言語は英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語とされています。社会監査の SMETA では、報告書と是正計画の報告書(CAPR)を英語以外で作るときは二か国語とし、英語を含めなければならないとされています。 現地語との併記の報告書でも、英語の部分を読めば足ります。
この題材で効くのは、レイアウトの分析(LAYOUT)です。 見出し、節の見出し、本文、表、図の位置が、左から右、上から下の読み順で返ります。 節の見出しで「指摘事項」の章を見つけ、その範囲だけを生成AIに渡せます。80ページを丸ごと渡さずに済み、従業員の名簿や写真のページを外せます。
重要度を判定しない理由も、スキームの性格にあります。 Sedex は SMETA を合否を出す認証ではなく、継続的な改善のための方法としています。報告書に合否が書かれていないのに、台帳に合否らしい評価を入れると、報告書の意味を変えてしまいます。
03どうやって実装するのか
処理の起点を決める
起点は、受付フォルダ(Amazon S3)に報告書のPDFが保存されたことです。 監査会社からメールで届くものは共有受信箱のルールで、スキームのプラットフォームから担当者がダウンロードしたものは共有フォルダの同期で、それぞれS3へ入れます。保存の通知で AWS Lambda が動きます。
是正の報告や再監査の報告書も、同じ経路で入れます。 ファイル名と表紙の見出しで「初回の監査」「フォローアップ」を見分け、フォローアップなら新しい指摘ではなく、前回の指摘の是正の状況として台帳に書きます。
報告書と是正計画が別のファイルで届くこともあります。 是正計画のファイルは工場が書き込んだ是正の内容と予定日を含むので、同じ工場・同じ監査日の報告書に結びつけ、指摘の番号で是正の予定日を台帳に足します。 結びつく報告書がまだ無ければ、報告書が届くまで「待ち」にします。
毎週月曜の朝8時にも動かします。 台帳の全指摘について、是正期限まで14日を切ったものと過ぎたものを一覧にして担当者に送ります。月末にまとめて見ていた期限の確認を、週に1回に変えるのがこの起点の役目です。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 監査報告書 | PDF。工場名、監査日、スキーム、監査の範囲、指摘事項の一覧の表、条項ごとの所見、是正の計画の欄 | 受付フォルダ(Amazon S3) |
| 読み取り結果 | レイアウトの要素と読み順、表とセル(列の見出し・表の題・結合セル)、質問への答え、それぞれの信頼度 | AWS Textract |
| 前回の指摘 | 同じ工場の過去の指摘(分類、条項、内容、是正の状況) | 是正管理台帳 |
| 重要度の対応表 | スキームと監査会社ごとの表記と、自社の段階の対応 | 品質・サプライヤー管理課が作る表 |
| 自社の分類の一覧 | 分類コード、名前、含める指摘の例 | 品質・サプライヤー管理課が作る表 |
| 工場の一覧 | 工場コード、正式名称、報告書に書かれうる別名、所在地、担当者 | 委託先工場の一覧 |
質を決めるのは、2つの表です。 対応表に無い表記の重要度は読み替えずに人に回し、分類の一覧が粗すぎると再発の候補が多すぎ、細かすぎると漏れます。 30前後の分類から始めます。
工場の一覧に別名を持たせるのは、報告書の工場名が登記の名称で書かれるからです。 自社が呼んでいる通称や、工場のある工業団地の名前とは違うことが多く、名称だけで引くと、前回の指摘が見つからず、再発の候補が1件も出ません。 工場コードは JobTag で受け渡し、表紙から読んだ名称は照合の確認にだけ使います。
データの取得方法を決める
読み取りは StartDocumentAnalysis にS3の場所と FeatureTypes を渡して始めます。完了は NotificationChannel に指定した Amazon SNS のトピックに通知され、状態が SUCCEEDED なら GetDocumentAnalysis で結果を取ります。
| 指定するもの | 値 | 理由 |
|---|---|---|
FeatureTypes | LAYOUT、TABLES、QUERIES | 章の位置と読み順、指摘事項の表、表紙の項目 |
QueriesConfig | 表紙の項目の質問(1ページ目だけを Pages で指定) | 工場名、監査日、スキーム、監査会社 |
ClientRequestToken | ファイルのハッシュ | 同じ報告書で二重に読み取りを始めない |
JobTag | 工場コード | 完了の通知から工場を引く |
Alias | 質問の文 |
|---|---|
SITE_NAME | What is the name of the audited site or factory? |
AUDIT_DATE | What is the audit date? |
AUDIT_TYPE | Is this a full audit or a follow-up audit? |
AUDIT_FIRM | What is the name of the audit company? |
表は TABLES で、行と列の位置と、列の見出し(COLUMN_HEADER)、表の題(TABLE_TITLE)、表の中の節の題(TABLE_SECTION_TITLE)が返ります。 複数の行や列にまたがるセルは MERGED_CELL として返るので、指摘の番号が結合セルになっている表でも、行の対応を崩さずに読めます。
| 使うブロック | 何に使うか |
|---|---|
LAYOUT_SECTION_HEADER | 指摘事項の章と、除外する章の範囲を決める |
LAYOUT_TABLE と TABLE・CELL | 指摘事項の一覧の表を行と列で読む |
LAYOUT_TEXT | 条項ごとの所見の本文を、読み順のまま取る |
LAYOUT_FIGURE | 写真だけのページを見分けて外す |
QUERY_RESULT | 表紙の工場名・監査日・監査の種類 |
ページをまたぐ表は、Python がつなぎます。 次のページの表の列の見出しが前のページと同じなら、同じ表の続きとして行を足します。結果は1回最大1,000ブロックで区切られ、NextToken が返る限り呼び直します。80ページの報告書では呼び直しが何十回にもなります。
AIへ渡す前に整形する
- 形式の確認 … JPEG、PNG、PDF、TIFF であることを確かめます
- パスワードの確認 … PDFはパスワードで保護されていてはいけないとされています。保護されたものは監査会社に解除したものを頼みます
- サイズとページ数の確認 … 非同期の処理で、PDFとTIFFは500MB・3,000ページまでです。写真の多い報告書はサイズに注意します
- 章の切り出し …
LAYOUT_SECTION_HEADERの見出しの語(Non-Compliance、Findings、Corrective Action)で、指摘事項の章のページの範囲を決めます - 渡さないページの除外 …
Worker Interview、Employee List、写真だけのページ(LAYOUT_FIGUREのみ)を外します - 言語の確認 … 6言語に入らない部分は読み取り結果から外し、英語の部分だけを渡します
5番目は、精度ではなく情報の扱いのための処理です。 社会監査の報告書には従業員への聞き取りの内容が載ることがあり、台帳の作成に要らない情報を生成AIに渡さないために外します。
AIに処理させる
させるのは、指摘ごとに原文を取り出し、自社の分類の一覧から1つを選ぶことです。 重要度の読み替えと期限の換算はさせません。
| 見るもの | 取り出し方 | 判断できないときの扱い |
|---|---|---|
| 指摘の番号と条項 | 原文のまま(例:条項の番号、基準の節) | 書かれていなければ空 |
| 指摘の内容 | 一覧の表の記載と、本文の所見の該当箇所を分けて | 本文に対応が無ければ表の記載だけ |
| 重要度の表記 | 原文のまま | 書かれていなければ missing |
| 是正期限の表記 | 日付か日数かを原文のまま | 書かれていなければ missing |
| 根拠の頁 | 表と本文のページ番号 | 決まらなければ空 |
| 自社の分類 | 分類の一覧から1つ | 当てはまらなければ other |
| 前回の是正の状況 | フォローアップの報告書なら、指摘ごとの是正の状況の表記 | 書かれていなければ missing |
指摘の内容を「表の記載」と「本文の所見」に分けるのが、いちばん大事な区別です。 一覧の表は1行に短く書かれ、何が起きていたかは本文にしかないことが多いからです。台帳には表の記載を、確認の画面には本文の所見を出します。
| させないこと | 理由 |
|---|---|
| 重要度の判断や読み替え | 報告書の表記を対応表で Python が当てる |
| 是正期限の日付への換算 | 監査日と日数から Python が計算する |
| 再発かどうかの判断 | 候補は Python が出し、担当者が決める |
| 指摘の要約や言い換え | 原文から離れると、工場への問い合わせで根拠を示せない |
| 取引の継続についての意見 | 購買の責任者が判断する |
4行目も見落とされがちです。 指摘を短く言い換えると読みやすくなりますが、工場に是正を求めるときに「報告書のどこにそう書いてあるか」を示せなくなります。
指示内容を固定する
あなたはメーカーの購買部で、委託先工場の英文の監査報告書から
指摘事項を記録する担当です。OCRの読み取り結果だけを使ってください。
推測で埋めないでください。
【取り出す項目(指摘ごと)】
finding_no、clause_raw、table_text、narrative_text、
severity_raw、due_raw、pages(配列)、category_code、
prior_status_raw(フォローアップの報告書のときだけ)
【category_code の選び方】
{category_list} の中から1つを選んでください。
当てはまるものが無ければ other にしてください。
【厳守事項】
- table_text と narrative_text には、報告書の文をそのまま写してください。
要約したり言い換えたりしないでください。
- severity_raw には報告書に書かれた重要度の表記をそのまま入れてください。
書かれていなければ空にしてください。重要度を自分で判断しないでください。
- due_raw には是正期限の表記をそのまま入れてください
(例:「30 days」「2026-11-15」)。日付に換算しないでください。
- 一覧の表に無く、本文の所見にだけ書かれた指摘も取り出し、
table_text を空にしてください。
- 良好な取り組み(good practice)として書かれたものは、
指摘として取り出さないでください。
- 再発かどうか、是正が十分か、取引を続けるべきかを書かないでください。
- 個人の名前が出てきても写さず、「[氏名]」に置き換えてください。
【報告書の種類】{audit_type}
【読み取り結果(指摘事項の章)】{textract_layout_tables}
「良好な取り組みを指摘として取り出さない」を明記しないと、混ざります。 報告書には指摘と並んで良い取り組みが同じ形式で書かれることがあり、台帳に是正の要らない行が入ります。
出力形式を固定する
Claude API の構造化出力(output_config.format に json_schema を指定)で、次の形のJSONを受け取ります。
{
"file": "",
"site_name_raw": "",
"audit_date_raw": "",
"audit_type": "full | follow_up",
"findings": [
{
"finding_no": "NC-03",
"clause_raw": "",
"table_text": "",
"narrative_text": "",
"severity_raw": "Major",
"due_raw": "30 days",
"pages": [41, 12],
"category_code": "FIRE_EXIT",
"status": "ok"
}
]
}
1つ目の理由は、読み替えと照合をプログラムの側に置けることです。 Python が対応表で重要度を当て、監査日と due_raw から期限を計算し、前回の指摘と照らします。
| 印 | 付ける条件 |
|---|---|
due_soon | 是正期限まで14日を切り、是正の状況が完了でない |
overdue | 是正期限を過ぎ、是正の状況が完了でない |
possible_recurrence | 同じ工場の前回の監査に、同じ分類コードか同じ条項の指摘がある |
needs_human | 重要度の表記が対応表に無い、期限が日付にも日数にも読めない、監査日が決まらない、または分類が other |
2つ目は、再発の候補を広めに出せることです。 分類コードか条項のどちらかが一致すれば候補にし、確認の画面で前回と今回の本文の所見を並べて見せます。 再発かどうかの判断は担当者が行い、結果を台帳に残します。
3つ目は、根拠の頁を残せることです。 pages に表と本文のページ番号があれば、工場に是正を求めるときも、取引先に説明するときも、報告書のどこに書かれているかをすぐ示せます。 確認の画面では、この頁の画像を指摘の横に出します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 受付フォルダ(Amazon S3) | 保存の通知 | 報告書の保存を検知して AWS Lambda を動かす |
| AWS Textract | API呼び出し(非同期) | 読み取りを始め、完了の通知で結果を取る |
| Claude API | API呼び出し | 指摘の取り出しと分類 |
| 是正管理台帳 | 読み取りと書き込み | 前回の指摘を読み、確定した指摘を書く |
| 確認の画面 | 一覧と原文の表示 | 指摘の一覧、本文の所見、再発の候補を並べる |
| 通知 | メール | 毎週の期限の一覧を担当者に送る |
工場への催促と取引先への報告は、この構成からは送りません。 送るのは担当者で、催促の文面に添える根拠として、指摘の番号と報告書の頁を一覧から引けるようにします。
人が確認する
担当者は、すべての報告書の指摘の一覧を確かめてから台帳に確定させます。
- 指摘の数を報告書と合わせる … 一覧の表の行数と、取り出された指摘の数が合うかを見ます。合わなければ、ページをまたぐ表のつなぎを疑います
needs_humanを片付ける … 対応表に無い重要度の表記は、対応表に足してから当てますpossible_recurrenceを判断する … 前回と今回の所見を読み、再発か別の問題かを決めて台帳に残します- 重い指摘と再発を報告する … 課長と取引先の窓口に、指摘の番号と頁を添えて伝えます
1番目を省かないでください。 取り出された指摘を1件ずつ読むより先に、数が合うかを見るほうが速く、漏れを確実に拾えます。 数が合えば、中身の確認は本文の所見と見比べて流し読みで済みます。
3番目の判断は、迷ったら「再発」に寄せます。 別の問題と判断して外した指摘が実は同じ問題だった場合、次の監査でまた新しい指摘として扱われ、工場に同じ説明を繰り返すことになります。
例外に対処する
| 起きること | 対応 |
|---|---|
| パスワードで保護されたPDF | 読めない。監査会社に解除したものを頼む |
| 指摘事項の章の見出しが見つからない | 全ページの表を対象にし、needs_human で人が範囲を決める |
| ページをまたぐ表の列の見出しが変わる | 別の表として扱い、指摘の数の照合で人が確かめる |
| 重要度の表記が対応表に無い | 読み替えずに needs_human。対応表に足す |
| 是正期限が書かれていない | missing。スキームや社内の取り決めの日数を人が入れる |
| 監査日が決まらず期限を計算できない | needs_human。表紙の画像で人が確定する |
| フォローアップの報告書で前回の指摘が台帳に無い | 前回の報告書が未登録かを確かめる |
ジョブが FAILED または PARTIAL_SUCCESS | StatusMessage と Warnings のページ番号を記録し、そのページを人へ |
上から2行目と3行目が、指摘の取りこぼしのほとんどを生みます。 表の読み取りが崩れると、指摘が丸ごと台帳から消えるため、指摘の数を報告書と合わせる確認を省かないでください。
記録を残す
- 元の報告書と、受け取った日時、経路、工場コード
- AWS Textract が返したJSONの全文と、切り出した章のページの範囲
- Claude API が返したJSONと、担当者が確定させた指摘の一覧
- 重要度の読み替えと期限の計算の結果と、そのとき参照した対応表の版
- 再発の候補と、担当者の判断(再発か別の問題か)
- 催促と報告の日時と相手
5つ目の判断の記録は、分類の一覧を直す材料になります。 候補にしたが別の問題だった組み合わせが多い分類は、分け方が粗すぎることが分かります。
04実装レベルの3段階
本記事の想定は本格構成です。 読み取りと転記に加えて、期限と再発の候補が自動で出ます。1通120分が36分になるのはこの段階です。 半自動化で止めると、③の見比べと④の期限の確認が残ります。 前回の指摘の見比べと期限の換算が手作業のまま残り、再発と期限切れという、この業務でいちばん困っていたところが変わりません。
05工数削減シミュレーション
導入後 20件 × 36分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- アジアなどの委託先工場を数百か所持ち、品質監査や社会監査(労働・安全衛生・環境・倫理)を監査会社に委託しているメーカー・小売・商社。工場ごとに監査の月をずらしているため、英文の監査報告書が毎月十数〜数十通届き、購買や品質管理の担当者が指摘事項を是正管理台帳に手で写している場合。前回と同じ指摘の再発や、是正期限の過ぎた指摘に気づくのが遅れている場合。
- 委託先工場が数か所で、監査報告書が年に数通しか届かない場合。監査のプラットフォームで指摘事項と是正の状況をデータとして受け取れており、PDFを読む工程が無い場合。監査報告書が英語以外(中国語・ベトナム語・日本語など)だけで届く場合(この構成のOCRは英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語しか読めません)。なお、取引の継続や停止、是正の十分さの判断は購買と品質管理の責任者が行うもので、この構成では代替できません。
07最小構成で試す方法
- 先月までの報告書から10通を選ぶ(監査会社の違うもの、指摘事項の表がページをまたぐもの、フォローアップの報告書、前回の監査と同じ工場のものを必ず入れる)
- 手元の生成AIの画面に、指摘事項の章のページだけを1通ずつ貼り付け、「指摘ごとに、番号、条項、一覧の表の記載、本文の所見、重要度の表記、是正期限の表記、頁を、書かれたとおりに表にしてください。要約や言い換えをしないでください。重要度を判断しないでください」と指示する
- 出てきた表を、当時の台帳の行と見比べ、指摘の数が合うかを数える
10通は必ずやってください。 仕組みを組む前に、指摘の数が合うか、原文のまま写せるか、良い取り組みが混ざらないかを確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 指摘の数が合い、原文のまま写した | OCRのAPIと台帳の照合に進む |
| 指摘を要約し、重要度を自分で付けた | 原文を写させ、判断を禁じる指示を足す。直るまで先に進まない |
| ページをまたぐ表で指摘が抜けた | 表の読み取りとつなぎの処理で補う。構成は有効 |
3行目は、画面に貼り付ける試し方ではよく起きます。 ページの区切りで表が切れたまま渡るためで、仕組みの側では表の読み取りと列の見出しでつなげます。 ここで抜けた指摘の数を数えておくと、3週目に作るつなぎの処理の出来を測る目安になります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| ページをまたぐ表で指摘が抜ける | 列の見出しで表をつなぎ、指摘の数を報告書と合わせる |
| AIが重要度を自分で付ける | 表記をそのまま写させ、読み替えは対応表で行う |
| 指摘が要約されて根拠を示せない | 原文を写させ、言い換えを禁じる |
| 良い取り組みが指摘として入る | 指示で除外し、確認の画面で見分ける |
| 「30 days」を日付に直さない | 監査日と日数から Python が計算する |
| 再発の候補が多すぎる | 分類の一覧を細かくし、担当者の判断の記録で見直す |
| 従業員の名簿まで生成AIに渡る | レイアウトの見出しで章を切り出し、名簿のページを外す |
| フォローアップの報告書を新しい指摘として登録する | 表紙で監査の種類を見分け、是正の状況として書く |
上の2行が、この構成の失敗のほとんどです。 指摘が抜ければ追跡から外れ、重要度が変われば報告の優先順位が狂います。どちらも報告書の原文から離れることで起きます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 委託先工場の名称と所在地、監査の指摘、是正の計画、そして社会監査では従業員への聞き取りの内容や労働時間・賃金の記録です。工場との取引の情報と、従業員に関わる情報を含むため、security_level を3としています。
- 生成AIに渡す範囲を、指摘事項の章に限る … 従業員の名簿、聞き取りの記録、写真のページは渡しません。指示でも、個人の名前を写さないよう求めます
- 重要度と取引の判断を出さない … 台帳に入るのは報告書の表記と、対応表で当てた自社の段階だけです。取引の継続や停止は、責任者が報告書を読んで判断します
- 報告書の共有範囲を守る … 監査の報告書は工場と自社のあいだで共有されたものです。台帳を取引先に見せるときは、その取引先の製品を作る工場の行だけにします
- 工場への連絡を自動で送らない … 催促と問い合わせは担当者が行います
誤りが起きた場合のリスクは、指摘の取りこぼしで是正の追跡が漏れることと、重要度の誤りで報告の優先順位が狂うことです。 指摘の数の照合と、原文のままの記録を崩さないでください。
10まず何から始めるか
1週目:対応表と分類の一覧を作る
いま届いている報告書のスキームと監査会社ごとに、重要度の表記と自社の段階の対応を表にします。あわせて、過去1年の台帳の指摘から30前後の分類の一覧を作ります。
2週目:10通で試す
指摘事項の章を手元の生成AIの画面に貼り、指摘を表にさせます。指摘の数が合うか、原文のまま写せるか、良い取り組みが混ざらないかを最優先で見ます。
3週目:章の切り出しと表のつなぎを作る
レイアウトの結果から指摘事項の章を切り出し、ページをまたぐ表をつなぐ処理を作ります。報告書の多い2社の監査会社の書式から始めます。
4週目:受付フォルダから確認の画面までをつなぐ
S3、Lambda、Textract、Claude API をつなぎ、指摘の一覧を確認の画面に出すところまで作ります。この時点では台帳へは書かず、担当者が確定させた一覧を手で台帳に入れます。
2か月目: 重要度の読み替えと期限の換算を足し、確定した指摘を台帳に自動で書きます。3か月目以降: 前回の指摘との照合と毎週の期限の一覧を足し、1通120分が何分になったかを実測します。再発の候補と期限切れ間近の指摘が、毎週の一覧で漏れなく拾われるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| SMETA が労働基準・安全衛生・環境・ビジネス倫理を評価する社会監査で、2ピラーと4ピラーの範囲があること。監査の後に是正計画が提供されること。英語以外で報告書と是正計画の報告書(CAPR)を作るときは二か国語とし英語を含めなければならないこと。SMETA が合否を出す認証ではなく継続的な改善の方法とされていること。フォローアップの監査があること。最新版が SMETA 7(2024年)であること | Sedex: SMETA Audit | 2026-10-08 |
| 対応する形式がJPEG、PNG、PDF、TIFFであること。非同期はPDFとTIFFで500MB・3,000ページであること。PDFはパスワードで保護できないこと。対応言語が英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語であること。質問の検出は英語の文書だけで、非同期で1ページ30個までであること | AWS: Set Quotas in Amazon Textract | 2026-10-08 |
StartDocumentAnalysis の FeatureTypes(TABLES/FORMS/QUERIES/SIGNATURES/LAYOUT)、QueriesConfig(Pages の指定を含む)、ClientRequestToken、JobTag、NotificationChannel で Amazon SNS に完了を通知すること | AWS: StartDocumentAnalysis | 2026-10-08 |
GetDocumentAnalysis が表とセル、質問と答えのブロックを返すこと。JobStatus(SUCCEEDED/FAILED/PARTIAL_SUCCESS ほか)、MaxResults(最大1,000)と NextToken、StatusMessage、Warnings | AWS: GetDocumentAnalysis | 2026-10-08 |
レイアウトの要素(LAYOUT_TITLE、LAYOUT_SECTION_HEADER、LAYOUT_TEXT、LAYOUT_TABLE、LAYOUT_FIGURE ほか)が、左から右・上から下の読み順で返ること | AWS: Layout Response Objects | 2026-10-08 |
ブロックの種類に MERGED_CELL、TABLE_TITLE、TABLE_FOOTER があること。表のセルの EntityTypes に COLUMN_HEADER、TABLE_TITLE、TABLE_SECTION_TITLE、TABLE_SUMMARY などがあること。信頼度が0〜100であること | AWS: Block | 2026-10-08 |
構造化出力を output_config.format に json_schema を指定して受け取れること | Claude Docs: Structured outputs | 2026-10-08 |
重要度の段階と是正期限の決め方は、スキームと監査会社ごとに異なります。 本記事は Sedex の公開ページで確認できた範囲だけを扱っており、詳しい指摘の扱いは各スキームの会員向けの資料と監査会社に確かめてください。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0948)についてのご相談はこちらから。
