海外の部品メーカーから届く英文の適合宣言書を読み取り、型番・適用規格と版・発行日・署名者を部品の適合台帳に転記して、規格の版が古いものと型番の食い違いを拾う
海外の部品メーカーから届く英文の適合宣言書を読み取り、型番・適用規格と版・発行日・署名者を部品の適合台帳にそろえます。部品マスタとの型番の食い違いと、自社の基準より古い版の規格を挙げた宣言書を拾い、仕入先へ取り直しを頼む一覧にします。
- 生成AI
- ChatGPT/Claude/Gemini
- AIサービス
- AWS Textract/Azure AI/Google Document AI
- 連携・自動化
- Python
- 対象業界
- 商社/製造
- 対象部門
- 品質管理/購買
- 対象業務
- データ入力・転記/内容確認・チェック
- 主な課題
- 入力作業が多い/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 読み取り(OCR)
- 主な効果
- 入力漏れ削減/品質標準化/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- API連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 購買の担当が、部品メーカーや代理店から届いたメールの添付のPDFを共有フォルダに保存する
- 品質管理の担当が1通ずつ開き、型番・適用法令・適用規格と版・発行日・署名者の氏名と役職を探す
- 部品適合台帳のスプレッドシートに、見つけた値を書き写す
- 生産管理システムで部品マスタを引き、宣言書の型番が自社で使っている部品と同じかを見比べる
- 規格マスタを開き、宣言書の規格の版が自社の基準より古くないかを見比べる
- 足りない項目、型番の食い違い、古い版があれば、台帳にメモし、購買の担当に取り直しを頼む
- 購買の担当が、仕入先に英文で取り直しの依頼を書いて送る
- 人購買の担当が、届いた宣言書のPDFを受領用の保管先に入れる(メールの転送でもよい)
- 自動保存をきっかけに処理が動き、形式・サイズ・ページ数・パスワードの有無を確かめる
- 自動OCRが文書を分析し、キーと値の組・表・質問への答え・署名の位置を返す
- 自動生成AIが、読み取り結果を台帳の項目(型番・法令・規格の番号と版・発行日・署名者)にそろえる
- 自動プログラムが部品マスタと型番を照合し、`exact` / `pattern` / `not_found` を付ける
- 自動プログラムが規格マスタと規格の版を照合し、`current` / `older` / `unknown_standard` を付ける
- 自動結果から、`ok` / `request_update` / `needs_human` を規則で決め、取り直しの依頼文の下書きを作る
- 人品質管理の担当が `request_update` と `needs_human` だけを開き、宣言書の原本と見比べる
- 人取り直しを頼むと決めたものについて、購買の担当が下書きを直して仕入先へ送る
- 自動`ok` と人が確かめたものを部品適合台帳に書き込む
各工程の詳しい説明を読む
- 購買の担当が、部品メーカーや代理店から届いたメールの添付のPDFを共有フォルダに保存する
- 品質管理の担当が1通ずつ開き、型番・適用法令・適用規格と版・発行日・署名者の氏名と役職を探す
- 部品適合台帳のスプレッドシートに、見つけた値を書き写す
- 生産管理システムで部品マスタを引き、宣言書の型番が自社で使っている部品と同じかを見比べる
- 規格マスタを開き、宣言書の規格の版が自社の基準より古くないかを見比べる
- 足りない項目、型番の食い違い、古い版があれば、台帳にメモし、購買の担当に取り直しを頼む
- 購買の担当が、仕入先に英文で取り直しの依頼を書いて送る
(a)規格の版は、見落とすほうが自然です。 規格の欄は番号・年・追補の記号が続く長い文字列で、1通に10行以上並ぶこともあります。番号が合っていれば安心してしまい、末尾の年が1つ古いことに気づきません。 気づくのは、製品の技術文書をまとめる段階か、顧客の監査のときです。
(b)型番の照合に時間がかかる。 宣言書の型番は、シリーズ名にワイルドカードの記号を付けたもの、末尾の記号を省いたもの、仕入先の旧型番のままのものなどがあり、部品マスタの品番とは一字一句は合いません。 合わないものを1件ずつ部品マスタで引き直すのが、5番目より時間のかかる作業です。
(c)宣言書が古いままの部品が分からない。 台帳には受け取った宣言書を書き写しているだけで、規格マスタの基準が変わったときに、どの部品の宣言書が古くなったかを引けません。 基準が変わるたびに、台帳を上から見直しています。
(d)全件を丁寧に見るのは続かない。 新製品の立ち上げが重なる月は、転記だけをして照合を後回しにします。
- 【人】 購買の担当が、届いた宣言書のPDFを受領用の保管先に入れる(メールの転送でもよい)
- 【自動】 保存をきっかけに処理が動き、形式・サイズ・ページ数・パスワードの有無を確かめる
- 【自動】 OCRが文書を分析し、キーと値の組・表・質問への答え・署名の位置を返す
- 【自動】 生成AIが、読み取り結果を台帳の項目(型番・法令・規格の番号と版・発行日・署名者)にそろえる
- 【自動】 プログラムが部品マスタと型番を照合し、
exact/pattern/not_foundを付ける - 【自動】 プログラムが規格マスタと規格の版を照合し、
current/older/unknown_standardを付ける - 【自動】 結果から、
ok/request_update/needs_humanを規則で決め、取り直しの依頼文の下書きを作る - 【人】 品質管理の担当が
request_updateとneeds_humanだけを開き、宣言書の原本と見比べる - 【人】 取り直しを頼むと決めたものについて、購買の担当が下書きを直して仕入先へ送る
- 【自動】
okと人が確かめたものを部品適合台帳に書き込む
8番目が、この設計の分かれ目です。 すべてがそろった宣言書は一覧で流し見るだけにし、人の時間は、食い違いと判断のつかないものに使います。
6番目で版の新旧を決めるのは、AIではなくプログラムです。 AIにさせるのは、宣言書の文字列を番号と版に分けるところまでです。
02今回想定するシステム構成
英文の適合宣言書(メール添付のPDF・スキャン画像) │ 購買の担当が受領用の保管先へ ▼【トリガー】保管先への保存 AWS Lambda ── 形式・サイズ・ページ数・パスワードの確認 ▼ AWS Textract(StartDocumentAnalysis/完了の通知のあと GetDocumentAnalysis) │ FORMS(キーと値)・TABLES(表)・QUERIES(質問への答え)・SIGNATURES(署名の位置) ▼ Claude API ── 台帳の項目にそろえる │ ① 製造者 ② 型番の並び ③ 適用法令 ④ 規格の番号と版 ⑤ 発行日・場所 ⑥ 署名者の氏名と役職 ▼ Python ── 部品マスタとの型番の照合/規格マスタとの版の照合 ▼ 判定(ok / request_update / 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列に分けておくことです。1つのセルに「EN 6XXXX-1:2020 以降」と文章で書いてあると、プログラムで比べられません。
OCRに AWS Textract を選ぶのは、宣言書が英文だからです。 公式の上限の表では、対応言語は英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語で、手書きの認識は英語だけとされています。欧州の部品メーカーの宣言書には仏・独・伊の版もありますが、この構成では英語の版を求める運用を前提にします。 アジアの部品メーカーの宣言書に中国語の社名や住所が混ざる場合、その部分は読めない前提で扱います。
この題材で効くのは、StartDocumentAnalysis の FeatureTypes に TABLES・FORMS・QUERIES・SIGNATURES を同時に指定できることです。 規格の表、「Manufacturer:」のようなキーと値の組、決めた質問への答え、署名の位置が1回の分析で返ります。質問は英語の文書だけに対応するとされています。
03どうやって実装するのか
処理の起点を決める
受領用の保管先(Amazon S3 のバケット)に宣言書が保存されたことを起点にします。 宣言書は月末にまとまって届くわけではないので、1日1回の定時処理にはしません。 届いた日のうちに食い違いが分かれば、仕入先とのやり取りが1往復早く始まります。
保存のたびに1通ずつ動かし、StartDocumentAnalysis に ClientRequestToken を付けます。 同じトークンで呼ぶと同じ JobId が返るとされており、ファイルのハッシュ値を使えば同じ宣言書を二重に分析しません。
分析が終わると、NotificationChannel に指定した Amazon SNS のトピックに完了の状態が届き、2つ目の Lambda が結果を取りに行きます。 JobTag には仕入先のコードを入れます。JobId は7日間だけ有効なので、結果はすぐに取り出して保管します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 適合宣言書 | PDFまたは画像。受け取った日時、送ってきた仕入先、メールの件名 | 受領用の保管先 |
| 読み取り結果 | キーと値の組、表とセル、質問への答え、署名の位置、それぞれの信頼度 | AWS Textract |
| 部品マスタ | 自社の品番、仕入先の型番、仕入先コード、使っている製品、旧型番 | 生産管理システム(読み取りのみ) |
| 規格マスタ | 規格の番号、受け入れる最も古い版、対象の製品群、更新した日 | 品質保証部が持つ一覧 |
| 部品適合台帳 | 品番ごとの直近の宣言書、その発行日、規格と版 | スプレッドシート |
質を決めるのは部品マスタの「仕入先の型番」と「旧型番」の列です。 宣言書に書かれるのは仕入先の型番で、この列が空だと照合は全件 not_found になります。 規格マスタの基準は品質保証部が決めた値で、この構成は読むだけです。
データの取得方法を決める
分析の結果は GetDocumentAnalysis で取り出します。 JobStatus が SUCCEEDED か PARTIAL_SUCCESS かを確かめ、1回に最大1,000ブロックずつ NextToken で続きを取ります。結果は Block の配列で、種類(BlockType)で中身を見分けます。
| 取るもの | どのブロックか | 何に使うか |
|---|---|---|
| キーと値の組 | KEY_VALUE_SET(EntityTypes が KEY か VALUE) | 「Manufacturer」「Date of issue」「Place of issue」など |
| 規格の表 | TABLE・CELL・MERGED_CELL と RowIndex/ColumnIndex | 規格の番号と版の行を1行ずつ取る |
| 質問への答え | QUERY と QUERY_RESULT(別名と信頼度) | 決めた質問への答え(下記) |
| 署名 | SIGNATURE(位置と信頼度) | 署名があるかの確認 |
| 全文の行 | LINE・WORD と TextType(HANDWRITING/PRINTED) | 表やキーに出なかった値を本文から拾う |
質問は、宣言書に共通して書かれる項目に絞って投げます。
| 別名(Alias) | 質問の文(Text) |
|---|---|
MANUFACTURER | What is the name of the manufacturer? |
DATE_OF_ISSUE | What is the date of issue of this declaration? |
PLACE_OF_ISSUE | What is the place of issue? |
SIGNATORY_NAME | What is the name of the person who signed? |
SIGNATORY_TITLE | What is the title or position of the signatory? |
NOTIFIED_BODY | What is the name or number of the notified body? |
公式の説明では、答えが見つからないときは答えの要素が空のまま返ります。 ここが「書かれていない」を判定する根拠です。型番と規格は質問にしません。 1通に何十行も並び、1つの答えでは取り切れないので、表と全文の行から取ります。複数の行や列にまたがる見出しのセルは MERGED_CELL として返るので、関係(Relationships)で元のセルにたどります。
AIへ渡す前に整形する
- 形式の確認 … 対応形式は JPEG、PNG、PDF、TIFF で、XFA の PDF は扱えません。Word で届いたものは PDF にします
- パスワードの確認 … PDF はパスワードで保護されていてはならないとされています。保護されたものは仕入先に保護のない版を頼みます
- サイズとページ数 … 非同期の処理では、PDF と TIFF が500MB・3,000ページまでです
- 文字の大きさ … 検出できる文字の高さの下限は15ピクセル(150 DPI で8ポイント)です。ファクスの画像や写真は下限に近いことがあります
- 宣言書以外のページを外す … 添え状、試験成績書、RoHS の分析データが同じ PDF に入っていることがあります。1ページ目のタイトルの行で切り分けます
- 重複の検知 … 同じ仕入先・発行日・型番の並びの宣言書が台帳にあれば、二重に取り込まない印を付けます
5番目を省かないでください。 試験成績書にも規格の番号と版が並んでいて、宣言していない規格を宣言したものとして台帳に載ります。
AIに処理させる
させるのは、OCRの結果を台帳の項目にそろえ、規格の文字列を番号と版に分けることだけです。
| 項目 | させること | 判断できないときの扱い |
|---|---|---|
| 製造者の名称と住所 | 質問への答えとキーと値の組から1つに決める | 候補が複数あれば ambiguous |
| 型番の並び | 表と本文の行から、宣言の対象の型番を1つずつ配列にする。ワイルドカードの記号はそのまま残す | 型番らしい文字列が表の外にしかなければ needs_check |
| 適用法令 | 指令・規則の番号と名称を1行ずつ書き出す | 番号が読めなければ unreadable |
| 規格 | 1行を「番号」「年」「追補の記号」に分ける | 年や追補が書かれていなければ空のまま。補わない |
| 発行日・発行場所 | 日付を年月日にそろえる。日と月の並びが決められなければ元の文字列を残す | 05/06/2026 のような並びは ambiguous |
| 署名者 | 氏名と役職を書き出す。署名のブロックがあるかを写す | 氏名が手書きで読めなければ unreadable |
| 宣言書でない書類 | 文書の種類を書いて止める | - |
いちばん大事なのは、規格の版を補わないことです。 年が無い規格は、そのまま年を空にします。生成AIは規格の番号を見ると、よく知られた年を付け足しがちで、 付け足した瞬間に「版が書かれていない」という取り直しの理由が消えます。
| させないこと | 理由 |
|---|---|
| 規格の版の新旧の判定 | 規格マスタに照らしてプログラムが決める |
| 部品が適合しているかの判断 | 部品メーカーが技術文書で示すもので、宣言書からは分からない |
| 規格の年・追補の補完 | 書かれていないという事実が消える |
指示内容を固定する
あなたは製造業の品質管理部門で、海外の部品メーカーから届いた英文の
適合宣言書(Declaration of Conformity)を部品適合台帳の項目にそろえる担当です。
渡すのは AWS Textract の読み取り結果(キーと値の組、表、質問への答え、
署名の位置、全文の行)だけです。書かれていないことを推測で埋めないでください。
【そろえる項目】
1. manufacturer: 製造者の名称と住所
2. models: 宣言の対象の型番。1つずつ配列にする
3. legislation: 適用法令(指令・規則の番号と名称)
4. standards: 規格。1行ごとに number(番号)、year(年)、amendments(追補の記号)に分ける
5. date_of_issue と place_of_issue
6. signatory: 氏名と役職、署名のブロックがあるか
【厳守事項】
- 規格に年や追補が書かれていなければ、year と amendments は空にしてください。
よく知られた年を補ったり、最新の版を推定したりしないでください。
- 型番は書かれた文字列をそのまま写してください。「*」「x」「…」などの
ワイルドカードの記号を消したり、展開したりしないでください。
- 日付は、月の名前で書かれていれば YYYY-MM-DD にしてください。
数字だけで日と月の順が決められないときは、元の文字列を raw に写し、
status を ambiguous にしてください。
- 試験成績書や添え状の中の規格を、宣言の対象の規格に含めないでください。
宣言の対象かどうか決められない行は status を needs_check にしてください。
- 規格の版が新しいか古いか、部品が適合しているかは書かないでください。
- 読み取り結果に値が無い項目は status を missing にしてください。
項目名(例: "Date of issue:")があっても値が空なら missing です。
- evidence には、判定の根拠にした文字列をそのまま写してください。
- confidence は OCR が返した値をそのまま入れてください。
- 適合宣言書ではない書類と判断した場合は、document_type に種類を書き、
ほかの項目は空にしてください。
【読み取り結果】{textract_result}
【仕入先】{supplier_code} {supplier_name}
「よく知られた年を補わない」を書かないと、年の無い規格に年が入ります。 直された台帳は見た目がそろって読みやすく、それだけに取り直しの理由が見えなくなります。 「試験成績書の規格を含めない」は、1ページ目に宣言書と試験の要約が一緒に印刷された書式があるため、前処理のあとにも書いています。
出力形式を固定する
応答は、Claude API の構造化出力で次の形の JSON に固定します。 公式の説明では、output_config.format に type: "json_schema" とスキーマを渡すと、スキーマに合う JSON が返るとされています。
{
"doc_id": "DOC-2026-10-0412",
"document_type": "declaration_of_conformity",
"supplier_code": "S-0731",
"manufacturer": { "name": "", "address": "", "status": "ok", "evidence": "" },
"models": [
{ "raw": "PSU-120-24*", "status": "ok", "confidence": 98.1, "evidence": "Model: PSU-120-24*" }
],
"legislation": [
{ "raw": "", "status": "ok", "evidence": "" }
],
"standards": [
{ "raw": "EN 6XXXX-1:2014", "number": "EN 6XXXX-1", "year": "2014",
"amendments": "", "status": "ok", "confidence": 96.4, "evidence": "" }
],
"date_of_issue": { "value": "2026-09-18", "raw": "18 September 2026", "status": "ok" },
"place_of_issue": { "value": "", "status": "missing" },
"signatory": { "name": "", "title": "", "signature_block": true, "status": "ok" }
}
例の規格の番号は伏せ字です。この JSON には判定がなく、 照合の結果はプログラムが付け足します。
| プログラムが付ける項目 | 値 | 決め方 |
|---|---|---|
model_match | exact / pattern / not_found | 部品マスタの仕入先の型番・旧型番との一致。ワイルドカードの記号を含む型番は、展開した範囲に部品マスタの型番が入れば pattern |
standard_check | current / older / no_year / unknown_standard | 規格マスタの「受け入れる最も古い版」との比較。年が空なら no_year |
verdict | ok / request_update / needs_human | 下の表の規則 |
verdict | 条件 |
|---|---|
ok | 型番がすべて exact、規格がすべて current、署名・発行日・製造者が ok |
request_update | older か no_year が1つ以上、または署名・発行日が missing |
needs_human | pattern か not_found、unknown_standard、ambiguous、unreadable、needs_check が1つ以上 |
AIの層とプログラムの層を分けるのは、規格マスタが変わるからです。 基準の版が改まったとき、保存した JSON に新しい基準を当て直すだけで、古くなった宣言書の一覧が出ます。 pattern を人に回すのは、「*」が色の違いだけを表す仕入先もあれば、定格の違う製品をまとめる仕入先もあるからです。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 受領用の保管先(Amazon S3) | 保存の通知で Lambda を起動 | 新しい宣言書を検知する |
| AWS Textract | StartDocumentAnalysis と GetDocumentAnalysis | 分析を始め、完了の通知のあとに結果を取る |
| Claude API | Messages API(構造化出力) | 台帳の項目へのそろえ直しと、依頼文の下書き |
| 部品マスタ | 生産管理システムからの書き出しを日次で読む | 仕入先の型番と旧型番を引く |
| 規格マスタ | 品質保証部の一覧を読む | 受け入れる最も古い版を引く |
| 部品適合台帳 | 確認の済んだものだけ書き込む | 品番ごとの直近の宣言書を更新する |
部品マスタには書き込みません。 宣言書の型番に合わせてマスタを直すと、別の部品の宣言書で穴を埋めることになりかねません。部品適合台帳は、古い宣言書の行を消さずに履歴として残します。
人が確認する
品質管理の担当が開くのは request_update と needs_human だけです。 ok のものは一覧で件数と仕入先を流し見ます。
needs_humanを先に見る …not_foundが表記の違いなら、購買の担当に部品マスタの修正を頼みますrequest_updateの根拠を確かめる …evidenceと原本を見比べ、年が本当に無いか、版が本当に古いかを確かめます- 古い版を受け入れるかを決める … 受け入れるなら、その理由を台帳に残します
- 取り直しを頼む … 下書きを購買の担当が直して送ります。送信は人が行います
2番目を省かないでください。 OCRが年の末尾を読み落とすと、プログラムはそれを古い版と判定します。目標は、240通をならして1通4分です。 開くのは3割前後という想定です。
例外に対処する
| 起きること | 対応 |
|---|---|
| パスワードで保護された PDF | 分析に回さず、仕入先に保護のない版を頼む |
| XFA の PDF、Word のファイル | PDF に変換してから分析する |
| 英語以外の宣言書 | 文字が読めないか、質問の答えが空になる。英語の版を仕入先に頼む |
| 手書きの署名者名が読めない | unreadable。署名のブロックがあれば署名ありとして扱い、氏名は人が補う |
| 宣言書に試験成績書が綴じ込まれている | 宣言書のページだけを分析する。切り分けられなければ needs_human |
分析が FAILED で終わる | 保管先に残し、担当へ通知する。台帳には何も書かない |
| 同時に始めた分析が多すぎる | LimitExceededException が返る。少し待って始め直す |
いちばん多いのは、3行目と5行目です。 どちらも受け取り方の問題で、英語の版と単独のファイルを取引の条件として伝えると減ります。
記録を残す
- 宣言書の原本と、受け取った日時・仕入先・メールの件名
- Textract の結果の全文(
Blockの配列)とJobId - 生成AIがそろえた JSON と、そのときのプロンプトの版
- 照合の結果(
model_match、standard_check、verdict)と、そのとき参照した規格マスタの版 - 人が判定を覆した記録 … どの項目を、どちらに変えたか、古い版を受け入れた理由
- 取り直しを依頼した日、仕入先の回答、新しい宣言書との対応
4つ目で「そのときの規格マスタの版」を残すのは、基準が後から変わるためです。 当時の基準が残っていないと、当時は current だったものがどの時点で古くなったのかを説明できません。
04実装レベルの3段階
最小構成では通数がさばけません。 240通を1通ずつ貼り付けることはできず、確かめるための段階です。 半自動化で、①の転記はほぼ無くなります。 ただし②の型番の照合と③の規格の版の照合は人に残り、1通15分は8分前後にしか縮みません。本格構成で照合がプログラムに移り、4分になります。
05工数削減シミュレーション
導入後 240件 × 4分 ÷ 60 = 16 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 欧州向けの製品に海外製の部品・モジュール・電源・ケーブルを多く使い、部品メーカーや代理店から英文の適合宣言書を毎月数百通受け取っている電機・機械メーカーと、その部品を扱う商社。宣言書のPDFを1通ずつ開いて型番と規格を台帳へ書き写し、規格の版が自社の基準より古いかを目で確かめている場合。部品の設計変更や規格の改訂のたびに宣言書を取り直しており、どの部品の宣言書が古いままかを一覧で言えない場合。
- 部品の適合宣言書を部品メーカーのポータルから構造化されたデータで受け取れており、PDFを読む必要がない場合。宣言書が英語以外(中国語・日本語・韓国語など)で届くことが多い場合(この構成のOCRは英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語しか読めず、手書きは英語だけです)。月の受領が数十通で目視で足りる場合。なお、部品が自社製品の適合に足りるか、古い版の規格による宣言を受け入れるかの判断は品質保証の担当が行うもので、この構成では代替できません。
07最小構成で試す方法
- 先月受け取った宣言書から20通を選ぶ(うち数通は、版が古かったものや型番が合わなかったものを入れる)
- その20通について、当時どの項目を台帳に写し、どこで食い違いに気づいたかを聞き取る
- 20通の PDF を、手元の生成AIの画面に1通ずつ渡す
- 「この適合宣言書から、製造者、型番、適用法令、規格の番号と年と追補、発行日、署名者を表にしてください。書かれていない年は空にし、補わないでください」と指示する
- 出てきた表の規格の年を、規格マスタと自分で見比べ、当時の目視の結果と突き合わせる
5番目の比べ方が、最小構成で確かめたいことです。 読み取りが正しくても、規格の年を補って返してくることがあります。20通のうち何通で年が補われたかを数えてください。
| 出てきた内容 | 判断 |
|---|---|
| 規格の番号と年が正しく分かれた | OCRのAPIとプログラムでの照合に進む |
| 書かれていない年が補われた | 指示の書き方で直る。本格構成では構造化出力と照合で防ぐ |
| 表の規格が途中で切れた | 表の読み取りの機能が要る。 画面に貼るだけでは足りない |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 書かれていない規格の年が補われる | 指示で禁じ、構造化出力で年を独立した項目にする。 年が空なら no_year として扱う |
| 試験成績書の規格が宣言書の規格に混ざる | 宣言書のページだけを分析し、指示でも宣言の対象でない行を needs_check にする |
型番の照合が全件 not_found になる | 部品マスタに仕入先の型番と旧型番の列が無い。 整備を先に終える |
| ワイルドカードの型番を一致とみなしてしまう | pattern として人へ回す。範囲に入っても同じ部品とは限らない |
| 日と月が逆に入る | 数字だけの日付は ambiguous。月の名前のあるものだけ確定する |
| 年の末尾の数字を読み落とす | 信頼度の低い年は人が原本で確かめる |
| 英語以外の宣言書が届く | この構成のOCRで読めるのは英・仏・独・伊・葡・西。 英語の版を頼む |
| 古い版を受け入れた理由が残らない | 人が覆した記録に理由を書く欄を設ける |
| 取り直しの依頼が自動で送られる | 下書きまでにする。 送信は購買の担当が行う |
上の2行が、この構成の失敗のほとんどです。 どちらも台帳の見た目がそろっているのに中身が違う型で、目で見ても気づけません。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 部品メーカーの名称と住所、型番、適用法令と規格、署名者の氏名と役職と署名の画像、そして自社の部品マスタの品番と仕入先の対応です。
- 生成AIに渡す範囲を絞る … 渡すのは OCR の結果だけで、部品マスタと規格マスタは渡しません。 照合はプログラムの側で行います。どの部品をどの仕入先から買っているかは、取引の情報そのものです
- 署名の画像を必要以上に複製しない … 署名者の氏名と署名は個人に関する情報です。台帳には氏名と役職と署名の有無だけを書き、署名の画像は原本の中に置いておきます
- 適合の判断を代替しない … この構成が出すのは、宣言書に何が書かれているかと、自社の基準との差だけです。部品が自社製品の適合に足りるか、古い版を受け入れるかは、品質保証の担当が決めます
- 取り直しの依頼を自動で送らない … 仕入先にとっては書類の作り直しで、誤った依頼は取引の関係に響きます
- 宣言書の原本と判定の記録を残す … Your Europe の説明では、最新の宣言書の写しを製品が市場に出てから10年間保管するとされています。これは製品を市場に出す側の義務の説明ですが、部品の宣言書もその根拠の一部になるので、自社の製品の保管期間に合わせて残します
- 保管先を暗号化する …
KMSKeyIdで結果の暗号化の鍵を選べ、指定しないときは SSE-S3 で暗号化されるとされています
誤りが起きた場合のリスクは、古い版の宣言書を見落とすことと、問題の無い宣言書の取り直しを頼むことの2つです。 前者は設計で、後者は人の確認で防ぎます。
10まず何から始めるか
1週目:規格マスタを2列にする
品質保証部の規格マスタを、「規格の番号」と「受け入れる最も古い版」の2列に分けます。製品群ごとに基準が違うなら、製品群の列も足します。
2週目:20通で試す
先月の宣言書から20通を選び、手元の生成AIに項目を表にさせます。書かれていない規格の年が補われていないかを最優先で見ます。 表が途中で切れる宣言書が何通あるかも数えます。
3週目:部品マスタの仕入先の型番をそろえる
宣言書の多い上位30社から、部品マスタに仕入先の型番と旧型番を入れます。30社で月の宣言書の大半が埋まる想定です。
4週目:保存から一覧までをつなぐ
保管先への保存を起点に分析を始め、生成AIで項目をそろえ、一覧に書き出すところまで作ります。この時点では照合をせず、そろえた項目だけを見ます。
2か月目: 型番と規格の版の照合を足し、verdict を出します。needs_human の件数と理由を毎週数えます。3か月目以降: 取り直しの依頼の下書きを足し、1通15分が何分になったかを実測します。規格マスタの基準が変わったときに、保存した JSON から古くなった宣言書の一覧を出せた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| EU の適合宣言書に、製造者または代理人の名称と住所、製品の型式・型番、全責任を負う旨の記述、追跡のための識別、ノーティファイドボディの詳細、適用法令、整合規格その他の手段、署名者の氏名と署名、発行日が含まれること。最新の宣言書の写しを市場に出してから10年間保管すること。適用法令や整合規格の改訂を含む変更で見直し・更新すること | Your Europe: Signing a declaration of conformity | 2026-10-09 |
| 対応形式が JPEG・PNG・PDF・TIFF で XFA の PDF は不可。非同期で PDF・TIFF が500MB・3,000ページ。パスワード付き PDF は不可。対応言語が英・仏・独・伊・葡・西で、手書きは英語だけ。質問は英語の文書だけ、非同期で1ページ30問まで。文字の高さの下限が15ピクセル(150 DPI で8ポイント)。縦書きは非対応 | AWS: Set Quotas in Amazon Textract | 2026-10-09 |
FeatureTypes に TABLES・FORMS・QUERIES・SIGNATURES・LAYOUT を指定できること。ClientRequestToken で同じ JobId が返ること。JobTag が完了の通知に含まれること。KMSKeyId を指定しないときは SSE-S3 で暗号化されること。JobId が7日間有効なこと。LimitExceededException | AWS: StartDocumentAnalysis | 2026-10-09 |
KEY_VALUE_SET・TABLE・CELL・MERGED_CELL・SIGNATURE・QUERY・QUERY_RESULT の各ブロック。TABLE が1行1列ずつのセルの格子であること。TextType が HANDWRITING/PRINTED を返すこと | AWS: Block | 2026-10-09 |
| 質問への答えが別名・信頼度・位置とともに返り、答えが見つからないときは空のまま返ること | AWS: Queries | 2026-10-09 |
JobStatus が IN_PROGRESS・SUCCEEDED・FAILED・PARTIAL_SUCCESS を返すこと。MaxResults が既定・最大1,000で、NextToken で続きを取ること | AWS: GetDocumentAnalysis | 2026-10-09 |
構造化出力を output_config.format(type: "json_schema")で指定すること | Claude: Structured outputs | 2026-10-09 |
部品が自社製品の適合に足りるか、古い版の規格による宣言を受け入れるかは、品質保証の担当が製品ごとに決めてください。 本記事は公開仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1218)についてのご相談はこちらから。
