Media > AI活用ユースケース > 品質管理 > 製パン工場で手書きされるロットごとの製造記録を読み取り、仕込み・発酵・焼成の温度と時間と数量を製造の台帳に転記して、管理の範囲を外れた値と改善措置の書き漏れを拾う

製パン工場で手書きされるロットごとの製造記録を読み取り、仕込み・発酵・焼成の温度と時間と数量を製造の台帳に転記して、管理の範囲を外れた値と改善措置の書き漏れを拾う

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

製パンのラインでロットごとに手書きされる製造記録票を読み取り、仕込み・発酵・焼成の温度と時間と数量を製造の台帳に転記します。品目ごとの管理の範囲と照らし、外れた値と改善措置の書き漏れを拾います。

サマリー
生成AI
ChatGPT/Claude/Gemini
AIサービス
Azure AI/Google Document AI
連携・自動化
Google Apps Script/Python
対象業界
小売/製造
対象部門
品質管理/生産
対象業務
データ入力・転記/内容確認・チェック
主な課題
データ分析に時間がかかる/入力作業が多い/確認ミスが多い
AIで行う処理
読み取り(OCR)
主な効果
入力漏れ削減/判断支援/工数削減
導入難易度
★★☆☆☆
実装レベル
本格構成
費用感
API連携(中)
人間の確認
条件付き
現在工数
45h/月
AI導入後
12h/月
想定削減
73%
年間削減
396h
モデル条件による試算値です。実在企業の実績ではありません。

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

導入前(Before)
  1. ラインの担当者が、工程ごとに記録票に温度・時間・数量を書き、印を押す
  2. 範囲を外れたときは、担当者が改善措置の欄に何をしたかを書き、製造の課長に知らせる
  3. 1日の終わりに、記録票を品質管理課に回す
  4. 翌日、品質管理課の担当が、記録票を1枚ずつ表計算の製造の台帳に打ち込む
  5. 打ち込みながら、品目ごとの製品規格表と見比べて、範囲を外れた値に印を付ける
  6. 外れた値のある記録票で、改善措置の欄が書かれているかを見る。空いていれば、ラインの担当者に聞く
  7. 仕込み数と良品数・不良数・抜き取りの数が合うかを見る
  8. 週に一度、外れた値の一覧を製造の課長に報告する
導入後(After)
  1. 人ラインの担当者が、いまと同じく記録票に手書きする
  2. 人ロットの焼成が終わったら、オーブンの出口の担当が記録票をタブレットで撮る
  3. 自動画像の保存をきっかけに、OCRが記録票の欄と表と読み取りの信頼度を返す
  4. 自動生成AIが、読み取った欄を製造の台帳の項目に対応づけ、値を文字のまま写す
  5. 自動品目から製品規格表を引き、書かれるはずの欄の一覧と照らして、記入漏れの候補を拾う
  6. 自動時刻から長さを計算し、温度と時間と重さを管理の範囲と比べる
  7. 自動外れた値のある記録票で、改善措置の欄に書き込みがあるかを確かめ、数量の合計を突き合わせる
  8. 自動製造の台帳の下書きを作り、確認の要る記録票の一覧をその日のうちに品質管理課と製造の課長に出す
  9. 人品質管理課の担当が、確認の要る欄だけを記録票の画像と並べて直す
  10. 人改善措置の書き漏れは、その日のうちにラインの担当者に確かめて書き足してもらう
  11. 人確認の済んだ記録を、製造の台帳に確定する
各工程の詳しい説明を読む
  1. ラインの担当者が、工程ごとに記録票に温度・時間・数量を書き、印を押す
  2. 範囲を外れたときは、担当者が改善措置の欄に何をしたかを書き、製造の課長に知らせる
  3. 1日の終わりに、記録票を品質管理課に回す
  4. 翌日、品質管理課の担当が、記録票を1枚ずつ表計算の製造の台帳に打ち込む
  5. 打ち込みながら、品目ごとの製品規格表と見比べて、範囲を外れた値に印を付ける
  6. 外れた値のある記録票で、改善措置の欄が書かれているかを見る。空いていれば、ラインの担当者に聞く
  7. 仕込み数と良品数・不良数・抜き取りの数が合うかを見る
  8. 週に一度、外れた値の一覧を製造の課長に報告する

