Media > AI活用ユースケース > 生産 > 水産加工会社が海外の加工委託先から毎月届く英文の加工報告とパッキングリストを読み取り、ロットごとの歩留まりの台帳と契約の歩留まりとの差の一覧を作る

水産加工会社が海外の加工委託先から毎月届く英文の加工報告とパッキングリストを読み取り、ロットごとの歩留まりの台帳と契約の歩留まりとの差の一覧を作る

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

海外の加工委託先からロットごとに届く加工報告とパッキングリストを読み取り、歩留まりの台帳に写します。契約の歩留まりと支給した原料の重量に照らし、精算で問い合わせるロットを一覧にします。

サマリー
AIサービス
AWS Textract/Azure AI/Google Document AI
連携・自動化
Python
対象業界
商社/製造
対象部門
生産/経理
対象業務
データ入力・転記/内容確認・チェック
主な課題
入力作業が多い/判断に時間がかかる/確認ミスが多い
AIで行う処理
抽出
主な効果
入力漏れ削減/判断支援/工数削減
導入難易度
★★★☆☆
実装レベル
半自動化
費用感
API連携(中)
人間の確認
必須
現在工数
20h/月
AI導入後
4h/月
想定削減
80%
年間削減
192h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. 生産管理の担当者が、メールで届いた加工報告とパッキングリストのPDFを委託先ごとのフォルダに保存する
  2. 加工報告を開き、原料の重量と規格ごとの製品の重量を台帳に写す
  3. パッキングリストの箱の数と1箱の重量から、製品の重量を計算し直し、加工報告と見比べる
  4. グレーズ込みの重量なら、グレーズの率で正味に直す
  5. 正味の製品の重量を原料の重量で割り、契約の歩留まりと比べる
  6. 支給の記録の出荷した重量と、加工場が受け入れた重量を比べる
  7. 契約を外れたロットを一覧にし、経理の担当者と精算の問い合わせを準備する
導入後(After)
  1. 人生産管理の担当者が、加工報告とパッキングリストのPDFを受付のフォルダに保存する(メールの自動振り分けでも可)
  2. 自動保存をきっかけに、形式・サイズ・パスワードの有無を確かめ、ファイル名から委託先とロットを見分ける
  3. 自動AWS Textract で、報告の表・項目と値・問いへの答え・署名の有無を読む
  4. 自動委託先ごとの項目の対応表で、規格の名前と重量の欄を共通の項目に直す
  5. 自動重量の単位と、グレーズ込みか正味かを決め、正味の kg にそろえる
  6. 自動箱の数×1箱の正味重量と、報告の製品の重量を照らす
  7. 自動歩留まりを出し、契約の歩留まりと、支給の記録の重量に照らす
  8. 人生産管理の担当者が `ok` 以外のロットだけを開き、PDFの画像で値を確かめる
  9. 人経理の担当者と、精算で問い合わせるロットを決める
  10. 人委託先に問い合わせ、返事を台帳に残す
各工程の詳しい説明を読む
  1. 生産管理の担当者が、メールで届いた加工報告とパッキングリストのPDFを委託先ごとのフォルダに保存する
  2. 加工報告を開き、原料の重量と規格ごとの製品の重量を台帳に写す
  3. パッキングリストの箱の数と1箱の重量から、製品の重量を計算し直し、加工報告と見比べる
  4. グレーズ込みの重量なら、グレーズの率で正味に直す
  5. 正味の製品の重量を原料の重量で割り、契約の歩留まりと比べる
  6. 支給の記録の出荷した重量と、加工場が受け入れた重量を比べる
  7. 契約を外れたロットを一覧にし、経理の担当者と精算の問い合わせを準備する

(a)グレーズ込みか正味か。 パッキングリストに「Net Weight」と書かれていても、グレーズを含めた重量を正味と呼ぶ委託先があります。 見出しだけで決めると、歩留まりがグレーズの分だけ高く出ます。

