Media > AI活用ユースケース > 品質管理 > 海外の鋼材メーカーから届く英文のミルシートを読み取り、発注仕様と照合して、受入の可否と要確認点を出す

海外の鋼材メーカーから届く英文のミルシートを読み取り、発注仕様と照合して、受入の可否と要確認点を出す

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

海外の鋼材メーカーから届く英文のミルシートを読み取り、化学成分と機械的性質を発注仕様の値と照合します。受入の可否の候補と、仕入先に問い合わせるべき点を、入荷の前に一覧にします。

サマリー
生成AI
ChatGPT/Claude/Gemini
AIサービス
AWS Textract/Azure AI/Google Document AI
連携・自動化
Python
対象業界
商社/建設/製造
対象部門
品質管理/購買
対象業務
内容確認・チェック/比較検討
主な課題
人手が足りない/入力作業が多い/確認ミスが多い
AIで行う処理
読み取り(OCR)
主な効果
入力漏れ削減/品質標準化/工数削減
導入難易度
★★★☆☆
実装レベル
半自動化
費用感
API連携(中)
人間の確認
条件付き
現在工数
60h/月
AI導入後
18h/月
想定削減
70%
年間削減
504h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 輸入担当が、メールで届いたミルシートのPDFを共有フォルダに保存する
  2. 購買管理システムで発注書を開き、発注番号、材料規格、寸法、数量、発注仕様書の番号を確かめる
  3. ミルシートの発注番号、ヒート番号、材料規格、寸法、数量を発注書と突き合わせる
  4. 発注仕様書を開き、化学成分と機械的性質の値を1つずつミルシートの実測値と比べる。単位が違えば電卓で換算する
  5. 求める証明書の種類になっているか、検査責任者の署名があるかを見る
  6. 気になる点をメモし、仕入先への問い合わせメールを英文で書く
  7. 問題のないものは、照合の結果を添えて品質管理部へ回す
導入後(After)
  1. 人輸入担当が、届いたミルシートのPDFを受付フォルダに保存する
  2. 自動保存をきっかけに処理が動き、形式・ページ数・サイズ・パスワードの有無を確かめる
  3. 自動OCRが文字・表・キーと値のペア・署名の位置と、それぞれの信頼度を返す
  4. 自動生成AIが、表の列と行を「どの成分・どの試験の値か」「単位は何か」に対応付け、値を原文のまま書き出す
  5. 自動発注番号から発注書と発注仕様を引き、識別情報を突き合わせる
  6. 自動Python が単位と小数点の書き方をそろえ、仕様値と1項目ずつ比べる
  7. 自動比べた結果から、`conforming` / `needs_query` / `nonconforming_candidate` / `needs_human` を規則で決める
  8. 自動`needs_query` のものについて、仕入先への英文の問い合わせの下書きを作る
  9. 人輸入担当が一覧を見て、`conforming` 以外のものの根拠を確かめる
  10. 人問い合わせの下書きを直して送る。`conforming` のものは品質管理部へ回す
各工程の詳しい説明を読む
  1. 輸入担当が、メールで届いたミルシートのPDFを共有フォルダに保存する
  2. 購買管理システムで発注書を開き、発注番号、材料規格、寸法、数量、発注仕様書の番号を確かめる
  3. ミルシートの発注番号、ヒート番号、材料規格、寸法、数量を発注書と突き合わせる
  4. 発注仕様書を開き、化学成分と機械的性質の値を1つずつミルシートの実測値と比べる。単位が違えば電卓で換算する
  5. 求める証明書の種類になっているか、検査責任者の署名があるかを見る
  6. 気になる点をメモし、仕入先への問い合わせメールを英文で書く
  7. 問題のないものは、照合の結果を添えて品質管理部へ回す

(a)様式が仕入先の数だけある。 成分の表が縦に並ぶもの、横に並ぶもの、1ページに複数のヒートが並ぶものがあります。同じ炭素の値でも、探す場所が仕入先ごとに違います。

(b)数値の書き方が違う。 欧州の仕入先には小数点をカンマで書くところがあり、「0,025」は0.025のことです。北米の仕入先は引張強さを ksi、衝撃試験の温度を °F で書くことがあります。換算を1回でも忘れると、比べている値の意味が変わります。