(a)打ち直しが翌日になる。 記録票が回ってくるのは1日の終わりで、打ち込みは翌日の午前中にかかります。外れた値に品質管理課が気づくのは、そのロットの製品がすでに出荷されたあとです。

(b)範囲を覚えている人に頼っている。 品目は100を超え、季節の品目は入れ替わります。範囲を頭に入れている担当者なら打ち込みながら気づけますが、慣れていない担当者は規格表を毎回開くので、時間がかかるうえに見落とします。

(c)改善措置の欄が空いたままになる。 範囲を外れたときにラインで調整をしても、忙しい時間帯には欄に書かれないことがあります。翌日に聞きに行っても、誰が何をしたかを覚えていないことがあります。

(d)時間は書いてあるが、長さが書いていない。 一次発酵やホイロは開始と終了の時刻が書かれ、長さは打ち込む人が引き算しています。 夜をまたぐロットや、時刻の書き方(「14:05」「2:05」「14.05」)の違いで、引き算を誤ることがあります。

  1. 【人】 ラインの担当者が、いまと同じく記録票に手書きする
  2. 【人】 ロットの焼成が終わったら、オーブンの出口の担当が記録票をタブレットで撮る
  3. 【自動】 画像の保存をきっかけに、OCRが記録票の欄と表と読み取りの信頼度を返す
  4. 【自動】 生成AIが、読み取った欄を製造の台帳の項目に対応づけ、値を文字のまま写す
  5. 【自動】 品目から製品規格表を引き、書かれるはずの欄の一覧と照らして、記入漏れの候補を拾う
  6. 【自動】 時刻から長さを計算し、温度と時間と重さを管理の範囲と比べる
  7. 【自動】 外れた値のある記録票で、改善措置の欄に書き込みがあるかを確かめ、数量の合計を突き合わせる
  8. 【自動】 製造の台帳の下書きを作り、確認の要る記録票の一覧をその日のうちに品質管理課と製造の課長に出す
  9. 【人】 品質管理課の担当が、確認の要る欄だけを記録票の画像と並べて直す
  10. 【人】 改善措置の書き漏れは、その日のうちにラインの担当者に確かめて書き足してもらう
  11. 【人】 確認の済んだ記録を、製造の台帳に確定する

2番目で、撮影をロットの終わりにするのが要点です。 1日の終わりにまとめると、(a)の遅れは縮みません。焼成が終わった時点で撮れば、外れた値に、そのロットがまだ工場にあるうちに気づけます。

10番目は、その日のうちに行います。 改善措置を書くのは、その場で調整をした担当者です。翌日に聞くのでは、(c)の「覚えていない」が繰り返されます。

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

構成図
製造記録票(手書き・ロットごとに1枚)
   │  焼成の終わりにタブレットで撮影
   ▼【トリガー】画像の保存
Google Document AI(Form Parser)
   │   欄(キーと値のペア)、表、読み取りの信頼度
   ▼
Claude API(構造化出力)── 欄と台帳の項目の対応づけ、値の書き写し
   ▼
Python ── 書かれるはずの欄の一覧との照合(記入漏れの候補)
       ── 時刻から長さの計算、管理の範囲との比較
       ── 外れと改善措置の組の確認、数量の突き合わせ
   ▼
製造の台帳の下書き、確認の要る記録票の一覧
   ▼
【品質管理課が確認の要る欄を直す】→ 台帳に確定
役割想定する製品代替候補
OCRGoogle Document AI(Form Parser)Azure AI Document Intelligence
生成AIClaude API(欄の対応づけと値の書き写し)OpenAI API、Gemini API
連携Python(画像の受け取り、API の呼び出し、台帳の下書きの作成)Google Apps Script
差異計算Python(管理の範囲との比較、時刻からの長さ、数量の突き合わせ)Google Apps Script
保管社内のファイルサーバー(記録票の画像と読み取りの結果)クラウドのストレージ

製品を出荷するかどうかは、この構成では決めません。 外れた値のあるロットの扱いは、製造の課長と品質管理課が決めます。構成が出すのは、外れたという事実と、改善措置が書かれているかどうかまでです。

食品衛生法施行規則の別表第十八(食品衛生上の危害の発生を防止するために特に重要な工程を管理するための取組)は、重要管理点ごとの管理基準の設定、モニタリングの方法、管理基準を逸脱したことが判明した場合の改善措置、検証、記録の作成を定めています。製造記録票は、このモニタリングと改善措置の実施の記録にあたる工場が多いはずです。 どの工程を重要管理点とし、管理基準をいくつにするかは、工場の衛生管理の計画で決まっています。