(b)単位の混在。 kg で書く委託先と lb で書く委託先、1箱の重量を kg で書いて合計を lb で書く書類もあります。単位を見ずに写すと、歩留まりが半分以下か倍以上になり、 大きすぎる差は気づけても、小さな取り違えは残ります。

(c)受け入れた原料の重量の定義。 解凍前の重量か解凍後の重量かで、原料の重量が変わります。どちらで歩留まりを取り決めたかは、契約の担当者が覚えています。

(d)支給の記録との食い違い。 出荷した重量と加工場が受け入れた重量の差は、輸送中のことか、量り方の違いか、書き違いか。ロットが多い月ほど、差を確かめるのが精算の直前になります。

  1. 【人】 生産管理の担当者が、加工報告とパッキングリストのPDFを受付のフォルダに保存する(メールの自動振り分けでも可)
  2. 【自動】 保存をきっかけに、形式・サイズ・パスワードの有無を確かめ、ファイル名から委託先とロットを見分ける
  3. 【自動】 AWS Textract で、報告の表・項目と値・問いへの答え・署名の有無を読む
  4. 【自動】 委託先ごとの項目の対応表で、規格の名前と重量の欄を共通の項目に直す
  5. 【自動】 重量の単位と、グレーズ込みか正味かを決め、正味の kg にそろえる
  6. 【自動】 箱の数×1箱の正味重量と、報告の製品の重量を照らす
  7. 【自動】 歩留まりを出し、契約の歩留まりと、支給の記録の重量に照らす
  8. 【人】 生産管理の担当者が ok 以外のロットだけを開き、PDFの画像で値を確かめる
  9. 【人】 経理の担当者と、精算で問い合わせるロットを決める
  10. 【人】 委託先に問い合わせ、返事を台帳に残す

5番目と6番目が、この設計の分かれ目です。 重量の基準が決まらない値は割り算に使いません。決まらないまま割ると、精算の根拠がもっともらしい誤りになります。

7番目で照合を規則の表に置いているのも、意図してのことです。 契約の歩留まりは規格ごと・委託先ごとに違い、契約を改めても、直すのは表だけです。

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

構成図
加工報告・パッキングリスト(英文のPDF。一部は手書きの重量)
   │  生産管理の担当者が受付フォルダへ保存
   ▼【トリガー】Amazon S3 への保存
AWS Lambda
   ├──▶ 形式・サイズ・パスワードの確認、委託先とロットの見分け
   ▼
AWS Textract(StartDocumentAnalysis。TABLES・FORMS・QUERIES・SIGNATURES)
   │   表のセルと列の見出し・合計の行、項目と値、問いへの答え、署名、信頼度、手書きか印字か
   ▼
AWS Lambda(Python)
   │   ① 項目の対応表で規格と重量の欄を共通の項目に直す
   │   ② 単位とグレーズの扱いを決め、正味の kg にそろえる
   │   ③ 箱の数×1箱の重量と製品の重量を照らす
   │   ④ 歩留まりを出し、契約と支給の記録に照らす
   ▼
ロットごとの判定(ok / below_contract / weight_gap / needs_review)
   ▼
【人が ok 以外のロットだけ確認】
   ├──▶ ロットごとの歩留まりの台帳
   └──▶ 契約の歩留まりとの差の一覧(精算の問い合わせの候補)
役割想定する製品代替候補
OCRAWS Textract(StartDocumentAnalysis の TABLES・FORMS・QUERIES・SIGNATURES)Azure AI Document Intelligence、Google Document AI
差異計算項目の対応、単位とグレーズのそろえ、箱の照合、歩留まりと契約の照合(Python。AWS Lambda で動かす)─
連携AWS Lambda(S3 への保存を起点に読み取りを始め、結果を一覧に書く)Amazon EventBridge
保管Amazon S3(報告と読み取りの結果)社内のファイルサーバー
通知Amazon SNS(読み取りの完了と要確認の知らせ)社内のチャット