(c)規格値の欄に目が行く。 証明書に規格の上限・下限が印刷されていると、実測値がその範囲に入っているかだけを見てしまいます。発注仕様書の厳しい上限との照合が、忙しい日から省かれます。

(d)問い合わせが遅れる。 照合が後回しになると、問題に気づくのが入荷の後になります。そうなると、材料を倉庫に止めたまま仕入先の回答を待つことになります。

  1. 【人】 輸入担当が、届いたミルシートのPDFを受付フォルダに保存する
  2. 【自動】 保存をきっかけに処理が動き、形式・ページ数・サイズ・パスワードの有無を確かめる
  3. 【自動】 OCRが文字・表・キーと値のペア・署名の位置と、それぞれの信頼度を返す
  4. 【自動】 生成AIが、表の列と行を「どの成分・どの試験の値か」「単位は何か」に対応付け、値を原文のまま書き出す
  5. 【自動】 発注番号から発注書と発注仕様を引き、識別情報を突き合わせる
  6. 【自動】 Python が単位と小数点の書き方をそろえ、仕様値と1項目ずつ比べる
  7. 【自動】 比べた結果から、conforming / needs_query / nonconforming_candidate / needs_human を規則で決める
  8. 【自動】 needs_query のものについて、仕入先への英文の問い合わせの下書きを作る
  9. 【人】 輸入担当が一覧を見て、conforming 以外のものの根拠を確かめる
  10. 【人】 問い合わせの下書きを直して送る。conforming のものは品質管理部へ回す

9番目が、この設計の分かれ目です。 仕様どおりのものは一覧で流し見て、仕様から外れたもの、読めなかったもの、問い合わせが要るものに時間を使います。 全件を開き直す設計にすると、60.0時間はあまり減りません。

6番目を生成AIにさせないのも、意図してのことです。 換算と比較は計算で答えが一つに決まる作業なので、計算に任せれば、何度やっても同じ結果になります。

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

構成図
英文のミルシート(仕入先からメールで届くPDF)
   │  受付フォルダ(Amazon S3)へ保存
   ▼【トリガー】ファイルの保存
AWS Lambda ── 形式・ページ数・サイズ・パスワードの確認
   ▼
AWS Textract(AnalyzeDocument/StartDocumentAnalysis)
   │   TABLES・FORMS・QUERIES・SIGNATURES
   │   表のセル、キーと値、問いへの答え、署名の位置、信頼度
   ▼
Claude API ── 表の列と行を成分・試験・単位に対応付け、値を原文のまま書き出す
   ▼
Python ── 発注書・発注仕様との照合
   │   ① 識別情報の突合    ② 単位と小数点の正規化
   │   ③ 仕様値との比較    ④ 証明書の種類と署名
   ▼
判定(conforming / needs_query / nonconforming_candidate / needs_human)
   ▼
【人が仕様外と要確認のものを確認】
   ├──▶ Claude API ── 仕入先への英文の問い合わせの下書き
   └──▶ 品質管理部へ
役割想定する製品代替候補
OCRAWS Textract(AnalyzeDocument の TABLES・FORMS・QUERIES・SIGNATURES)Azure AI Document Intelligence、Google Document AI
生成AIClaude API(表の列と行の対応付け、問い合わせの下書き)OpenAI API、Gemini API
差異計算Python(単位の換算と、発注仕様との比較)購買管理システムの検査機能
連携AWS Lambda(保存を起点に処理を動かし、一覧を書き出す)Amazon EventBridge
保管Amazon S3(証明書と読み取り結果)社内のファイルサーバー

購買管理システムと発注仕様書は、新しく足すものではありません。 発注書と仕様は読むだけで、この構成から書き込みません。発注仕様書を「成分・試験ごとに1行、上限・下限・単位を列にした表」に直すのが最初の準備作業です。 文章で書かれた仕様のままでは、計算で比べられません。

OCRに AWS Textract を選ぶのは、書類が英文だからです。 対応言語は英語、フランス語、ドイツ語、イタリア語、ポルトガル語、スペイン語で、日本語と中国語は読めません。 手書きの認識は英語だけです。欧州の仕入先がドイツ語と英語を併記した証明書は読めますが、アジアの仕入先が中国語と英語を併記したものは、英語の部分だけが対象になります。