土台は Document AI の Form Parser です。 公式の説明では、Form Parser はキーと値のペア、表、チェックボックスなどを抽出するとされ、ラベルの付いた空欄に書き込むような、ふつうの様式からキーと値のペアを取り出すのに向くとされています。プロセッサ一覧の言語表では、日本語(ja)が手書きに対応する言語として示されています。

一方で、注意書きが2つあります。 値の入っていないキーと値のペアは確実には読み取れないこと、一部の言語ではキーと値のペアの品質がラテン文字の言語より低い場合があることです。欄の対応づけを生成AIで補い、記入漏れは欄の一覧で拾う設計にするのは、この2つのためです。

処理する場所に、日本のリージョンはありません。 Form Parser の対応リージョンは us・eu と、asia-southeast1(シンガポール)などの単一リージョンです。記録票の配合や条件は工場の製法そのものなので、国外で処理されることを会社の決まりに照らして確かめます。

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

Step1

処理の起点を決める

記録票の画像がフォルダに保存されたことを起点にします。 撮るのはロットの焼成が終わったときで、オーブンの出口の担当が、ラインの脇に固定したタブレットで撮ります。撮影の台を決めておけば、毎回同じ距離と角度で撮れます。

1日の終わりにまとめて動かす形にはしません。ロットごとに読み取れば、外れた値の一覧は、そのロットの製品が冷却を終える前に出ます。 (a)の「気づくのが出荷のあと」を、「工場にあるうち」に変えるのが狙いです。

ファイル名には、撮影の日時とラインの番号を入れます。品目とロット番号は記録票から読み取り、生産計画表と照らします。 処理が終わったものは処理済みのフォルダへ移し、移すのは成功したときだけにします。 その日の生産計画にあるロットの数と、撮られた記録票の数を夕方に比べ、撮り忘れも拾います。

Step2

入力データを集める

データ中身取得元
記録票の画像ロットごとの1枚、撮影の日時、ラインラインの脇のタブレット
読み取りの結果テキスト、キーと値のペア、表、信頼度Google Document AI
製品規格表品目ごとの管理の範囲(捏ね上げ温度、発酵とホイロの温度・湿度・時間、分割の重さ、焼成の温度と時間)品質管理課の規格表
欄の一覧品目ごとに、記録票に書かれるはずの欄規格表から作る一覧
生産計画表日付、ライン、品目、ロット番号、仕込み数の予定生産計画の表計算

質を決めるのは、製品規格表と欄の一覧です。 規格表が品目の改廃に追いついていないと、新しい品目の記録票が「範囲が無い」と出ます。季節の品目を出すときに、規格表の行を足すのを品目の立ち上げの手順に入れます。

欄の一覧は、品目によって違います。 調理パンは焼成のあとに具材を挟む工程があり、食パンは焼成のあとに型から抜く工程があります。一覧が品目ごとでないと、書かれなくてよい欄を記入漏れとして拾います。

Step3

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

読み取りは、Python から Form Parser のプロセッサを呼ぶだけです。返ってくる Document から、キーと値のペアと表と信頼度を取り出します。

取るものどこから何に使うか
全テキストtextほかの欄が startIndex・endIndex で指す原文
工程の欄pages[].formFields(fieldName と fieldValue)「捏ね上げ温度」「焼成温度」などのラベルと値
数量や時刻の表pages[].tables(headerRows と bodyRows)工程ごとの開始・終了の時刻、数量の行
信頼度各要素の layout の信頼度確認の要る欄の印

公式の説明では、text が認識されたテキストの唯一の元で、ほかの欄は startIndex と endIndex でその位置を指すとされています。キーと値のペアの文字も、この位置から原文を引いて取り出します。 表は headerRows と bodyRows に分かれ、行や列をまたぐセルの無い表だけが対象とされています。

キーの文字は、記録票の印刷のラベルとそのまま一致するとは限りません。 「捏ね上げ温度」が「捏上温度」と読まれる、ラベルと値が隣の欄と組み合わされる、ということが起こりえます。キーの文字で台帳の項目を引くのではなく、生成AIに対応づけさせ、対応づけの結果を欄の一覧と照らします。

