家具・紙製品のメーカーが海外の仕入先から届く英文の森林認証(FSC・PEFC)のCoC認証書を読み取り、認証番号・対象製品・有効期限を仕入先台帳と照らして、認証の範囲外と期限切れを拾う
海外の仕入先から届く英文のFSC・PEFCのCoC認証書を読み取り、ライセンスコード・認証番号・対象製品・出せるクレーム・有効期限を仕入先台帳と照らします。公開データベースで今の状態も確かめ、範囲外の材と期限切れの仕入先を拾います。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Python
- 対象業界
- 商社/小売/製造
- 対象部門
- 品質管理/購買
- 対象業務
- 内容確認・チェック/台帳・マスタ管理
- 主な課題
- 入力作業が多い/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/工数削減/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 半自動化
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 仕入先から認証書のPDFがメールで届き、担当者が仕入先のフォルダに保存する
- 仕入先台帳を開き、その仕入先の制度・ライセンスコード・認証番号・対象の材を確かめる
- 認証書の表面を読み、会社名・ライセンスコード・認証番号・有効期限を台帳と見比べる
- 2ページ目以降の対象製品の一覧から、自社が買っている材の種類とクレームを探す
- FSCの証明書検索やPEFCの検索の画面で、番号を打ち込んで今の状態を確かめる
- 食い違いがあれば、仕入先に新しい認証書を頼むメールを書く
- 台帳に有効期限と確認日を書く
- 人仕入先から届いた認証書のPDFを受付フォルダに保存する(ファイル名に仕入先コードを入れる)
- 自動保存をきっかけに処理が動き、形式・ページ数・パスワードの有無を確かめる
- 自動AWS Textract が全ページを読み、キーと値、表、質問への答えと信頼度を返す
- 自動生成AIが、読み取り結果から制度・会社名・ライセンスコード・認証番号・対象製品とクレーム・有効期限を項目に分ける
- 自動FSCの認証書は、FSCのAPIでライセンスの状態・証明書の状態・有効期限を取る
- 自動Python が仕入先台帳と照らし、材の種類・クレーム・期限・状態に印を付けて、`ok` / `needs_request` / `needs_human` を規則で決める
- 人PEFCの認証書は、担当者が公開データベースで状態を確かめ、結果を入れる
- 人担当者が `needs_request` と `needs_human` の認証書だけを開き、印の根拠を確かめる
- 人仕入先に新しい認証書を頼むか、その材を認証材として受け入れないかを決める
- 自動毎週、台帳の全仕入先について期限と状態を見直し、変わったものを一覧にする
各工程の詳しい説明を読む
- 仕入先から認証書のPDFがメールで届き、担当者が仕入先のフォルダに保存する
- 仕入先台帳を開き、その仕入先の制度・ライセンスコード・認証番号・対象の材を確かめる
- 認証書の表面を読み、会社名・ライセンスコード・認証番号・有効期限を台帳と見比べる
- 2ページ目以降の対象製品の一覧から、自社が買っている材の種類とクレームを探す
- FSCの証明書検索やPEFCの検索の画面で、番号を打ち込んで今の状態を確かめる
- 食い違いがあれば、仕入先に新しい認証書を頼むメールを書く
- 台帳に有効期限と確認日を書く
(a)PDFだけを見て台帳を書く。 5番目の検索は手間がかかるため、忙しい週には飛ばされます。PDFの期限が先でも、データベースでは一時停止になっていることに気づきません。
(b)対象製品の一覧を読み落とす。 表面の期限を確かめた時点で終わりにしがちで、買っている材の種類が一覧に無いことに、認証の監査で初めて気づきます。
(c)更新を追えていない。 有効期限の近い仕入先を一覧にする仕組みがなく、期限が切れた後に届いた材を、認証材として受け入れてしまうことがあります。
(d)確かめた記録が残らない。 監査で「いつ、何を見て確かめたか」を示せません。
- 【人】 仕入先から届いた認証書のPDFを受付フォルダに保存する(ファイル名に仕入先コードを入れる)
- 【自動】 保存をきっかけに処理が動き、形式・ページ数・パスワードの有無を確かめる
- 【自動】 AWS Textract が全ページを読み、キーと値、表、質問への答えと信頼度を返す
- 【自動】 生成AIが、読み取り結果から制度・会社名・ライセンスコード・認証番号・対象製品とクレーム・有効期限を項目に分ける
- 【自動】 FSCの認証書は、FSCのAPIでライセンスの状態・証明書の状態・有効期限を取る
- 【自動】 Python が仕入先台帳と照らし、材の種類・クレーム・期限・状態に印を付けて、
ok/needs_request/needs_humanを規則で決める - 【人】 PEFCの認証書は、担当者が公開データベースで状態を確かめ、結果を入れる
- 【人】 担当者が
needs_requestとneeds_humanの認証書だけを開き、印の根拠を確かめる - 【人】 仕入先に新しい認証書を頼むか、その材を認証材として受け入れないかを決める
- 【自動】 毎週、台帳の全仕入先について期限と状態を見直し、変わったものを一覧にする
5番目と7番目で、FSCとPEFCの扱いを分けています。 FSCには状態を返すAPIがあり、PEFCについてはこの記事では公開の検索の画面しか確かめられていないためです。確かめられない部分を自動にせず、人の手順として残します。
02今回想定するシステム構成
CoC認証書(PDF。仕入先からメールで届く) ▼【トリガー】受付フォルダ(Amazon S3)への保存 AWS Lambda ── 形式・ページ数・パスワードの確認、仕入先コードの取り出し ▼ AWS Textract(StartDocumentAnalysis:FORMS/TABLES/QUERIES) │ 全文、キーと値、対象製品の表、質問への答え、信頼度 ▼ Claude API ── 認証書の記載を項目に分ける │ ① 制度(FSC/PEFC) ② 会社名 ③ ライセンスコード・認証番号 │ ④ 対象製品の種類とクレーム ⑤ 発行日・有効期限 ⑥ 認証機関 ▼ FSC Developer Portal の API ── ライセンスの状態・証明書の状態・有効期限 (PEFC は担当者が Find Certified で確かめて入力) ▼ Python ── 仕入先台帳との照合(材の種類、クレーム、期限、状態) ▼ 判定(ok / needs_request / needs_human) ▼ 【担当者が印の付いた認証書だけを確認】 ├──▶ 仕入先への依頼(下書きを担当者が直して送る) └──▶ 仕入先台帳の確認の列と、週次の状態の見直し
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| OCR | AWS Textract(StartDocumentAnalysis/GetDocumentAnalysis) | Azure AI Document Intelligence、Google Document AI |
| 生成AI | Claude API(認証書の記載を項目に分ける) | OpenAI API、Gemini API |
| 差異計算 | Python(材の種類・クレーム・期限・状態の照合) | 仕入先台帳の関数 |
| 連携 | AWS Lambda(保存と週次の起動、FSCのAPIの呼び出し) | Amazon EventBridge |
| 状態の確認 | FSC Developer Portal の API(FSC)、PEFC Find Certified(人が確認) | FSCの証明書検索の画面 |
| 保管 | Amazon S3(認証書、読み取り結果、状態の記録) | 社内のファイルサーバー |
仕入先台帳は、新しく足すものではありません。 最初の準備は、台帳の「対象の材」の列を、自社の材の区分で書き直すことと、その区分と認証書に書かれる製品の種類の対応表を作ることです。自由文の「合板など」では、照合の規則が書けません。
FSCのAPIは、申し込んで承認を受けてから使います。 FSC Developer Portal の説明では、フォームで申し込み、FSC Connect のアカウントでログインし、プランを選ぶ流れで、どのプランも管理者の承認が要ります。 Basic のプランは毎分5回・毎週100回まで、Premium は毎分100回・毎週10,000回までとされています。約250社を毎週見直すには Basic では足りないので、プランの選び方は第11章で扱います。
OCRに AWS Textract を選ぶのは、認証書が英文だからです。 対応言語は英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語で、中国語や日本語の認証書は読めません。 質問の検出も英語の文書だけが対象なので、英語の記載が無い認証書は担当者の一覧に入れます。
03どうやって実装するのか
処理の起点を決める
起点は2つです。 1つは受付フォルダ(Amazon S3)に認証書のPDFが保存されたことで、保存の通知で AWS Lambda が動き、読み取りから照合までを済ませます。
もう1つは毎週月曜の定時実行です。こちらは認証書を読まず、台帳に載ったFSCの仕入先について、APIで状態と有効期限を取り直します。 PDFが届かなくても状態は変わるので、届いたときだけ確かめる設計では足りません。期限まで90日を切った仕入先と、状態が変わった仕入先を一覧にします。
保存するのは担当者で、ファイル名の先頭に仕入先コードを入れる決まりにします。 商社経由で届く認証書は差出人が仕入先と違うためです。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| CoC認証書 | PDF。表面(会社・番号・期限)と対象製品の一覧 | 受付フォルダ |
| 読み取り結果 | 全文、キーと値、表、質問への答え、信頼度 | AWS Textract |
| FSCの状態 | ライセンスの状態、証明書の状態、有効期限 | FSC Developer Portal の API |
| PEFCの状態 | 担当者が検索の画面で確かめた状態と、確かめた日時 | 担当者の入力 |
| 仕入先の情報 | 仕入先コード、制度、ライセンスコード、認証番号、買っている材の区分、有効期限 | 仕入先台帳 |
| 材の対応表 | 自社の材の区分と、認証書に書かれる製品の種類・クレームの対応 | 自社で用意する一覧 |
質を決めるのは、材の対応表です。 自社の区分が「突板(オーク)」でも、認証書には製品の種類の名前で書かれます。対応が無ければ、範囲内の材を範囲外と判定します。 対応表は、認証の窓口の担当が監査の資料を見ながら作ります。
データの取得方法を決める
読み取りは StartDocumentAnalysis に S3 の場所と FeatureTypes を渡して始めます。完了は NotificationChannel に指定した Amazon SNS のトピックに通知され、状態が SUCCEEDED なら GetDocumentAnalysis で結果を取ります。
| 指定するもの | 値 | 理由 |
|---|---|---|
FeatureTypes | FORMS、TABLES、QUERIES | 表面のキーと値、対象製品の表、文章の中の期限 |
QueriesConfig | 質問の文と Alias、Pages に * | 対象製品のページにも質問を当てる |
ClientRequestToken | ファイルのハッシュ | 同じ認証書で二重に読み取りを始めない |
JobTag | 仕入先コード | 完了の通知から仕入先を引く |
OutputConfig | 自社の S3 の場所 | 読み取り結果を自社の側に残す |
Alias | 質問の文 |
|---|---|
HOLDER | Which organization holds this certificate? |
LICENSE_CODE | What is the license code? |
CERT_CODE | What is the certificate code or registration number? |
VALID_UNTIL | What is the expiry date of the certificate? |
CERT_BODY | Which certification body issued this certificate? |
質問は対象ページを指定しないと既定で1ページ目だけに当たるため、Pages に * を入れます。質問は非同期の処理で1ページあたり30個までです。対象製品の一覧は表として取り、表になっていない箇条書きの一覧もあるので全文も一緒に渡します。
結果は1回最大1,000ブロックで区切られ、NextToken が返る限り呼び直します。JobId は7日間しか有効でないため、取った結果はその場で S3 に保存します。 状態が PARTIAL_SUCCESS のときは Warnings のページ番号を記録し、そのページを読めなかったものとして扱います。
FSCの状態は、認証書から読んだライセンスコードでAPIを呼んで取ります。 応答の例には、LicenseCode、LicenseStatus(例:Valid)、CertificateCode、CertificateStatus(例:Issued)、FirstIssueDate、LastIssueDate、ExpiryDate が並んでいます。APIの応答の項目と呼び方は、承認後に開発者ポータルの仕様で確かめてから照合の規則を書きます。
PEFCは、Find Certified で担当者が確かめます。 PEFCの説明では、Find Certified はPEFCの認証を受けた組織を探し、確かめるための公開のデータベースとされています。画面の結果を写す欄を台帳に設け、確かめた日時と担当者を残します。
AIへ渡す前に整形する
- 形式の確認 … JPEG、PNG、PDF、TIFF であることを確かめます。XFA で作られたPDFは扱えないとされているので、印刷してPDFにし直します
- パスワードの確認 … PDFはパスワードで保護されていてはいけないとされています。保護されたものは、仕入先に解除したものを頼みます
- ページ数の確認 … 非同期の処理で、PDFとTIFFは500MB・3,000ページまでです
- 言語の確認 … 英語の記載が無い認証書は、読み取りに回さず担当者の一覧に入れます
- 文字の大きさの確認 … 検出できる文字の高さの下限は15ピクセルで、150DPIで8ポイント相当です。対象製品の一覧は小さな字のことが多いので、スキャンの写しは解像度を確かめます
- 仕入先コードの確認 … ファイル名の仕入先コードで台帳が引けるかを確かめ、引けなければ処理を止めます
AIに処理させる
させるのは、読み取り結果から6つの項目を取り出し、それぞれに根拠の文字列と状態を付けることだけです。 APIの状態との照合と、台帳との照合は Python が行います。
| 取り出すもの | 取り出し方 | 判断できないときの扱い |
|---|---|---|
| 制度 | FSC か PEFC か。両方の認証が1通に並ぶこともある | 決められなければ ambiguous |
| 会社名 | 書かれたとおりに写す。複数の拠点があれば分ける | 読めなければ unreadable |
| ライセンスコード・認証番号 | 書かれたとおりに写す。2つを取り違えない | 片方しか無ければ、無い方を missing |
| 対象製品の種類とクレーム | 1行ずつ、製品の種類とクレームを書かれたとおりに写す | 「see database」等で一覧が無ければ reference_only |
| 発行日・有効期限 | 書かれたとおりに写し、年月日に直す | 日と月の並びが決められなければ ambiguous |
| 認証機関 | 書かれたとおりに写す | 書かれていなければ missing |
対象製品の欄が、この構成でいちばん大事です。 製品の種類とクレームを1行ずつ写させ、自社の材の区分に当てることはさせません。 当てるのは Python が対応表で行います。
ライセンスコードと認証番号は、取り違えると状態の確認が別の会社に当たります。 根拠の文字列に項目名ごと写させ、どちらの番号かを後から確かめられるようにします。
| させないこと | 理由 |
|---|---|
| 認証材として受け入れてよいかの判断 | 台帳と規則で決め、人が確かめる |
| 似た製品の種類の読み替え | 「plywood」と「veneer」を同じとすると範囲外を見落とす |
| クレームの補い | 書かれていないクレームを「通常は100%」と埋めない |
| 番号の補完 | 桁を足す、記号を直す、それらしい番号に近づけない |
| 状態の推測 | 状態はAPIか人の確認でだけ決める |
指示内容を固定する
あなたは家具・紙製品のメーカーの購買部で、海外の仕入先から届いた
英文の森林認証(FSC・PEFC)のCoC認証書を読み、記載を項目に分ける担当です。
AWS Textract の読み取り結果だけを見て答えてください。推測で埋めないでください。
【取り出す6項目】
1. 制度(FSC/PEFC)
2. 認証を持つ会社の名前と所在地(拠点が複数あればすべて)
3. ライセンスコードと認証番号(別々に)
4. 対象製品の種類と、それぞれのクレーム(1行ずつ)
5. 発行日と有効期限
6. 認証機関
【status の選び方】
- present ......... 値が読み取れている
- missing ......... 該当する記載が無い。項目名だけがあって値が空の場合も missing
- unreadable ...... 文字は検出されているが信頼度が低く、値として確定できない
- ambiguous ....... 値の候補が複数あり、1つに決められない
- reference_only .. 「see database」など別の場所を参照するとだけ書かれている
迷ったときに present を選ばないでください。
【厳守事項】
- ライセンスコードと認証番号は、書かれた項目名と一緒に evidence に写し、
取り違えないでください。桁や記号を補わないでください。
- 対象製品は、製品の種類とクレームを書かれたとおりに1行ずつ写してください。
似た種類をまとめたり、言い換えたりしないでください。
- クレームが書かれていない行は、claim を空にして status を missing としてください。
「通常は」で補わないでください。
- 日付は書かれた文字列を raw に写し、年月日に直した値を date に入れてください。
日と月の並びが決められない場合は ambiguous としてください。
- 認証が有効か、一時停止されているかは書かないでください。
認証書の記載だけを答えてください。
- 読み取りの警告が出ているページにありうる項目は、unreadable としてください。
- CoC認証書でない書類(請求書、出荷案内、森林管理の認証書など)と判断した場合は、
項目を取り出さず document_type に種類を書いてください。
【読み取り結果】{textract_result}
【読み取りの警告があったページ】{warning_pages}
「有効かどうかは書かない」を入れるのは、AIが期限の日付から有効と答えたがるからです。 期限の前でも一時停止はありうるので、状態の答えを認証書の側から出させないことが、この構成の前提です。
出力形式を固定する
Claude API の構造化出力(output_config.format に json_schema)で、次の形のJSONを受け取ります。 数値の minimum・maximum や文字列の長さの制約は使えないとされているため、番号の形や日付の範囲は Python の側で確かめます。
{
"supplier_code": "SP-1187",
"document_type": "coc_certificate",
"scheme": "FSC",
"items": [
{ "item": "license_code", "status": "present", "value": "FSC-C000000",
"page": 1, "confidence": 98.4, "evidence": "License code: FSC-C000000" },
{ "item": "expiry", "status": "present", "raw": "14/03/2028", "date": "2028-03-14",
"page": 1, "confidence": 96.0, "evidence": "Valid until: 14/03/2028" }
],
"products": [
{ "product_type": "Veneer", "claim": "FSC Mix", "page": 2, "confidence": 92.7 }
]
}
照合は Python が台帳・対応表・状態と突き合わせて行い、項目ごとに印を付けます。
| 印 | 付く条件 |
|---|---|
status_not_valid | FSCのAPIかPEFCの確認で、状態が有効でない |
expired | 有効期限(データベースの値を優先)が今日より前 |
expiring_soon | 有効期限まで90日を切っている |
product_out_of_scope | 台帳で買っている材の区分が、対応表を通して products のどれにも当たらない |
claim_mismatch | 材のクレームが、自社が受け入れる種類と違う |
code_mismatch | ライセンスコードか認証番号が台帳の値と違う |
date_conflict | 認証書の有効期限とデータベースの有効期限が違う |
判定は、印と状態の組み合わせで規則として決めます。
verdict | 条件 |
|---|---|
ok | 6項目がすべて present で、印が1つも無い |
needs_request | expiring_soon・expired・code_mismatch・date_conflict のどれかがある |
needs_human | status_not_valid・product_out_of_scope・claim_mismatch がある、または present 以外の状態が1つでもある |
status_not_valid を人に回すのは、その仕入先から届いている材の扱いを決める必要があるからです。 新しい認証書を頼んでも直るとは限らず、受け入れ済みの材をどう扱うかは認証の窓口が決めます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 受付フォルダ(Amazon S3) | 保存の通知で AWS Lambda を起動 | 認証書の保存を検知する |
| AWS Textract | API呼び出し(非同期) | 全文・キーと値・表・質問への答え・信頼度を返す |
| Claude API | API呼び出し | 6項目の取り出しと、仕入先への依頼の英文の下書き |
| FSC Developer Portal の API | API呼び出し(保存時と週次) | ライセンスと証明書の状態、有効期限 |
| 仕入先台帳 | 読み取り(照合)と、確認の列への書き込み | 材の区分を引き、状態・期限・確認日を書く |
仕入先台帳への書き込みは、「認証の確認」の列(状態・期限・確認日・確認の手段)だけに限ります。 照合の元になる材の区分や番号の列を、照合する側が書き換えないようにします。購買システムとはつなぎません。
人が確認する
担当者が開くのは needs_request と needs_human の認証書だけです。 ok のものは一覧で仕入先と期限を流し見て、確認の列を確定します。
status_not_validを最初に見る … FSCの証明書検索の画面で状態を目でも確かめ、その仕入先から受け入れ済みの材と発注中の材を洗い出しますproduct_out_of_scopeの根拠を確かめる … 対象製品の一覧の原文を開き、本当に無いのか、対応表が足りないのかを見ます- PEFCの状態を入れる … Find Certified で確かめた結果と日時を入れます
- 仕入先への依頼を送る … 下書きを直して送ります。送信は人が行います
- 印を覆したら記録する … どの印を、なぜ外したかを残し、対応表を直します
目標は、120件をならして1件4分です。 開くのは2割前後、PEFCの確認を含めての想定です。
例外に対処する
| 起きること | 対応 |
|---|---|
| パスワード付きのPDF | 読めないので、仕入先に解除したものを頼む |
| 英語の記載が無い認証書 | 質問が使えないため、担当者の一覧に入れて目で見る |
状態が PARTIAL_SUCCESS | 警告のページを unreadable として扱い、needs_human へ |
| 対象製品が「see database」 | reference_only。データベースの詳細ページで担当者が確かめる |
| FSCのAPIが応答しない、上限に当たる | 状態を「未確認」として残し、翌日に取り直す。有効として扱わない |
| ライセンスコードでAPIが何も返さない | needs_human。番号の読み違いか、データベースに無いかを人が見る |
| 仕入先コードで台帳が引けない | 処理を止めて担当者に戻す。推測で近い仕入先に当てない |
| CoC認証書でなく森林管理の認証書が届く | document_type を見て、照合せずに担当者に戻す |
5行目の「有効として扱わない」が大事です。 状態を取れなかったことを、状態が有効だったことと混ぜると、一時停止に気づく唯一の経路がそこで途切れます。
記録を残す
- 元の認証書ファイル(版を含む)と、受け取った日時・送り主
- AWS Textract が返したJSONの全文と、
Warningsのページ - 生成AIが返した6項目と対象製品のJSON、Python が付けた印、
verdict - FSCのAPIの応答の全文と取得日時、PEFCの確認の結果と確認者
- 人が印を覆した記録 … どの印を、なぜ外したか
- 仕入先への依頼の日時と、届いた新しい認証書との対応
4つ目が、認証の監査でいちばん求められる記録です。 「いつ、何で、仕入先の認証を確かめたか」を、PDFではなくデータベースの応答で示せます。
04実装レベルの3段階
本記事の想定は半自動化です。 読み取りとFSCの状態の確認と照合が自動になり、担当者は印の付いた認証書とPEFCの確認を受け持ちます。1件12分が4分になるのはこの段階です。 本格構成で足すのは、監査の側です。 認証書の版、APIの応答、人の確認の記録を仕入先ごとにまとめます。
05工数削減シミュレーション
導入後 120件 × 4分 ÷ 60 = 8 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- FSCやPEFCのCoC認証を持ち、海外の仕入先から木材・合板・突板・紙・板紙を仕入れて、認証材を使った家具や紙製品を作るメーカー。仕入先から英文のCoC認証書がPDFで届き、認証の状態・対象製品・有効期限を担当者が目で見て台帳に写している場合。仕入先が百社を超え、更新や範囲の変更で認証書が毎月何十通も届く場合。
- 認証材を扱う仕入先が数社に限られ、認証書が年に数通しか届かない場合。自社がCoC認証を持たず、認証材であることを製品に表示しない場合。認証書が日本語・中国語で届くことが多い場合(この構成のOCRは英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語しか読めず、質問(Queries)は英語の文書だけが対象です)。なお、仕入れた材を認証材として扱えるかの最終判断、認証機関の監査への対応は、この構成では代替できません。
07最小構成で試す方法
- 仕入先のフォルダから認証書を20通選ぶ(FSCとPEFCの両方、対象製品の一覧が長いもの、期限の近いものを必ず入れる)
- 手元の生成AIの画面に1通ずつ渡し、「このCoC認証書の、制度、会社名、ライセンスコード、認証番号、対象製品の種類とクレーム(1行ずつ、書かれたとおり)、発行日、有効期限、認証機関を表にしてください。書かれていない項目は空欄にし、推測で埋めないでください。認証が有効かどうかは書かないでください」と指示する
- 出てきた表の対象製品を台帳の材の区分と見比べ、範囲外の材が無いかを数える
- 同じ20通をFSCの証明書検索とPEFCの Find Certified で調べ、PDFの期限と今の状態が違うものを数える
20通は必ずやってください。 仕組みを組む前に、AIが番号と製品の種類を取り違えないかと、PDFとデータベースの食い違いがどれくらいあるかを確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 項目と製品の一覧を原文どおりに取り出した | OCRのAPIと照合の処理に進む |
| 製品の種類をまとめた、クレームを補った | 指示で禁じる。直るまで先に進まない |
| PDFの期限とデータベースの状態が違う仕入先があった | FSCのAPIの申し込みを先に進める |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| PDFの期限だけで有効とする | 状態はデータベースの側でだけ決める |
| APIが取れなかったのに有効になる | 取れなければ「未確認」。有効として扱わない |
| ライセンスコードと認証番号を取り違える | 項目名ごと根拠に写させ、形を Python で確かめる |
| 範囲内の材が範囲外と出る | 材の対応表が足りない。 監査の資料から足す |
| 似た製品の種類をまとめる | 書かれたとおりに1行ずつ写させる |
| クレームが補われる | 書かれていなければ missing |
| 質問が2ページ目以降に当たらない | Pages を指定しないと1ページ目だけ。 * を入れる |
| Basic のプランで週次の見直しが止まる | 毎週100回まで。対象を絞るか Premium にする |
| PEFCの確認が自動に見える | 人の手順として台帳に欄を設け、確認者を残す |
| 依頼が自動で飛ぶ | 下書きまでにする。 送信は人が行う |
上の2行が、この構成の失敗のほとんどです。 有効と書けるのは、データベースか人が確かめたときだけにしてください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 仕入先の名称と所在地、ライセンスコードと認証番号、自社が買っている材の区分です。個人の情報はほとんど含まれませんが、どの仕入先からどの材を買っているかという調達の構造がまとまっています。
- 外部へ渡す範囲を、認証書の読み取り結果までに限る … 仕入先台帳と材の対応表はAIに渡さず、照合は Python の側で行います
- 読み取り結果を自社の側に置く …
OutputConfigで自社の S3 に出し、KMSKeyIdで自社の鍵による暗号化を指定できます - FSCのAPIの利用条件を守る … 申し込みの承認を受けたアカウントで使い、取った情報の使い方はポータルの条件に従います
- 認証材として扱うかを代替しない … この構成が出すのは、認証書の記載とデータベースの状態と台帳との差です。受け入れるか、表示を付けるかは認証の窓口が決めます
- 仕入先への連絡を自動で送らない … 出すのは下書きまでです
誤りが起きた場合のリスクは、認証の切れた材を認証材として受け入れることと、範囲内の材を範囲外として仕入先に無用な依頼を出すことの2つです。 前者は状態を確かめずに有効とすると起き、後者は材の対応表が足りないと起きます。どちらも設計で防げる種類の誤りです。
10まず何から始めるか
1週目:台帳の材の区分を書き直し、FSCのAPIを申し込む
台帳の「対象の材」を自社の材の区分で書き直します。購入額の多い上位30社の仕入先から始めます。 同時に、FSC Developer Portal にAPIの利用を申し込みます。承認には時間がかかるので、最初に出しておきます。
2週目:20通で試す
認証書を20通選び、生成AIに項目と製品を表にさせ、同じ20通を検索の画面で調べます。PDFとデータベースの食い違いの数を数えます。
3週目:材の対応表を作る
20通の対象製品の書き方を集め、自社の材の区分に当てます。迷う書き方は、認証の窓口が監査の資料で確かめてから入れます。
4週目:受付フォルダから照合までをつなぐ
S3、Lambda、Textract、Claude API、Python の照合までを作ります。この時点では verdict を出さず、6項目と印の一覧だけを担当者が見ます。
2か月目: FSCのAPIをつなぎ、週次の見直しと verdict を出します。3か月目以降: 依頼の下書きを足し、1件12分が何分になったかを実測します。仕入先の認証の一時停止に、監査の前に気づけるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 対応形式が JPEG、PNG、PDF、TIFF で XFA のPDFは非対応なこと。非同期でPDFとTIFFが500MB・3,000ページまでなこと。PDFはパスワードで保護されていてはいけないこと。質問は非同期で1ページあたり30個までなこと。対応言語が英・仏・独・伊・葡・西の6つで、質問の検出は英語の文書だけなこと。文字の高さの下限が15ピクセル(150DPIで8ポイント相当)なこと | AWS: Set Quotas in Amazon Textract | 2026-10-26 |
質問の Pages を指定しないと既定で ["1"] になること。* で全ページを指せること | AWS: Query | 2026-10-26 |
FeatureTypes に TABLES/FORMS/QUERIES を指定できること。完了が SNS に通知されること。ClientRequestToken・JobTag・OutputConfig・KMSKeyId を指定できること。JobId が7日間有効なこと | AWS: StartDocumentAnalysis | 2026-10-26 |
結果が1回最大1,000ブロックで NextToken で続きを取ること。状態に PARTIAL_SUCCESS があり Warnings にページが返ること | AWS: GetDocumentAnalysis | 2026-10-26 |
output_config.format に json_schema を指定するとスキーマに沿った JSON で返ること。数値の minimum・maximum と文字列の長さの制約が使えないこと | Claude: Structured outputs | 2026-10-26 |
FSC Developer Portal がFSCの証明書の状態と範囲の詳細を確かめるAPIを提供すること。申し込み、FSC Connect のアカウントでのログイン、プランの選択の流れで、どのプランも管理者の承認が要ること。Basic が毎分5回・毎週100回、Premium が毎分100回・毎週10,000回、Enterprise が無制限なこと。応答の例に LicenseStatus・CertificateStatus・ExpiryDate などが並ぶこと | FSC Developer Portal | 2026-10-26 |
| CoC認証は森林由来の製品を生産・流通させる企業向けであること。FSCのクレームを販売書類に載せて認証製品を売り、生産・購入・販売の記録を残すこと。証明書検索(Certificate Search)が認証取得者の最新の情報を示すこと | FSC: Chain of custody certification | 2026-10-26 |
| FSCの検索でライセンスコード・認証番号・組織名で探せること。証明書の詳細ページに製品の一覧が表示されうること | FSC Asia Pacific: How to Search | 2026-10-26 |
| Find Certified が、PEFCの認証を受けた組織を探し、確かめるための公開のデータベースであること | PEFC: Find Certified | 2026-10-26 |
仕入れた材を認証材として扱えるかは、自社の認証の手順と認証機関の求めに従って判断してください。 本記事は公式のページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1752)についてのご相談はこちらから。