使う機能は4つです。 成分と機械的性質の表は TABLES で、セルごとの行・列の位置と信頼度、列見出しや表の題名の区別を受け取ります。発注番号やヒート番号は FORMS のキーと値、または QUERIES(「What is the heat number?」のような英語の問いに、答えと信頼度を返す機能)で取ります。検査責任者の署名は SIGNATURES で位置を受け取ります。 問いは英語の文書でだけ使える機能で、この題材には合っています。

Textract に人の確認を組み込む Amazon Augmented AI は使いません。 2026年7月から保守モードに入り、新規の受け付けを停止しているためです。人の確認は、判定の一覧の上で行います。

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

Step1

処理の起点を決める

受付フォルダ(Amazon S3)にファイルが保存されたことを起点にします。 ミルシートは船積みの前後にまとまって届くので、1日1回の定時処理にすると、船積みの日の分が翌日にずれ込みます。入荷までの時間を問い合わせに使いたいので、届いたら動かします。

入る経路は、メールの添付を輸入担当が保存するものと、仕入先のポータルから取得したものの2つです。どちらも同じフォルダに入れ、そこから先は区別しません。

処理が終わったファイルは処理済みの場所へ移します。移すのは、判定の一覧への書き出しまで成功したときだけです。 受付フォルダに残っている数が、そのまま未処理の数になります。

Step2

入力データを集める

データ中身取得元
ミルシートPDFまたは画像。受け取った日時、仕入先受付フォルダ
読み取り結果表のセル、キーと値、問いへの答え、署名の位置、信頼度AWS Textract
発注書発注番号、材料規格、寸法、数量、発注仕様書の番号購買管理システム
発注仕様成分・試験ごとの上限・下限・単位、求める証明書の種類発注仕様書(表に直したもの)
仕入先の書き方小数点の書き方、使う単位、成分表の向き自社で用意する仕入先の一覧

質を決めるのは、下の2つです。 発注仕様が表になっていなければ、比べる相手がありません。仕入先の書き方の一覧は、「0,025」を0.025と読むのか、0と025の2つの値と読むのかを決めるために持ちます。 証明書だけからこれを決めようとすると、千の位の区切りと取り違えます。

Step3

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

1ページのPDFは同期処理(AnalyzeDocument)、2ページ以上は非同期処理(StartDocumentAnalysis)で読みます。 同期処理はPDFとTIFFが1ページ・10MBまでで、複数ページのものはS3に置いて処理を始め、完了の通知(Amazon SNS)を受けてから結果(GetDocumentAnalysis)を取ります。非同期の結果は既定で7日間しか取り出せないので、受け取ったらすぐに自社の保管先へ書き出します。

取るものどこから何に使うか
表とセルTABLE・CELL のブロック(RowIndex・ColumnIndex・Confidence)成分と機械的性質の値
列見出し・表の題名セルの EntityTypes(COLUMN_HEADER・TABLE_TITLE)どの列が何の成分かの手がかり
結合されたセルMERGED_CELL のブロック「Chemical Composition (%)」のような見出しの範囲
キーと値KEY_VALUE_SET のブロック発注番号、ヒート番号、証明書の番号
問いへの答えQUERY・QUERY_RESULT のブロック識別情報が表の外にあるときの取り出し
署名SIGNATURE のブロック検査責任者の署名の有無

問いの数には上限があります。 同期処理は1ページ15問まで、非同期処理は1ページ30問までです。識別情報の問いは8問程度に絞り、成分の値は問いではなく表から取ります。 成分を1つずつ問いにすると、上限にすぐ届きます。

発注書と発注仕様は、発注番号で引きます。 証明書の発注番号が読めなかったときは、仕入先とヒート番号から直近の発注を候補として出し、確定は人が行います。

Step4