支給の記録と委託の契約の表は、新しく足すものではありません。 新しく作るのは、委託先ごとの項目の対応表です。報告に書かれる欄の名前と共通の項目、重量の単位、パッキングリストの重量がグレーズ込みか正味か、原料の重量が解凍の前か後かを、委託先ごとに並べた表です。

報告は、AWS Textract の文書の解析で読みます。 規格ごとの製品の重量は表(TABLE・CELL)として、ロット番号や加工の日のような項目と値の組はフォーム(KEY_VALUE_SET)として、加工場の担当者の署名は SIGNATURE として返ります。単語ごとに、印字か手書きか(TextType)も返ります。

AWS Textract は日本語を読めず、手書きの文字は英語でしか読めません。 対応する言語は英語・フランス語・ドイツ語・イタリア語・ポルトガル語・スペイン語です。委託先の報告が英文であることが、この構成の前提です。 現地の言葉の書き込みがある報告は、その欄を人に回します。

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

Step1

処理の起点を決める

受付フォルダ(Amazon S3 のバケット)に加工報告かパッキングリストのPDFが保存されたことを起点にします。 書類は加工が終わって船積みするときに、ロットごとに届きます。製品が日本に着く前に差を出しておけば、着いた製品の重量を量り直すロットを先に決められます。

ファイル名の先頭に、委託先の略号とロット番号と書類の種類を付けます。 委託先が分かれば、項目の対応表を最初から正しく選べます。加工報告とパッキングリストはロットで組にし、 両方がそろってから照合を始めます。

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

Step2

入力データを集める

データ中身取得元
加工報告ロット番号、加工の日、受け入れた原料の重量、規格ごとの製品の重量、副産物の重量、検品した者、署名受付フォルダ
パッキングリスト規格ごとの箱の数、1箱の重量、合計の重量、グレーズの率、重量の単位受付フォルダ
読み取り結果表のセルと列の見出し・合計の行、項目と値、問いへの答え、署名、信頼度と、印字か手書きかAWS Textract
支給の記録ロット番号、魚種、出荷した重量(解凍前)、出荷の日生産管理部の表
委託の契約の表製品の規格ごとの契約の歩留まり、加工賃の単価と払う重量の基準、グレーズの率、差の許す幅生産管理部の表
項目の対応表委託先ごとの欄の名前と共通の項目、単位、グレーズの扱い、原料の重量の定義自社で整える表

質を決めるのは、項目の対応表の「グレーズの扱い」の列です。 パッキングリストの見出しに「Net Weight (excl. glaze)」のように書かれていればそれに従い、書かれていなければ対応表に従い、どちらでも決まらなければ決めません。

原料の重量の定義も、対応表に1列持たせます。 加工場が受け入れた重量を解凍の前に量るか後に量るかで、同じ原料でも重量が変わります。 契約の歩留まりをどちらで取り決めたかを、契約の表と合わせておきます。

副産物の重量は、照合の補助に使います。 製品と副産物の重量の合計が原料の重量から大きく離れていれば、どこかの欄の読み違いか、報告の書き違いの疑いがあります。

Step3

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

報告は1ページから数ページなので、ページ数によらず非同期の StartDocumentAnalysis に S3 の場所を渡し、FeatureTypes に TABLES・FORMS・QUERIES・SIGNATURES を指定して読みます。 返った JobId を控え、完了の知らせが Amazon SNS に届き、状態が SUCCEEDED であることを確かめてから GetDocumentAnalysis で結果を取ります。

取るものどこから何に使うか
規格ごとの製品の重量TABLE の CELL歩留まりの分子
箱の数・1箱の重量パッキングリストの TABLE の CELL製品の重量の検算
合計の行EntityTypes が TABLE_SUMMARY のセル行の合計との照合
原料の重量・ロット番号KEY_VALUE_SET、QUERY_RESULT歩留まりの分母、台帳の行
署名SIGNATURE検品した者の署名の有無
印字か手書きかWORD の TextType手書きの重量の扱いを分ける