生産計画表は、毎朝の書き出しを読みます。照合は日付・ライン・ロット番号の組で行います。 品目の名前で引くと、同じ日に同じ品目を2つのラインで作ったときに取り違えます。

Step4

AIへ渡す前に整形する

  1. 画像の向きと傾き … 撮影の台で撮っても残る傾きを、紙の四隅で補正します
  2. 解像度 … 公式の説明では、スキャンは最低200dpi、300dpi以上で一般に最良の結果とされています。撮影の解像度はこれに相当する大きさにします
  3. ファイルの形式 … JPEG か PNG で保存します
  4. 粉と油の汚れ … 記録票は粉や油で汚れます。汚れで欄が読めない画像は、撮り直しを促します
  5. 重複の検知 … 同じロット番号の記録票が二度撮られたら、新しい方だけを使います
  6. 品目の確定 … 記録票の品目とロット番号を生産計画表と照らし、品目を確定してから欄の一覧と規格表を引きます

6番目を、ほかの照合より先に行います。 品目が確定しないと、どの範囲と比べるかも、どの欄が書かれるはずかも決まりません。品目が読めない記録票は、生産計画表のロット番号から品目を引き、それも引けなければ人に回します。

Step5

AIに処理させる

生成AIにさせるのは2つだけです。 読み取った欄と表を製造の台帳の項目に対応づけること、値を文字のまま写すことです。

見るものさせること判断できないときの扱い
キーと値のペア各ペアが台帳のどの項目に当たるかを決め、値を写す決められないペアは unknown
時刻と数量の表工程ごとの開始・終了の時刻、仕込み数・良品数・不良数・抜き取りの数を写す読めない文字は空にし、unreadable
改善措置の欄書かれた文を原文のまま写す何も書かれていなければ空
担当者の印の欄印や署名があるかどうかを present/absent で写す判断できなければ unclear

比較と計算は、プログラムの側で行います。

させないこと理由
時刻から長さの計算夜をまたぐロットや書き方の違いを、決まりで扱う
管理の範囲との比較範囲は規格表の数字で決まる
読めない値の補い前のロットの値や範囲の真ん中で埋めると、外れが消える
改善措置の内容の評価適否は製造の課長と品質管理課が決める
出荷の可否の判断人が決める

3行目がいちばん起きやすい失敗です。 焼成の温度の欄がにじんでいると、同じ品目の前のロットと同じ値で埋めたくなります。埋めた瞬間、その記録票は「範囲内」になり、外れていたかもしれない事実が消えます。

Step6

指示内容を固定する

あなたは製パン工場の品質管理課で、製造記録票の読み取り結果を台帳の形にそろえる担当です。
OCRが返したキーと値のペアと表だけを見てください。推測で埋めないでください。

【台帳の項目】
item_name(品目)、lot_no(ロット番号)、line(ライン)、mix_minutes(ミキシングの時間)、
dough_temp(捏ね上げ温度)、ferm_temp(一次発酵の温度)、ferm_humidity(一次発酵の湿度)、
ferm_start / ferm_end(一次発酵の開始と終了の時刻)、divide_weight(分割の重さ)、
proof_temp / proof_humidity(ホイロの温度と湿度)、proof_start / proof_end(ホイロの開始と終了)、
bake_temp(焼成の温度)、bake_minutes(焼成の時間)、
qty_planned / qty_good / qty_defect / qty_sample(仕込み数・良品数・不良数・抜き取りの数)、
corrective_action(改善措置)、stamp_*(工程ごとの担当者の印)

【厳守事項】
- 各ペアと表の列がどの項目に当たるかを field_map に書いてください。
  決められないものは unknown にしてください。
- 値は書かれた文字のまま写してください。単位も書かれていれば一緒に写してください。
- 時刻は書かれたとおりに写してください。長さを計算しないでください。
  「2:05」を「14:05」に直すなど、午前・午後を推測しないでください。
- 読めない値は空にし、その項目を unreadable_fields に入れてください。
  前のロットの値や、ありそうな値で埋めないでください。
- 見つからない項目は、結果に含めないでください。空の値を作らないでください。
- 改善措置の欄は、書かれた文を原文のまま写してください。要約しないでください。
- 担当者の印は、あるかどうかだけを present / absent / unclear で書いてください。
- 範囲を外れているか、出荷してよいかは書かないでください。