AIへ渡す前に整形する

  1. 形式の確認 … Textract が受け付けるのはJPEG、PNG、PDF、TIFFです。XFA形式のPDFには対応していません。 対応外の形式はPDFに変換します
  2. パスワードの確認 … パスワードで保護されたPDFは読めません。 仕入先に保護のないものを送り直してもらいます
  3. ページ数とサイズの確認 … 同期処理は1ページ・10MBまで、非同期処理はPDFとTIFFで3,000ページ・500MBまで
  4. 解像度の確認 … 読み取れる文字の高さは15ピクセル以上で、150dpiで8ポイントの文字に当たります。成分表の小さな文字が、この下限に近いことがあります
  5. ヒートごとの分割 … 1枚に複数のヒートが並ぶものは、生成AIの対応付けの段階で行ごとに分けます
  6. 重複の検知 … 同じ仕入先・同じヒート番号の証明書が直近にあれば、再発行か重複かの印を付けます

4番目を軽く見ないでください。 成分表は小さな文字で数字が詰まっていることが多く、「0.08」と「0.03」の読み違いは、そのまま仕様の判定に効きます。 信頼度の低いセルは、値として使わずに人へ回します。

Step5

AIに処理させる

させるのは、表の列と行を「どの成分・どの試験の値か」「単位は何か」に対応付け、値を原文のまま書き出すことだけです。

見るもの書き出す内容判断できないときの扱い
成分の列見出し「C」「Si」「Mn」などの元素と、その列の値見出しが読めなければ unmapped
機械的性質の見出し引張強さ、耐力、伸び、絞り、硬さ、衝撃値と、それぞれの単位単位が書かれていなければ unit_missing
衝撃試験の条件試験温度とその単位、試験片の数温度が書かれていなければ not_stated
識別情報発注番号、ヒート番号、材料規格、寸法、数量候補が複数あれば ambiguous
証明書の種類証明書に書かれた種類の表記(発注で指定したものか)表記がなければ not_stated
規格値の欄どの列が規格値で、どの列が実測値か区別がつかなければ ambiguous

いちばん下の行が、この構成で大事な区別です。 証明書には「Min」「Max」「Actual」のような列が並び、規格値の列を実測値として読むと、どの材料も「合格」になります。 規格値の列は照合には使わず、実測値の列を正しく選ぶためだけに見分けます。

規格値の欄を照合に使わない理由は、もう一つあります。 Textract が検出できる文字の一覧には、「≤」「≥」「±」が含まれていません。「≤0.030」のような規格値の書き方は、記号が落ちて「0.030」だけが読まれることがあります。 上限か下限かが分からなくなるので、仕様値は必ず自社の発注仕様から取ります。

させないこと理由
合格・不合格の判断比較は計算で行う。AIは値を並べるまで
単位の換算換算は Python。AIにさせると係数や桁を誤ることがある
小数点の書き方の解釈仕入先の一覧で決める。証明書だけから推測させない
読めない値の補完近いヒートの値や、規格の典型値で埋めない
信頼度の付け直しOCRが返した値をそのまま使う

4行目がいちばん起きやすい失敗です。 信頼度の低いセルや空のセルがあると、同じ証明書の別のヒートの値や、規格の中央の値で埋めたがります。埋まった瞬間、その値は仕様の判定を通ってしまいます。

Step6

指示内容を固定する

あなたは購買部で、海外の仕入先から届いた英文のミルシートを確認する立場です。
OCRが返した表とキーと値だけを見て、値を書き出してください。推測で埋めないでください。

【やること】
1. 成分の表について、列見出しから元素(C, Si, Mn, P, S, Cr, Ni, Mo など)を特定し、
   ヒートごとに実測値を書き出す
2. 機械的性質の表について、試験の種類(引張強さ、耐力、伸び、絞り、硬さ、衝撃値)と、
   書かれている単位を特定し、実測値を書き出す
3. 衝撃試験の温度と単位、試験片の数を書き出す
4. 発注番号、ヒート番号、材料規格、寸法、数量、証明書の種類の表記を書き出す
5. 表の中で、規格値(Min / Max / Spec など)の列と実測値(Actual / Result など)の
   列を区別し、どの列を実測値として使ったかを書く

【厳守事項】
- value には、証明書に書かれた文字列をそのまま入れてください。
  「0,025」を 0.025 に直さないでください。桁を足したり丸めたりしないでください。