問い(Queries)は英語の文書でだけ使えます。 委託先の報告は英文なので使えます。問いは対象のページを指定しないと1ページ目にしか当たらず、 原料の重量が2ページ目の集計に書かれる委託先もあるため、その委託先だけ Pages に * を指定します。どの委託先がそうかは、対応表に持たせます。

同じ ClientRequestToken で読み取りを始めれば、同じ JobId が返ります。 ファイル名から作った値を渡しておけば、再試行で同じファイルを二度読まずに済みます。JobId は7日間だけ有効なので、 結果は取った時点で S3 に残します。

Step4

AIへ渡す前に整形する

  1. 形式の確認 … JPEG・PNG・PDF・TIFF のいずれかであることを確かめます。加工場で撮った報告の写真も、そのまま読めます
  2. パスワードの確認 … パスワードで保護された PDF は読めません。解除した版を委託先に頼みます
  3. 画像と文字の大きさ … 各辺10,000ピクセル以下、文字の高さは15ピクセル(150 DPI で8ポイント相当)が下限です。冷凍庫の前で撮った写真は、霜や手ぶれで文字がつぶれがちです
  4. 組の確認 … 同じロットの加工報告とパッキングリストがそろっているかを見ます。片方だけなら照合を待ちます
  5. 重複の確認 … 委託先とロット番号が同じものは重複として外します。訂正の版が届いたときは、両方を残して人が選びます
  6. 単位の確認 … 対応表の単位と、表の見出しの「kg」「lbs」を照らします。両方が食い違えば、そのロットを unit_conflict として人に回します

6番目を省かないでください。 1ポンドはおよそ0.45キログラムで、単位を取り違えた歩留まりは、半分以下か倍以上になります。 大きすぎる差は目立ちますが、合計だけが lb で書かれた書類のように一部の欄だけが違うと、差が小さく出て見逃します。

Step5

AIに処理させる

させるのは、報告とパッキングリストから決まった項目の値を取り出し、欄の名前・単位・信頼度・印字か手書きかを添えることだけです。 単位とグレーズのそろえ、箱の照合、歩留まりの計算と契約の照合は、取り出した後に Python の規則が行います。

取り出す項目どこから取り出せないときの扱い
ロット番号・加工の日問いへの答え、フォーム空なら台帳の行を決められず needs_review
受け入れた原料の重量フォーム、問いへの答え空なら歩留まりを出さない。needs_review
規格ごとの製品の重量表のセル空なら missing。0とはみなさない
箱の数・1箱の重量・グレーズの率パッキングリストの表空なら箱の照合をしない
副産物の重量・署名表のセル、署名署名が無ければ一覧に印を付ける
させないこと理由
グレーズの扱いの推測グレーズ込みで割ると、足りないロットが足りて見える
単位の推測lb を kg と読むと歩留まりが倍以上になる
原料の重量を支給の記録で埋める輸送中の減りや量り方の差が消える
歩留まりの低さの理由の判断原料の大きさ・鮮度・加工の腕のどれかは画像からは分からない
精算の請求の可否の決定契約と取引の関係を見て経理部と生産管理部が決める

3行目がいちばん起きやすい失敗です。 報告に原料の重量が無いとき、手元の出荷した重量で割りたくなります。そうすると、加工場が受け入れた時点の差が消え、 輸送中に減ったのか、加工で減ったのかが分からなくなります。

Step6

指示内容を固定する

文書の解析そのものには指示を書く場所がありません。AWS Textract に渡すのは文書と問い(Queries)で、判定の指示にあたるものは読み取った後の規則として持ちます。 問いは次の4つです。

【問い(Queries。英文の報告)】
1. Alias: LOT_NO        Text: What is the lot number?
2. Alias: RAW_WEIGHT    Text: What is the total raw material weight received?
3. Alias: PROCESS_DATE  Text: What is the processing date?
4. Alias: GLAZE         Text: What is the glaze percentage?
【読み取った値の扱いの決まり】
1. 値が空の項目は missing とする。0 や支給の記録の値で埋めない。
2. 信頼度が決めた値を下回る値は unreadable とし、値は参考として残す。
3. 欄の名前は、その委託先の対応表だけで共通の項目
   (raw_weight, product_weight, byproduct_weight, cartons,
     weight_per_carton, glaze_pct)に直す。表に無い名前は unknown_item とする。