【OCRのキーと値のペア】{form_fields}
【OCRの表】{tables}

「見つからない項目は結果に含めない」と明記しているのは、記入漏れの判定をプログラムの側に置くためです。 生成AIが見つからない項目に空の値を作ると、空の値が「読めたが空だった」のか「欄ごと見つからなかった」のかが分からなくなります。欄の一覧との照合は、結果に無い項目を数えることで行います。

「午前・午後を推測しない」も同じ理由です。 夜勤のラインでは、「2:05」が深夜の2時のこともあります。時刻の解釈は、生産計画表のラインの稼働時間帯と照らして、プログラムが決めます。

Step7

出力形式を固定する

次の形のJSONで受け取ります。

{
  "sheet_id": "",
  "captured_at": "",
  "field_map": [
    { "source": "form_field | table_cell", "source_text": "", "field": "" }
  ],
  "values": [
    { "field": "", "text": "", "confidence": 0 }
  ],
  "unreadable_fields": [ "" ],
  "corrective_action_text": "",
  "stamps": [
    { "process": "mix | ferm | divide | proof | bake", "state": "present | absent | unclear" }
  ]
}

値をすべて文字列で受けるのは、意図してのことです。 温度の「28°」、時刻の「14.05」、数量の「1,200」は、数値の型で受けると記号のところで崩れます。文字のまま受け、プログラムで数字として読めるかを確かめてから数値にします。

Claude の構造化出力は、output_config.format に JSON スキーマを渡して有効にし、オブジェクトには additionalProperties: false が必要とされています。 数値の minimum・maximum は対応していないとされているので、範囲の確認はもともとプログラムで行う設計と合っています。

後段の照合は、この出力に対して決まりで行います。

照合外れたとき
品目とロット番号が生産計画表にある記録票ごと印を付ける
欄の一覧の項目がすべて values にある「記入漏れの候補」の印。画像で確かめる
値が数字や時刻として読める欄に印を付ける
時刻から計算した長さと、温度・重さが管理の範囲に収まる「範囲外れ」の印
範囲外れがあるのに corrective_action_text が空「改善措置の書き漏れ」の印。いちばん優先して確かめる
仕込み数 = 良品数+不良数+抜き取りの数「数量の食い違い」の印
工程ごとの担当者の印が present「印の欠け」の印

5行目が、この構成の中心です。 範囲外れだけなら、ラインの調整の記録として残ります。外れと改善措置が組になっていない記録票だけを最優先の一覧の先頭に出し、その日のうちにラインに確かめます。

時刻から長さを出す処理は、次のような形になります(要点だけ)。

def minutes_between(start_text, end_text, line_shift):
    s = parse_clock(start_text, line_shift)   # 「14:05」「14.05」「2:05」を稼働時間帯で解釈
    e = parse_clock(end_text, line_shift)
    if s is None or e is None:
        return None                           # 読めなければ計算しない
    if e < s:
        e += 24 * 60                          # 夜をまたぐロットは翌日として扱う
    return e - s

読めない時刻のときに None を返し、0分としないのが要点です。 0分にすると、範囲の比較で「短すぎる」という別の外れに化けます。

Step8

システムへ連携する

つなぎ先方式内容
撮影の保存フォルダフォルダの監視画像の保存を検知する
Google Document AIAPI呼び出しキーと値のペア・表・信頼度を返す
Claude APIAPI呼び出し欄の対応づけと値の書き写し
製品規格表・欄の一覧表計算の読み込み品目ごとの範囲と、書かれるはずの欄
生産計画表毎朝の書き出しファイルロットの照合と撮り忘れの検知
製造の台帳表計算のファイル確認の済んだ記録を書き込む

製造の台帳へ書き込むのは、人が確かめた記録だけです。 確認の要る欄の無い記録票は、品質管理課の担当が一覧で流し見て「確定」を押した時点で書き込みます。生成AIの出力を、そのまま台帳に流し込む経路は作りません。

製品規格表は、読むだけです。 範囲外れが続く品目があっても、規格表は書き換えません。範囲を見直すかどうかは、品質管理課と製造の課長が、記録の傾向を見て決めます。

Step9

人が確認する