- 単位を換算しないでください。unit には書かれている単位をそのまま入れ、
  書かれていなければ空にして status を unit_missing にしてください。
- 規格値の列の値を、実測値として書き出さないでください。
  区別がつかない場合は status を ambiguous にしてください。
- 読めないセル、空のセルは status を unreadable または missing にしてください。
  別のヒートの値や、規格の典型値で埋めないでください。
- confidence には OCR が返した値をそのまま入れてください。
- 合格・不合格、発注どおりかどうかは書かないでください。
- 1枚に複数のヒートがある場合は、ヒートごとに分けて書き出してください。
- ミルシート以外の書類(梱包明細、請求書など)と判断した場合は、
  書き出しをせず document_type に種類を書いてください。

【OCRの結果(表・キーと値・問いへの答え)】{textract_result}
【この仕入先の書き方(小数点、よく使う単位)】{supplier_profile}

「0,025 を 0.025 に直さない」を明記しないと、親切に直します。 直した値が正しいこともありますが、千の位の区切りとして使っている仕入先で同じことをされると、値が千倍ずれます。 解釈は仕入先の一覧を持つ Python 側で行います。

「単位を換算しない」も同じ理由です。 換算させると、ksi から MPa への係数を使った結果だけが返り、元の値と単位が消えます。 人が確かめるときに、証明書のどの数字から来たのかが追えなくなります。

Step7

出力形式を固定する

次の形のJSONで受け取ります。 Claude API の構造化出力(あらかじめ決めたJSONの形に沿った応答だけを返させる機能)を使い、status の選択肢を enum で固定します。

{
  "document_type": "mill_certificate",
  "identifiers": {
    "po_no": "", "heat_no": "", "material_spec": "", "size": "", "quantity": "",
    "certificate_type_text": ""
  },
  "heats": [
    {
      "heat_no": "",
      "chemical": [
        { "element": "C", "value": "", "unit": "%", "status": "ok | missing | unreadable | unmapped | ambiguous",
          "confidence": 0, "source_column": "" }
      ],
      "mechanical": [
        { "test": "tensile_strength", "value": "", "unit": "", "status": "ok | unit_missing | missing | unreadable",
          "confidence": 0 }
      ],
      "impact": { "temperature": "", "temperature_unit": "", "values": [], "status": "" }
    }
  ],
  "signature_found": false,
  "verdict": "conforming | needs_query | nonconforming_candidate | needs_human",
  "findings": [],
  "query_draft": ""
}

verdict と findings は、生成AIではなく Python の比較が埋めます。

1つ目の理由は、値と判定を別の層に置けることです。 heats はAIが原文のまま埋め、Python が単位と小数点をそろえてから発注仕様と比べます。

比べた結果verdict
全項目が ok で、すべて発注仕様の範囲内conforming
規格の範囲内だが、発注仕様の上限・下限を外れる項目があるnonconforming_candidate
発注仕様で求めた試験が載っていない、単位がない、証明書の種類が違うneeds_query
unreadable・ambiguous・unmapped が1つでもある、または識別情報が発注書と合わないneeds_human

2つ目は、findings に「なぜそうなったか」を項目の単位で残せることです。 「Cr:実測 16.2%、発注仕様 下限 16.5%」のように、元の値と仕様値を並べて書きます。問い合わせの下書きは、この findings からだけ作ります。

3つ目は、source_column と confidence で確認が速くなることです。 どの列を実測値として使ったか、どれくらいの信頼度で読んだかが一覧で分かり、画像を開く前に怪しいセルの見当がつきます。

Step8

システムへ連携する

つなぎ先方式内容
受付フォルダ(Amazon S3)保存を起点に AWS Lambda を動かす新しいファイルを見つけ、処理済みへ移す
AWS TextractAPI呼び出し(同期/非同期)表・キーと値・問いへの答え・署名と信頼度を返す
購買管理システム発注書の書き出しファイルの読み取り発注番号から材料規格・寸法・数量・仕様書番号を引く
発注仕様(表)ファイルの読み取り成分・試験ごとの上限・下限・単位
Claude APIAPI呼び出し列と行の対応付け、問い合わせの下書き
判定の一覧表計算への書き出し1ヒート1行。判定、findings、信頼度