4. 単位は表の見出しの印、無ければ対応表で決める。
   両方あって食い違えば unit_conflict とし、計算に使わない。
5. パッキングリストの重量がグレーズ込みか正味かは、見出しの語、
   無ければ対応表で決める。どちらでも決まらなければ needs_review とし、
   歩留まりを出さない。
6. グレーズ込みの重量は、契約の表のグレーズの率で正味に直す。
   報告のグレーズの率が契約と違えば glaze_diff とする。
7. 箱の数 × 1箱の正味重量 と、報告の製品の正味重量の差が
   決めた幅を超えたら carton_mismatch とする。どちらの値も直さない。
8. 歩留まりは、規格ごとの製品の正味重量 ÷ 受け入れた原料の重量
   × 100 とし、小数1桁で残す。
9. 受け入れた原料の重量と、支給の記録の出荷した重量の差が
   決めた幅を超えたら weight_gap とする。
10. 英語でない手書きの書き込みは照合に使わず、欄の文字を一覧に写す。

4番目と5番目が、この構成の罠です。 どちらも「たぶんこうだろう」で埋めたくなる箇所で、埋めた瞬間に、誤った歩留まりが精算まで通ります。 決まらない委託先は、対応表に書き方を足せば次のロットから決まります。

6番目で、報告のグレーズの率をそのまま使わないのも理由があります。 グレーズの率は契約で決めた値で、報告の値が違えば、それ自体が問い合わせの候補です。

Step7

出力形式を固定する

次の形の JSON で一覧に書き出します。

{
  "processor_code": "PR-VN-01",
  "lot_no": "",
  "process_date": "2026-09-18",
  "raw_weight_kg": 0,
  "raw_weight_basis": "before_thaw | after_thaw",
  "products": [
    { "spec": "fillet_skinless_boneless", "weight_raw": "", "unit": "kg | lb",
      "glaze_basis": "net | with_glaze", "net_kg": 0, "yield_pct": 0,
      "contract_yield_pct": 0, "diff_pt": 0,
      "status": "ok | below_contract | missing | unreadable | needs_review",
      "text_type": "PRINTED", "confidence": 0 }
  ],
  "checks": {
    "carton": "ok | carton_mismatch | not_checked",
    "glaze": "ok | glaze_diff | not_checked",
    "supply_weight": "ok | weight_gap | not_checked",
    "unit": "ok | unit_conflict"
  },
  "signature_found": true,
  "verdict": "ok | query_processor | needs_review"
}

1つ目の理由は、元の文字と直した重量を並べて残せることです。 weight_raw と unit と glaze_basis と net_kg が並んでいれば、どの基準でどう直したかを、画像を開く前に読めます。

2つ目は、差を「どこで減ったか」に分けて持てることです。 supply_weight は輸送と受け入れの差、yield_pct は加工の差です。精算の問い合わせでは、どちらの差かで相手に聞くことが変わります。

条件verdict
すべての規格が契約の歩留まりを満たし、checks がすべて okok
below_contract・weight_gap・glaze_diff・carton_mismatch があるquery_processor
needs_review・missing・unreadable・unit_conflict があるneeds_review

below_contract は請求の決定ではありません。 契約の許す幅を外れたことの記録で、問い合わせるかどうかは人が決めます。

Step8

システムへ連携する

つなぎ先方式内容
受付フォルダAmazon S3 の保存のイベントLambda を起動する
AWS Textract非同期の API 呼び出し報告の表・項目・問い・署名の読み取り
Amazon SNS完了の知らせ状態を確かめて結果を取る
支給の記録・委託の契約の表スプレッドシートの読み取り出荷した重量、契約の歩留まり、グレーズの率
項目の対応表スプレッドシートの読み取り欄の名前、単位、グレーズの扱い
歩留まりの台帳人が確かめた後の取り込みロットの行
差の一覧判定の書き出し精算の問い合わせの候補