人が見るのは、印の付いた記録票だけです。

  1. 改善措置の書き漏れを先に見る … 範囲外れがあるのに改善措置の欄が空いている記録票を、その日のうちにラインの担当者に確かめます。書き足してもらうのは、実際にした措置だけです
  2. 範囲外れを製造の課長に回す … 外れたロットの一覧を、ロットが工場にあるうちに渡します。扱いは課長が決めます
  3. 記入漏れの候補を確かめる … 欄の一覧にあって読み取りの結果に無い欄を、画像で確かめます。本当に空いているのか、読み取れなかっただけかを見分けます
  4. 数字の欄を確かめる … 信頼度の低い欄と、数字として読めない欄を、画像と並べて直します
  5. 数量の食い違いと印の欠けを確かめる … ラインの担当者に確かめます

3番目を省かないでください。 欄ごと結果から消えるのは、空いていた場合だけではありません。汚れや筆跡で読めなかった欄も、結果に出てこないことがあります。 画像を見れば数秒で分かります。

目標は、900枚をならして1枚0.8分です。 印の無い記録票は一覧で流し見て数秒、改善措置の書き漏れのある記録票はラインに確かめるので数分かかります。

Step10

例外に対処する

起きること対応
粉や油の汚れで欄が読めないunreadable。撮り直しか、人が実物を見て直す
欄が読み取りの結果から消える欄の一覧との照合で拾い、画像で確かめる
品目が読めない生産計画表のロット番号から品目を引く。引けなければ人に回す
製品規格表に品目が無い範囲の比較をせず、規格表の行の追加を品質管理課に求める
時刻が夜をまたぐラインの稼働時間帯と照らし、終了が開始より前なら翌日として計算する
時刻の書き方が読めない(「14.05」など)決まりで読めるものは読み、読めないものは人に回す
1つのロットが2枚に分かれているロット番号でつなぎ、欄の一覧と照らす
撮り忘れ生産計画表のロットの数と比べて、夕方に拾う
Document AI が応答しないフォルダに残し、品質管理課がいまの手順で打ち込む

上の2行が大半を占めます。 どちらもAIの精度の問題というより、粉と油のある現場で書く紙の性質の問題です。 記録票をクリップボードに挟んで書く、ペンを油性の細字に替えるほうが、指示を直すより効きます。

Step11

記録を残す

  • 記録票の画像と、撮影の日時・ライン
  • OCR が返した Document の全文(text、formFields、tables、信頼度)
  • 生成AIの出力(欄の対応づけ、値、改善措置の原文、印の有無)
  • 照合の結果(記入漏れの候補・範囲外れ・改善措置の書き漏れ・数量・印)と、そのとき使った製品規格表の版
  • 人が直した欄の記録 … どのロットの、どの欄を、何から何に直したか
  • 改善措置を書き足した記録 … 誰が、いつ、何を書き足したか

4つ目で「規格表の版」を残すのは、範囲が後から変わるためです。 範囲を見直すと、過去の記録の「範囲外れ」の意味が変わります。当時の範囲が残っていないと、外部の監査で記録を示すときに説明がつきません。

改善措置を書き足した記録も残します。 後から書き足したこと自体は問題ではありませんが、その日のうちに書いたのか、何日もたってから書いたのかが分かることが、記録の信頼につながります。

04実装レベルの3段階

最小構成:記録票の画像を手でAIの画面に貼り、表にさせる / 1枚ごとの欄の読み取り
半自動化:上記+Form Parser の API を呼び、製造の台帳の下書きに書き出す / 読み取りと台帳への転記
本格構成:上記+欄の一覧との照合、時刻からの長さ、管理の範囲との比較、改善措置の組の確認、数量の突き合わせまで作る / 読み取りから確認の手前まで

最小構成は、記録票が読めるかを確かめる段階です。 月900枚には使えません。 半自動化で、1枚3分が1.5分程度になります。 打ち込みは自動になりますが、規格表との見比べと改善措置の確認、時刻の引き算が人の手に残ります。 本格構成で0.8分になり、この段階が本記事の想定です。 差が大きいのは、範囲との比較と改善措置の組の確認が自動になり、人が見るのが印の付いた記録票だけになるからです。 段階を飛ばさないでください。 半自動化の1か月で、規格表に無い品目と、欄の一覧の足りない品目が見えます。そこを直してから本格構成に進むほうが、印が減ります。

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

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

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

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

AI活用について相談する

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