購買管理システムへは書き込みません。 受入の判定を記録するのは品質管理部で、この構成が出すのは照合の結果と候補までです。 自動で「受入済み」にすると、仕様外の材料がそのまま工程に出ていく経路ができます。

問い合わせも下書きまでにします。 送るのは輸入担当です。仕入先との取引の経緯によって、書き方も宛先も変わります。

Step9

人が確認する

人が開くのは、conforming 以外のものです。 conforming のものは、一覧で仕入先とヒート番号を流し見て、品質管理部へ回します。

  1. needs_human を先に見る … 読めなかったセルと、識別情報が合わないものです。多くは画像を開けば数十秒で片付きます
  2. nonconforming_candidate の根拠を確かめる … findings の値が証明書の実測値の列にあるかを、画像で確かめます。規格値の列を読んでいないかを必ず見ます
  3. needs_query の下書きを直して送る … 足りない試験や証明書の種類について、発注仕様書の番号を添えて問い合わせます
  4. 判定を覆したら記録する … どの項目を、どちらに変えたかを残します

2番目を省かないでください。 nonconforming_candidate は、材料を止めるか、仕入先に特別採用(仕様外でも条件付きで受け入れること)を相談するかに直結します。 読み違いで止めた1件は、生産の予定に響きます。

目標は、360枚をならして1枚3分です。 conforming 以外が2〜3割という想定で、それより多い月は、読み取りの信頼度が落ちているか、仕入先の書き方の一覧が古くなっています。

Step10

例外に対処する

起きること対応
パスワードで保護されたPDF読めない。仕入先に保護のないものを依頼
XFA形式のPDF対応外。印刷してPDFにし直すか、仕入先に依頼
中国語・日本語と英語の併記英語の部分だけが対象。成分表の見出しが英語でなければ needs_human
文字が小さすぎる15ピクセルが下限。読めないセルは unreadable で人へ
規格値と実測値の列が区別できないambiguous。仕入先の様式を一覧に登録し、次回から列を指定する
単位が書かれていないunit_missing。仕入先の一覧の既定の単位では埋めず、問い合わせる
発注番号が読めない・合わない仕入先とヒート番号から発注の候補を出し、人が確定
同じヒートの証明書が二度届く再発行か重複かを人が判断。古いほうの判定は残す
非同期の結果を取り損ねた既定で7日を過ぎると取れない。受付フォルダに残し、処理し直す

上から3行目は、アジアの仕入先で起きます。 成分表の見出しが英語で書かれていれば数値は読めますが、注記や試験条件が中国語だけで書かれていると、衝撃試験の温度のような大事な条件が落ちます。

Step11

記録を残す

  • 元のミルシートのファイルと、受け取った日時・仕入先・経路
  • Textract が返したJSONの全文(非同期の結果は7日で消えるので、自社の保管先へ書き出したもの)
  • 生成AIが書き出した値(原文のまま)と、Python が正規化した値
  • 判定に使った発注書と発注仕様の内容と、そのときの仕様の版
  • 人が判定を覆した記録 … どの項目を、どちらに、なぜ変えたか
  • 問い合わせと仕入先の回答、特別採用の記録
  • 仕入先ごとの unreadable と needs_query の発生率

4つ目で「仕様の版」を残すのは、発注仕様が改訂されるためです。 上限を変えた後に過去の判定を見返すと、当時の基準で合っていたのか、今の基準で外れているのかが区別できなくなります。

04実装レベルの3段階

最小構成:PDFを手でAIの画面に渡し、実測値を表にさせて人が発注仕様と比べる / 1枚ごとの値の書き出し
半自動化:上記+受付フォルダを起点に Textract と生成AIを呼び、Python で発注仕様と比べて一覧に書き出す / 読み取り、対応付け、換算、比較、判定の一覧
本格構成:上記+購買管理システムの発注書と自動で照合し、問い合わせの下書きと品質管理部への引き渡しまで出す / 照合の全体と、問い合わせ点の洗い出し