歩留まりの台帳には自動で書き込みません。 グレーズの扱いを取り違えた値が台帳に入ると、委託先ごとの歩留まりの傾向を誤って読み、 次の契約の歩留まりの取り決めまで狂います。経理の精算の仕組みにもつなぎません。

Step9

人が確認する

人が開くのは ok 以外のロットだけです。 ok のロットは一覧で流し見て台帳に取り込みます。全件を開く設計にすると、第10章の4.0時間には収まりません。

  1. needs_review を先に見る … 単位、グレーズの扱い、手書きの重量を、画像で確かめます。決めた書き方は対応表に足します
  2. weight_gap を確かめる … 出荷した重量と受け入れた重量の差を、解凍の前後の定義と輸送の記録で確かめます
  3. below_contract を経理と見る … 契約の許す幅と、同じ委託先の前後のロットの歩留まりを見て、問い合わせるかを決めます
  4. 製品が着いたら量り直すロットを決める … glaze_diff と carton_mismatch のロットは、着いた箱の正味重量を量り直す候補にします

3番目は、仕組みでは置き換えられません。 原料の魚の大きさや季節で歩留まりは動き、委託先との長い取引の中で、どこまでを精算の対象にするかを決めることです。

目標は、40件をならして1件6分です。 それを超える月は、項目の対応表の単位とグレーズの列が足りていません。

Step10

例外に対処する

起きること対応
パスワードで保護された PDF読めない。解除した版を頼む
単位が見出しと対応表で食い違うunit_conflict。計算に使わず人が決める
グレーズの扱いが決まらないneeds_review。委託先に確かめ、対応表に足す
原料の重量が書かれていない歩留まりを出さない。支給の記録で埋めない
1つのロットが2つの船積みに分かれるパッキングリストを合わせてから照らす。合わせられなければ人へ
規格の名前が対応表に無いunknown_item。似た規格に寄せない
副産物を含めた合計が原料の重量を超える欄の読み違いを疑い、needs_review
現地の言葉の手書きの書き込みがある照合に使わず、欄の文字を一覧に写して人へ
読み取りが失敗した、または JobId が切れた受付フォルダに残し、読み直す。処理済みへ移すのは成功時だけ

大半は AI の精度ではなく、書類の書き方の揺れと、対応表の整い方の問題です。

Step11

記録を残す

  • 元の加工報告とパッキングリスト、受け取った日時・委託先・ロット
  • AWS Textract が返した JSON の全文と JobId
  • ロットごとの判定と、そのとき参照した対応表・契約の表の版
  • 人が値や判定を直した記録 … どの欄を、どう読み直したか
  • 委託先への問い合わせの内容と返事、精算の結果
  • 製品が着いた後に量り直した正味重量(品質管理の担当者が後から足す)
  • 委託先ごと・規格ごとの歩留まりの推移

6つ目を足していくと、委託先の報告と自社で量り直した重量の差が見えてきます。 差の大きい委託先のロットは、量り直す候補を広げる材料になります。

04実装レベルの3段階

最小構成:コンソールで報告を読み取り、スプレッドシートで台帳の値と並べる / 読み取りと、重量の欄と基準の取れ方の確かめ
半自動化:上記+S3 への保存を起点に読み取り、単位とグレーズのそろえ・箱の照合・歩留まりと契約の照合を一覧に書き出す / 読み取り・転記の案・照合
本格構成:上記+製品が着いた後に量り直した重量と並べ、委託先ごとの差の傾向を毎月一覧にする / 報告の確からしさの見極め

最小構成では件数がさばけません。 1通ずつ読ませるので、月40件には使えません。確かめるための段階です。 半自動化で、1件30分が6分になり、この段階が本記事の想定です。 台帳への転記、単位とグレーズの直し、歩留まりの計算と契約の照合は自動になり、人は ok 以外のロットだけを見ます。差が大きいのは、書式の違う書類から重量を探して写す作業がまるごとなくなるからです。 本格構成は、着いた製品の重量を毎ロット量っている場合に向きます。

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

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

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

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