向いている
  1. 食パン・菓子パン・調理パンを量産する製パン工場で、ラインの担当者がロットごとの製造記録票に温度と時間を手書きし、品質管理の担当が翌日に表計算の製造の台帳へ打ち直している場合。品目ごとに捏ね上げ温度や焼成の条件の管理の範囲が決まっているのに、外れた値に気づくのが打ち直しのときになっている場合。HACCPに沿った衛生管理の記録として、外れたときの改善措置の記録がそろっているかを確かめたい場合。
向いていない
  1. ミキサー・ホイロ・オーブンの記録を機器から自動で取り込んでおり、手書きの記録票が無い工場。ロットが1日に数件で、打ち直しの手間が小さい店舗。なお、管理の範囲の設定、外れた製品を出荷するかどうか、改善措置の内容の適否、衛生管理の計画の見直しの判断は、この構成では代替できません。

07最小構成で試す方法

  1. 先月の記録票から30枚を選ぶ(範囲外れのあったもの、改善措置の欄が空いていたもの、夜勤のロットのものを入れる)
  2. その30枚について、製造の台帳に打ち込まれた値を書き出しておく
  3. 記録票の画像を、手元の生成AIの画面に1枚ずつ貼る
  4. 「この製造記録票の各欄を、品目・ロット・捏ね上げ温度・一次発酵の温度と時刻・ホイロの温度と時刻・焼成の温度と時間・数量・改善措置の表にしてください。読めない欄は空にしてください。時刻から長さを計算しないでください」と指示する
  5. 出てきた表を、打ち込まれた値と1欄ずつ比べる

30枚は必ずやってください。 Form Parser とプログラムを組む前に、1枚に複数の筆跡が混ざった記録票が読めるのかを確かめます。

出てきた内容判断
打ち込まれた値とほぼ同じ表が出たOCR の API と照合の処理に進む
時刻の午前・午後を取り違えた時刻は文字のまま写させ、プログラムで解釈する。構成は有効
読めない温度を前の欄の値で埋めた指示と、後段の照合で止められる
読めない記録票が多い書き方と撮り方が先。 AIの問題ではない

改善措置の欄が空いていた記録票も、必ず入れてください。 生成AIが空欄に「特になし」と書き足さないかを、この段階で確かめます。

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

問題対策
読めない温度を前のロットの値で埋める埋めることを禁じ、unreadable として人に回す
空いている欄が結果から消え、記入漏れに気づけない欄の一覧と照らし、結果に無い欄を数える
生成AIが空の欄に空の値や「特になし」を作る見つからない項目は含めない、要約しないと指示する
時刻の午前・午後を取り違える文字のまま受け、ラインの稼働時間帯で解釈する
夜をまたぐロットの長さがマイナスになる終了が開始より前なら翌日として計算する
規格表に新しい品目が無い品目の立ち上げの手順に規格表の行の追加を入れる
欄の一覧が品目ごとでない品目ごとの工程と突き合わせて一覧を作る
同じ品目を2つのラインで作って取り違える日付・ライン・ロット番号の組で照合する
国外で処理されることを確かめていない日本のリージョンは無い。 会社の決まりに照らす
範囲外れのロットの扱いを自動で決める扱いは課長が決める。構成は事実まで

上の2行が、この構成でいちばん重い失敗です。 どちらも、記録票の上の事実(外れていた、書かれていなかった)が台帳から消える経路です。

3行目は、気づきにくい失敗です。 改善措置の欄に生成AIが「特になし」と書くと、書き漏れが「措置不要」に見えます。 原文のまま写す指示と、空のままにする指示を、両方入れておきます。

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

この構成で扱うデータ: 品目、ロット番号、仕込み・発酵・焼成の条件、数量、改善措置の記録、担当者の印です。個人情報は少ないものの、品目ごとの製造の条件は工場の製法そのもので、外に出したくない情報です。

  1. 処理の場所を確かめる … Form Parser の対応リージョンに日本はありません。us・eu かシンガポールなどから選びます。製法の情報が国外で処理されることを、会社の決まりに照らして確かめます
  2. 生成AIに渡す範囲を絞る … 生成AIには読み取りの結果だけを渡し、製品規格表や配合は渡しません。範囲との比較は Python の側で行います
  3. 判断を代替しない … 範囲外れのロットを出荷するか、改善措置が適切だったかは、製造の課長と品質管理課が判断します。構成が出すのは、外れたという事実と、措置が書かれているかどうかまでです
  4. 衛生管理の計画を代替しない … 食品衛生法施行規則の別表第十八は、管理基準、モニタリング、改善措置、検証、記録の作成を定めています。どの工程を重要管理点とするか、管理基準をいくつにするかは、工場の衛生管理の計画で決めます
  5. 元の記録票を残す … 画像を残すようになっても、紙の記録票をいつまで保管するかは、衛生管理の計画と取引先との取り決めに従います