半自動化で、1枚10分が3分程度になります。この段階が本記事の想定です。 残るのは、conforming 以外のものの確認と問い合わせの送信です。本格構成では発注書との照合と品質管理部への引き渡しも自動になりますが、発注書の書き出しの形式を購買管理システムに合わせる作業が要ります。 段階を飛ばさないでください。 半自動化の一覧を1か月見ると、列の対応付けで迷う仕入先と、単位を書かない仕入先が分かります。そこを仕入先の一覧に反映してから本格構成に進むほうが、needs_human が減ります。

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

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

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

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

AI活用について相談する

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

向いている
  1. 海外の鋼材メーカー・鍛造メーカー・商社から鋼管・棒鋼・鍛造品などを輸入し、英文のミルシート(材料証明書)が月に数百枚届く製造業・商社・プラント建設など。発注仕様で化学成分や機械的性質を規格より厳しく指定しており、規格に合っているだけでは受け入れられない場合。仕入先が10社以上あり、証明書の様式・単位・数値の書き方が仕入先ごとに違う場合。
向いていない
  1. 証明書が日本語、または日本語と英語の併記で届く場合(この構成のOCRは日本語を読めません)。仕入先が数社に限られ、成分値を電子データで受け取れる場合。証明書を保管するだけで、発注仕様との照合をしていない場合。受入の合否そのものを自動で確定させたい場合(確定は人が行う前提の構成です)。

07最小構成で試す方法

  1. 先月届いたミルシートから20枚を選ぶ(欧州・北米・アジアの仕入先を混ぜ、仕様外で問い合わせたものを数枚入れる)
  2. 20枚について、当時の照合の結果と、問い合わせた内容を一覧にしておく
  3. 手元のAIサービスの画面に、ミルシートのPDFを1枚ずつ渡す
  4. 「このミルシートの成分と機械的性質の実測値を、書かれた文字と単位のまま表にしてください。規格値の列は使わないでください。換算や丸めをしないでください」と指示する
  5. 出てきた表を、自分で発注仕様と比べ、当時の照合の結果と突き合わせる

20枚は必ずやってください。 仕組みを組む前に、「実測値の列を正しく選べるか」を確かめます。

出てきた内容判断
実測値が原文どおりに並び、当時の結果と同じ所見になったOCRと照合の組み立てに進む
小数点のカンマや単位を勝手に直した指示の書き方で直る。構成は有効
規格値の列を実測値として読んだ仕入先ごとの様式の登録が先。 AIだけの問題ではない

3行目が出たら、その仕入先の様式を一覧に登録します。 「Actual」の列が何列目かを決めておけば、次からは迷いません。

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

問題対策
規格値の列を実測値として読む列を区別させ、仕入先ごとに実測値の列を登録する
規格値の「≤」「≥」が落ちる検出できる文字に含まれない。仕様値は自社の発注仕様から取る
「0,025」を別の値に読む仕入先の一覧で小数点の書き方を決め、AIには原文のまま書き出させる
ksi・°F のまま比べる換算は Python で行い、単位が空のものは比べない
読めないセルを他の値で埋める補完を禁じ、unreadable は判定に使わない
複数ページで同期処理が失敗する同期は1ページまで。2ページ以上は非同期処理に回す
非同期の結果が取れなくなる既定で7日。受け取ったらすぐに自社の保管先へ書き出す
問いの数が上限に届く同期15問・非同期30問/ページ。成分は問いではなく表から取る
パスワード付きのPDFで止まる読めない。仕入先に保護のないものを依頼する
中国語の注記の条件が落ちる英語以外は対象外。衝撃試験の条件が読めなければ人へ
人の確認に Amazon Augmented AI を使おうとする新規の受け付けを停止。判定の一覧の上で確認する
問い合わせを自動で送る下書きまでにする。 送信は人が行う

上の2行が、この構成の失敗のほとんどです。 どちらも「証明書に印刷された規格値」から出発しています。照合の相手を自社の発注仕様に置けているかで、運用に乗るかが決まります。

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