AI活用について相談する

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

向いている
  1. 原料の魚・いか・えびなどを海外の加工場に支給し、切り身・骨取り・むき身などに加工してもらって輸入している水産加工会社・水産物の商社。委託先から英文の加工報告とパッキングリストがロットごとに届き、歩留まりを台帳に写して契約の歩留まりと見比べ、加工賃や原料の不足分の精算をするのに手間がかかっている場合。
向いていない
  1. 加工を委託せず、製品を買い付けるだけの場合(歩留まりの精算がありません)。委託先が数ロットで、目で見て写しても負担にならない場合。報告が日本語や中国語・ベトナム語で届く場合(AWS Textract は日本語・中国語・ベトナム語を読めません)。なお、製品の品質・衛生の判断、輸入の手続き、委託先への請求の可否の決定は、この構成では行いません。

07最小構成で試す方法

  1. 先月の書類から10ロット分を選ぶ(lb で書かれたもの、グレーズ込みの重量のもの、手書きの重量のものを必ず入れる)
  2. その10ロットについて、当時台帳に写した重量と歩留まり、精算で問い合わせた内容を書き出す
  3. AWS Textract のコンソールで、表・フォーム・問い・署名の解析を1通ずつかける
  4. 返った値を台帳の値と並べ、原料と製品の重量、箱の数、グレーズの率、単位が取れているかを見る
  5. 取れなかった項目を並べ、項目の対応表の下書きを委託先ごとに作る

10ロットは必ずやってください。 Lambda を組む前に、「規格ごとの重量が表として返るか」と「グレーズの扱いが書類のどこから決まるか」を確かめます。

出てきた内容判断
規格ごとの重量が表のセルで返り、グレーズの扱いも見出しから決まる対応表を作り、S3 と Lambda の連携に進む
重量が項目と値の組で返る対応表にフォームの欄の名前を足す。構成は有効
グレーズの扱いがどの書類にも書かれていない委託先に書き方を頼むのが先。 読み取りの問題ではない

3行目は珍しくありません。 失敗ではなく、担当者が経験で補っていた重量の基準が、書類そのものには書かれていなかったと分かったということです。

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

問題対策
グレーズ込みの重量で歩留まりを出す扱いが決まらなければ歩留まりを出さない
lb を kg として読む見出しと対応表を照らし、食い違えば人へ
原料の重量を支給の記録で埋める埋めない。差は weight_gap で別に持つ
箱の数×1箱の重量と合計が合わないどちらも直さず carton_mismatch
原料の重量が2ページ目にあって問いが空になるその委託先だけ Pages に * を指定する
現地の言葉の書き込みを読ませる対応は6言語のみ。人に回す

上の2行が、この構成の失敗のほとんどです。 どちらも重量の基準の取り違えで、差の一覧の上では、歩留まりがよいロットに見えます。

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

この構成で扱うデータ: 委託先の名前、ロットごとの原料と製品の重量、契約の歩留まりと加工賃の単価です。個人情報はほとんど含みませんが、契約の歩留まりと加工賃は、委託先との交渉の材料そのもので、他の委託先に知られたくない情報です。

  1. 契約の情報を一覧の外に出さない … 差の一覧は生産管理部と経理部だけが見ます。委託先への問い合わせに、他の委託先の歩留まりや単価を書かないでください
  2. S3 の結果を暗号化する … StartDocumentAnalysis に KMS の鍵を渡せば出力をその鍵で暗号化でき、渡さないときは SSE-S3 です
  3. 歩留まりの差を、品質の判断の代わりにしない … 歩留まりが契約を満たしていても、骨の残りや色の変化は分かりません。製品の品質と衛生の確認は、着いた製品の検品で行ってください
  4. 表示の重量と精算の重量を混ぜない … Codex の規格では、グレーズを付けた食品の正味の量はグレーズを除いて示すとされ、グレーズを除いた重量の量り方も示されています。精算の重量を何で取り決めたかと、表示の重量は別に確かめてください
  5. 精算の請求は人が決める … query_processor は確認の入口です。請求するかどうかは、契約と取引の関係を見て決めてください