誤りが起きた場合のリスクは、範囲外れが台帳から消えることと、改善措置の書き漏れが見過ごされることの2つです。前者は埋めることの禁止と欄の一覧の照合で、後者は外れと措置を組で見る照合で防ぎます。

10まず何から始めるか

1週目:製品規格表と欄の一覧を整える

製品規格表を、品目ごとに項目と上限・下限が並ぶ形にそろえます。あわせて、生産量の多い上位30品目について、記録票に書かれるはずの欄の一覧を作ります。季節の品目は、次の立ち上げのときに足します。

2週目:30枚で試す

先月の記録票から30枚を選び、最小構成で表にさせて、打ち込まれた値と比べます。読めない温度を埋めていないか、改善措置の空欄に何か書き足していないかを最優先で見ます。

3週目:撮り方と記録票の雛形を見直す

撮影の台をラインの出口に置き、撮る時点をロットの焼成の終わりに決めます。読めない欄が多ければ、欄の広さ、ペン、改善措置の欄の位置を見直します。

4週目:Form Parser から台帳の下書きまでをつなぐ

記録票の画像を保存すると Form Parser が動き、製造の台帳の下書きに書き出すところまで作ります。この時点では照合を入れず、読み取りの結果だけを見ます。

2か月目: 欄の一覧との照合、時刻からの長さ、管理の範囲との比較、改善措置の組の確認、数量の突き合わせを足し、確認の一覧をその日のうちに出す運用にします。3か月目以降: 1枚3分が何分になったかを実測します。範囲外れの一覧がロットの出荷の前に課長に届き、改善措置の書き漏れがその日のうちに埋まるようになった時点で、この構成は完成です。


11関連ユースケース

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

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

技術仕様確認日:2026-10-15/最終更新:2026-10-15
確認した内容情報源確認日
Form Parser がキーと値のペア、表、チェックボックスなどを抽出すること。言語の一覧で日本語(ja)が手書きに対応する言語として示されていること(原文の HTML で確認)。対応リージョンが us・eu・asia-southeast1 などで、日本のリージョンが無いことGoogle Cloud: Processor list2026-10-15
Form Parser がラベルの付いた空欄に書き込むようなふつうの様式からのキーと値のペアの抽出に向くこと。学習済みで追加の学習ができないこと。値の入っていないキーと値のペア(空の様式など)を確実には読み取れないこと。一部の言語ではキーと値のペアの品質がラテン文字の言語より低い場合があることGoogle Cloud: Form Parser2026-10-15
text が唯一の元で、ほかの欄が startIndex・endIndex で指すこと。formFields が fieldName と fieldValue を持つこと。表が headerRows と bodyRows に分かれ、行や列をまたぐセルの無い表だけを認識することGoogle Cloud: Handle the processing response2026-10-15
対応するファイルの形式。スキャンは最低200dpi、300dpi以上で一般に最良の結果とされることGoogle Cloud: Supported files2026-10-15
構造化出力が output_config.format に JSON スキーマを渡して有効になること。オブジェクトに additionalProperties: false が必要なこと。数値の minimum・maximum が非対応であることClaude Docs: Structured outputs2026-10-15
食品衛生法施行規則第六十六条の二で、別表第十八が食品衛生上の危害の発生を防止するために特に重要な工程を管理するための取組の基準とされていること。別表第十八に、重要管理点の決定、管理基準の設定、モニタリングの方法、管理基準を逸脱した場合の改善措置、検証の方法、記録の作成が定められていること(e-Gov 法令API で条文を確認)e-Gov 法令API: 食品衛生法施行規則2026-10-15

管理の範囲の設定、範囲を外れたロットの扱い、改善措置の適否、衛生管理の計画の見直しは、工場の品質管理の責任者が判断してください。 本記事は、上記の公開情報で確認できた範囲だけを扱っています。

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

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

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

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