この構成で扱うデータ: 仕入先の名称、発注番号、材料と数量、発注仕様(自社の追加要求)です。個人情報はほとんど含みませんが、発注仕様は自社製品の設計に関わる情報です。

  1. 外部へ渡す範囲を、照合に必要な項目までに限る … 生成AIに渡すのはOCRの結果と仕入先の書き方までにし、発注仕様そのものは生成AIに渡さず、比較は Python の側で行います
  2. 受入の合否を自動で確定しない … この構成が出すのは候補までです。受入を判定するのは品質管理部で、conforming を受入済みとして扱わないでください
  3. 問い合わせを自動で送らない … 仕入先との関係と、特別採用の交渉に関わります。送るのは輸入担当です
  4. 証明書の原本を残す … 判定のもとになったPDFと、Textract の結果を保管します。非同期の結果は既定で7日で取れなくなるため、自社の保管先への書き出しを忘れないでください
  5. 読み取りの結果を品質記録の代わりにしない … 品質記録として残すのは、人が確かめた後の判定です。AIの書き出しは、確認の材料の一つとして扱います

誤りが起きた場合のリスクは、仕様外の材料を通すことと、仕様どおりの材料を止めることの2つです。 前者は規格値の列を読むと起き、後者は小数点や単位を読み違えると起きます。どちらも「値は原文のまま、判定は計算で」という区別で防ぎます。

10まず何から始めるか

1週目:発注仕様を表に直す

よく発注する材料の上位10種類について、発注仕様書を成分・試験ごとに1行、上限・下限・単位を列にした表に直します。規格より厳しくしている項目に印を付けます。

2週目:20枚で試す

先月のミルシートから20枚を選び、手元のAIサービスで実測値を表にさせます。規格値の列を読んでいないか、小数点や単位を勝手に直していないかを最優先で見ます。

3週目:仕入先の一覧を作る

15社について、小数点の書き方、よく使う単位、実測値の列の位置を一覧にします。 ここが決まらないうちに仕組みを組むと、同じ仕入先で毎回 needs_human が出ます。

4週目:受付フォルダから一覧までをつなぐ

S3 の受付フォルダを起点に Textract と生成AIを呼び、書き出した値を一覧にするところまで作ります。この時点では verdict を出さず、値の一覧だけを見ます。

2か月目: Python の換算と比較を足し、verdict と findings を出します。3か月目以降: 問い合わせの下書きと購買管理システムとの照合を足し、1枚10分が何分になったかを実測します。仕入先ごとの needs_human の発生率が下がり、問い合わせが入荷の前に出せるようになった時点で、この構成は完成です。


11関連ユースケース

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

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

技術仕様確認日:2026-09-29/最終更新:2026-09-30
確認した内容情報源確認日
受け付ける形式がJPEG、PNG、PDF、TIFFで、XFA形式のPDFに対応しないこと。同期処理が10MB・PDFとTIFFで1ページまで、非同期処理がPDFとTIFFで500MB・3,000ページまでであること。パスワード付きPDFを扱えないこと。問いが同期で1ページ15問、非同期で30問までであること。対応言語が英・仏・独・伊・葡・西で、問いは英語の文書だけで使えること。縦書きに対応しないこと。文字の高さの下限が15ピクセル(150dpiで8ポイント)であること。手書きの認識が英語だけであること。検出できる文字の一覧AWS: Amazon Textract の固定のクォータ2026-09-29
AnalyzeDocument の FeatureTypes(TABLES・FORMS・QUERIES・SIGNATURES・LAYOUT)。キーと値、表とセル、署名、問いと答え(信頼度つき)のブロック。同期処理であり、非同期は StartDocumentAnalysis を使うこと。Amazon Augmented AI が2026年7月に保守モードに入り新規の受け付けを停止したことAWS: AnalyzeDocument2026-09-29
表のセル、結合されたセル、列見出し、表の題名・脚注が区別されて返ること。セルの RowIndex・ColumnIndex と信頼度AWS: Tables2026-09-29
非同期処理がS3の文書を対象に、完了を Amazon SNS に通知し、Get の操作で結果を取ること。結果が既定で7日間保管され、7日を過ぎると取り出せないことAWS: 非同期処理の呼び出し2026-09-29
構造化出力でJSONスキーマに沿った応答を返させられること。enum が使えることClaude: Structured outputs2026-09-29

どの項目を受入の条件とするか、仕様外のものを特別採用とするかは、自社の品質管理部と購買部で決めてください。 本記事は上記の公開情報で確認できた範囲だけを扱っています。

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

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

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

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