誤りのリスクは、歩留まりが足りないロットを見逃すことと、足りているロットを誤って問い合わせることの2つです。 どちらも重量の基準の取り違えから起きるため、基準が決まらない重量を割り算に使わない決まりで防ぎます。

10まず何から始めるか

1週目:契約の表を機械で読める形にする

委託の契約を、規格ごとの契約の歩留まり、許す幅、グレーズの率、加工賃を払う重量の基準、原料の重量の定義として1つの表にまとめます。

2週目:10ロットで試す

先月の10ロット分を AWS Textract のコンソールで読ませます。規格ごとの重量が表で返るか、単位とグレーズの扱いが書類のどこから決まるかを最優先で見ます。

3週目:項目の対応表を作る

ロットの多い委託先から、欄の名前、単位、グレーズの扱い、原料の重量が解凍の前か後かを1行ずつまとめます。書き方が決まらない委託先には、パッキングリストにグレーズを除いた正味の重量を書いてもらうよう頼みます。

4週目:受付から転記の案までをつなぐ

S3 への保存を起点に読み取りを始め、正味の kg にそろえた重量の一覧を書き出すところまで作ります。この時点では契約の照合をせず、値の取れ方だけを見ます。

2か月目: 箱の照合、歩留まりと契約の照合、支給の記録の照合を足します。3か月目以降: 着いた製品の量り直しの値を台帳に足していき、1件30分が何分になったかを実測します。needs_review が月に数件まで減り、精算の問い合わせを製品の着く前に送れるようになった時点で、この構成は完成です。


11関連ユースケース

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

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

技術仕様確認日:2026-10-29/最終更新:2026-10-29
確認した内容情報源確認日
対応形式が JPEG・PNG・PDF・TIFF。同期は10MB・PDF 1ページまで、非同期は PDF 500MB・3,000ページまで。PDF はパスワード保護不可。各辺10,000ピクセル以下。対応言語が英・仏・独・伊・葡・西で、手書きの文字は英語のみ。問い(Queries)は英語の文書のみ。文字の高さの下限が15ピクセル(150 DPI で8ポイント相当)AWS: Set Quotas in Amazon Textract2026-10-29
AnalyzeDocument がフォーム(KEY_VALUE_SET)・表(TABLE・CELL)・署名(SIGNATURE)・問い(QUERY・QUERY_RESULT)を返し、単語に TextType が付くこと。FeatureTypes の値。非同期は StartDocumentAnalysis を使うことAWS: AnalyzeDocument2026-10-29
StartDocumentAnalysis が JobId を返し、完了の状態を SNS に知らせ、SUCCEEDED を確かめてから GetDocumentAnalysis で結果を取ること。同じ ClientRequestToken なら同じ JobId が返ること。JobId が7日間有効なこと。KMSKeyId を渡さないと SSE-S3 で暗号化されることAWS: StartDocumentAnalysis2026-10-29
表のセルに COLUMN_HEADER・TABLE_SUMMARY などの EntityTypes が付くことAWS: Tables2026-10-29
問いの Pages を指定しないと ["1"] になり、* で全ページを指定できることAWS: Query2026-10-29
冷凍の魚の切り身の一般規格(CXS 190-1995)で、グレーズを付けた食品の正味の量はグレーズを除いて示すとされること。グレーズを付けた製品の正味重量を、冷水でグレーズを除いてから量る方法が示されていることFAO/WHO Codex: Standard for Quick Frozen Fish Fillets (CXS 190-1995)2026-10-29

契約の歩留まりと許す幅、精算の取り決めは、委託先との契約で確かめてください。 本記事は上記の公開情報で確認できた範囲だけを扱っています。輸入の手続きと表示の規則は確かめていません。

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

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

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

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