飲食店の厨房を閉店後に撮った写真を本部の基準の写真と比べ、清掃の不足・床置き・食材の出しっぱなしの候補を見分けて、店舗への是正の依頼を作る
各店舗が閉店後に決めた場所で撮った厨房の写真を、本部の基準の写真と場所ごとに比べ、清掃の不足・床置き・食材の出しっぱなしの候補を見分けます。本部の担当は翌朝、候補の出た写真だけを確かめ、店舗への是正の依頼を送ります。
- 生成AI
- ChatGPT/Claude/Gemini
- 連携・自動化
- Make/n8n/Power Automate/Zapier
- 対象業界
- 宿泊/飲食
- 対象部門
- 品質管理
- 対象業務
- 内容確認・チェック/書類作成
- 主な課題
- 人手が足りない/期限・対応漏れが起きる/確認ミスが多い
- AIで行う処理
- 画像認識
- 主な効果
- 品質標準化/対応スピード向上/工数削減
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- ノーコード連携(中)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 店舗の遅番が、閉店後の清掃を終えて8か所を撮り、店舗のフォルダに保存する
- 本部の担当が翌朝、店舗ごとにフォルダを開き、8枚を順に見る
- 本部の衛生の手順書にある見本の写真を思い出しながら、汚れ・床置き・出しっぱなしを探す
- 気になる点があれば、写真の名前と所見をメモする
- 店舗の店長あてに、是正の依頼をメールで書いて送る
- スプレッドシートに、店舗・日付・場所・所見を記録する
- 店舗から「直しました」と写真付きで返信が来たら、記録に印を付ける
- 人店舗の遅番が、閉店後に8か所を撮り、撮影場所の記号を付けて店舗のフォルダに保存する
- 自動写真の保存をきっかけに Make のシナリオが動き、写真と、その店舗・その場所の基準の写真を取り出す
- 自動Gemini API が、基準と今夜の写真を比べ、候補の種類と所見を返す
- 自動結果をスプレッドシートに1枚1行で書き込む
- 自動朝6時に、店舗ごとに結果をまとめ、候補のある店舗について是正の依頼の下書きを作る
- 人本部の担当が、候補の出た写真だけを開き、「依頼する」「問題なし」を選ぶ
- 人依頼すると決めたものについて、下書きを確かめて店長あてに送る
- 自動店舗が直した写真を同じ場所の記号で保存すると、同じ比較が動き、`resolved` の印が付く
- 人3日たっても印の付かない依頼を、担当が店長に電話で確かめる
各工程の詳しい説明を読む
- 店舗の遅番が、閉店後の清掃を終えて8か所を撮り、店舗のフォルダに保存する
- 本部の担当が翌朝、店舗ごとにフォルダを開き、8枚を順に見る
- 本部の衛生の手順書にある見本の写真を思い出しながら、汚れ・床置き・出しっぱなしを探す
- 気になる点があれば、写真の名前と所見をメモする
- 店舗の店長あてに、是正の依頼をメールで書いて送る
- スプレッドシートに、店舗・日付・場所・所見を記録する
- 店舗から「直しました」と写真付きで返信が来たら、記録に印を付ける
(a)見る写真が多すぎる。 50店舗 × 8枚で、毎朝400枚です。大半の写真は問題が無いのに、問題が無いことを確かめるために全部を開いています。
(b)指摘が担当者によって違う。 同じコンロの周りの油汚れを、ある担当は指摘し、別の担当は「許容」とします。見本の写真が手順書の中にあるだけで、見る人の記憶の中の基準と比べているためです。 店舗からは「先週は言われなかった」と返ってきます。
(c)指摘が遅れる。 午後にずれ込んだ指摘は、店舗が開店してから届きます。遅番に伝わるのは、その日の夜か翌日です。 そのころには、どの夜の話かがあいまいになります。
(d)直ったかを追えない。 店舗からの返信を待つ記録はありますが、返信が無い指摘を毎日見直す時間がありません。 同じ店舗の同じ場所で、同じ指摘が繰り返されます。
- 【人】 店舗の遅番が、閉店後に8か所を撮り、撮影場所の記号を付けて店舗のフォルダに保存する
- 【自動】 写真の保存をきっかけに Make のシナリオが動き、写真と、その店舗・その場所の基準の写真を取り出す
- 【自動】 Gemini API が、基準と今夜の写真を比べ、候補の種類と所見を返す
- 【自動】 結果をスプレッドシートに1枚1行で書き込む
- 【自動】 朝6時に、店舗ごとに結果をまとめ、候補のある店舗について是正の依頼の下書きを作る
- 【人】 本部の担当が、候補の出た写真だけを開き、「依頼する」「問題なし」を選ぶ
- 【人】 依頼すると決めたものについて、下書きを確かめて店長あてに送る
- 【自動】 店舗が直した写真を同じ場所の記号で保存すると、同じ比較が動き、
resolvedの印が付く - 【人】 3日たっても印の付かない依頼を、担当が店長に電話で確かめる
6番目が、この設計の分かれ目です。 本部の担当が開くのは、候補の出た写真だけです。候補の無い店舗は、店舗名と枚数を一覧で流し見て終わりにします。全部の写真を開く設計にすると、①の2.5分はほとんど減りません。
8番目で、直したかどうかの確認も同じ仕組みに乗せます。 店舗が送り直した写真を、同じ基準と同じ指示で比べ直すので、「直した」と「直っている」を分けて記録できます。
02今回想定するシステム構成
店舗の遅番(タブレット) │ 閉店後に8か所を撮り、店舗のフォルダへ保存(ファイル名に撮影場所の記号) ▼【トリガー】Google Drive の Watch Files in a Folder Make(写真ごとのシナリオ) ├── 基準の写真のフォルダ ── 店舗・撮影場所ごとの基準 ├──▶ HTTP の Make a request ▼ Gemini API ── 候補の種類(cleaning/floor_item/food_left_out)と所見 ▼ Make ── Google Sheets の Add a Row(結果の一覧) ▼【朝6時】Make(店舗ごとのまとめのシナリオ) 是正の依頼の下書き(候補の種類ごとの決まった文面) ▼ 【本部の担当が候補の写真だけを確かめ、依頼を送る】 └──▶ 店舗が直した写真 → 同じ比較 → resolved の印
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 処理 | Gemini API(基準と今夜の写真の比較と、候補の種類の判定) | Claude API、OpenAI API |
| 連携 | Make(写真の取り出し、呼び出し、結果の書き込み、朝のまとめ) | Power Automate、n8n、Zapier |
| 連携 | Google スプレッドシート(結果の一覧、是正の依頼の記録、依頼の文面) | Microsoft Lists |
| 保管 | Google ドライブ(店舗ごとの写真のフォルダ、基準の写真のフォルダ) | Microsoft OneDrive |
| 撮影 | 店舗のタブレット | スマートフォン |
写真の受け取りは、Make の Google Drive のモジュールで行います。 Watch Files in a Folder は、選んだフォルダでファイルが作られるか変更されたときに動くトリガーです。ファイルの取り出しには Download a File、処理を終えた写真の移動には Move a File/Folder を使います。
Gemini API の呼び出しは、HTTP のアプリの Make a request で行います。 認証の種類に API key を選べ、本文の形式に application/JSON を選べます。接続先は https で始まる必要があり、待ち時間の上限は1〜300秒の範囲で指定します。
比べる仕組みの土台は、Gemini API の画像理解です。 対応する形式は PNG、JPEG、WEBP、HEIC、HEIF で、1回のリクエストに複数の画像を入れられます。 画像を直接入れる場合は、指示などと合わせたリクエスト全体が20MBまでです。呼び出しは Interactions の書き方で、公式のページの例は POST https://generativelanguage.googleapis.com/v1beta/interactions を使っています。
結果の書き込みには、Google Sheets のモジュールの Add a Row、朝のまとめには Search Rows と Update a Row を使います。
03どうやって実装するのか
処理の起点を決める
写真がフォルダに保存されたことを起点に、1枚ずつ処理します。 Watch Files in a Folder を店舗の写真をまとめる親のフォルダに向け、新しい写真が入るたびにシナリオを動かします。店舗の遅番が保存した時刻から間を置かずに比べ終えておけば、朝には結果がそろっています。
店舗ごとのまとめは、朝6時に別のシナリオで行います。 1枚ずつの結果を店舗ごとに集め、是正の依頼の下書きを作ります。本部の担当が出社するときには、候補のある店舗だけが一覧になっています。
閉店の時刻は店舗ごとに違います。 深夜2時に閉める店もあるため、朝6時のまとめでは、前日の営業日に属する写真を日付ではなく撮影時刻と営業日の区切りで集めます。区切りは朝5時にします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 今夜の写真 | 撮影場所の記号付きの写真。店舗コード、撮影時刻 | 店舗のフォルダ |
| 基準の写真 | 店舗・撮影場所ごとの「正しい閉店後の姿」の写真 | 基準の写真のフォルダ |
| 撮影場所の一覧 | 場所の記号、場所の名前、見る観点、基準の写真のファイル名 | スプレッドシート |
| 店舗の一覧 | 店舗コード、店長のメールアドレス、閉店時刻、厨房の型 | スプレッドシート |
| 依頼の文面 | 候補の種類ごとの決まった文 | スプレッドシート |
| 未解決の依頼 | 店舗・場所ごとの、まだ resolved の付いていない依頼 | 是正の依頼の記録 |
質を決めるのは、基準の写真です。 本部が作る衛生の手順書の見本ではなく、その店舗のその場所を、正しく片付けた状態で撮った写真を基準にします。厨房の配置は店舗ごとに違うので、手順書の1枚では比べられません。 開店前の点検の日などに、本部の担当が店舗で撮ります。
撮影場所ごとに見る観点を絞ります。
| 場所 | 主に見るもの |
|---|---|
| シンク・作業台 | 洗い残しの器具、食材のくず、出したままの食材 |
| コンロの周り | 油汚れ、焦げ、出したままの調味料 |
| 床(通路) | 床に直接置かれた容器・段ボール・食材、残渣、水たまり |
| 冷蔵庫の中 | 覆いの無い食材、床置きに当たる最下段の段ボール |
| 食材の保管棚 | 床に直接置かれた箱、開いたままの袋 |
| 排水溝 | ごみ受けの残渣 |
| ごみ箱の周り | ふたの開放、袋のはみ出し、周りに落ちたごみ |
場所ごとに観点を変えるのは、誤報を減らすためです。 冷蔵庫の中に食材があるのは正常で、作業台に食材があれば出しっぱなしです。同じ「食材が写っている」でも、場所で意味が変わります。
データの取得方法を決める
Make のシナリオが、写真1枚ごとに次の順に集めます。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 今夜の写真 | Watch Files in a Folder と Download a File | 比べる対象 |
| 店舗コードと撮影場所の記号 | ファイル名 | 基準の写真と観点の選択 |
| 撮影場所の観点と基準のファイル名 | Search Rows(撮影場所の一覧) | 指示の切り替え |
| 基準の写真 | Download a File | 比べる相手 |
| 未解決の依頼 | Search Rows(是正の依頼の記録) | 直した写真かどうかの判定 |
ファイル名の決まりが、この構成を支えます。 例えば S023_K3_20261008_2315.jpg なら、店舗23の撮影場所K3(コンロの周り)を23時15分に撮った写真です。店舗のタブレットに、場所ごとに撮影して名前を付けるだけの簡単な画面を用意すると、名前の誤りが減ります。 その画面は、店舗のタブレットの環境に合わせて用意します。
基準の写真は、店舗・場所ごとに1枚だけを正本にし、撮り直したら古いものは別のフォルダに移します。 2枚が並んでいると、どちらと比べたかが記録から読めなくなります。
画像は、取り出したファイルを本文に入れて送ります。 2枚の写真と指示を合わせて、リクエスト全体が20MBに収まるよう、店舗のタブレットの撮影の大きさを決めておきます。
AIへ渡す前に整形する
- ファイル名の確認 … 店舗コードと撮影場所の記号が一覧にあるかを見ます。無ければ比べずに「名前の誤り」として記録します
- 写りの確認 … 暗すぎる写真(照明を消した後に撮ったもの)や、ぶれた写真は「撮り直し」とします
- 重複の確認 … 同じ店舗・同じ場所・同じ夜の写真が2枚あれば、新しいほうを使い、古いほうは記録だけにします
- 直した写真の見分け … 同じ店舗・同じ場所に未解決の依頼があり、写真が依頼の後に保存されたものなら、「直した写真」として扱います
- 大きさのそろえ … 長い辺を決めた大きさにそろえて撮るよう、タブレットの設定で決めます
- 人が写っている写真の扱い … 従業員が写り込まない位置で撮る決まりにし、指示でも人について書かせません
2番目は、閉店後ならではの問題です。 清掃を終えて照明を落としてから撮ると、写真が暗く、汚れが見えません。「照明を消す前に撮る」を手順に入れます。 暗い写真を比べさせると、見えないものを「きれい」と答える方向にずれます。
5番目の大きさは、費用にも効きます。 Gemini API は、縦横とも384ピクセル以下の画像を258トークンで数え、それより大きい画像は768×768の区画に分けて区画ごとに258トークンで数えます。汚れの見分けに足りる大きさに抑えます。
AIに処理させる
させるのは、1か所ごとに基準と今夜の写真を比べ、決めた3つの種類の候補があるかを答えることだけです。
| 候補の種類 | 見るもの | 判断できないときの扱い |
|---|---|---|
cleaning 清掃の不足 | 基準に無い汚れ・残渣・油・洗い残しの器具 | 光の反射や水滴と区別がつかなければ uncertain |
floor_item 床置き | 床や棚の最下段に直接置かれた容器・段ボール・食材 | 床が写っていなければ not_visible |
food_left_out 食材の出しっぱなし | 冷蔵庫・保管棚の外にある食材、覆いの無い食材 | 食材か器具か見分けられなければ uncertain |
基準と比べさせるのが要です。 「汚れているか」を単独で聞くと、使い込んだ厨房の床のしみや、ステンレスのくすみまで汚れとして拾います。基準の写真にも写っているものは、その店舗では「正しい状態」です。基準に無くて今夜にあるものだけを候補にさせます。
候補には位置も返させます。 box_2d で、今夜の写真の中の場所を [ymin, xmin, ymax, xmax] の0〜1000の座標で返させ、本部の担当が写真を開いたときにすぐ目を向けられるようにします。
| させないこと | 理由 |
|---|---|
| 衛生上の合否の判断 | 依頼するかは本部の担当が決める |
| 是正の依頼の文の作成 | 決まった文面から組み立てる |
| 温度・期限・においの推定 | 写真では分からない |
| 害虫・ねずみの判断 | 写真の小さな影で判断させない。見つけたら人が現地で確かめる |
| 従業員についての記述 | 写り込んでも人について何も書かせない |
指示内容を固定する
あなたは飲食店の本部で、閉店後の厨房の写真を確かめる担当の補助です。
1枚目は、この店舗のこの場所を正しく片付けた状態で撮った基準の写真です。
2枚目は、今夜の閉店後に同じ場所を撮った写真です。
【この場所の情報】
場所:{location_name}
この場所で見るもの:{aspects}
【候補の種類】
- cleaning ....... 1枚目に無い汚れ・食材のくず・油・洗い残しの器具
- floor_item ..... 床や棚の最下段に直接置かれた容器・段ボール・食材
- food_left_out .. 冷蔵庫・保管棚の外にある食材、覆いの無い食材
【status の選び方】(候補の種類ごとに)
- none ........ 1枚目と比べて、その種類の候補が見当たらない
- found ....... 候補がある
- uncertain ... 反射・水滴・暗さなどで、候補かどうか決められない
- not_visible . その種類を見るべき部分が写っていない
迷ったときに none を選ばないでください。
【厳守事項】
- 1枚目にも写っている汚れ・しみ・くすみは、候補にしないでください。
- この場所で見るもの以外は答えないでください。
- 衛生上問題があるか、店舗に何を頼むべきかを書かないでください。
- 温度、期限、におい、害虫について推測しないでください。
- 人が写っていても、人について何も書かないでください。
- found と uncertain のときは、2枚目の中の位置を box_2d で返してください。
- note には、見えたものを短く書いてください(例:「作業台の右端に覆いの無いボウル」)。
「1枚目にも写っている汚れは候補にしない」が、誤報を減らす一文です。 古い厨房の床には落ちないしみがあり、毎晩それを指摘されると、店舗は本部の依頼を読まなくなります。 落ちないしみの扱いは、基準の写真を撮り直すかどうかとして本部が決めます。
「何を頼むべきか書かない」は、依頼の言い方をそろえるためです。 AIに文を書かせると、夜ごとに言い回しが変わり、同じ汚れでも強い言い方の夜と弱い言い方の夜が出ます。
出力形式を固定する
構造化出力で、1枚ごとに次の形のJSONを受け取ります。
{
"store_id": "S023",
"location_id": "K3",
"checks": [
{ "kind": "cleaning | floor_item | food_left_out",
"status": "none | found | uncertain | not_visible",
"box_2d": [0, 0, 0, 0],
"note": "" }
]
}
kind と status を enum にして、決めた値以外を返させません。 Gemini API の構造化出力では、enum と required が使えます。ただし、JSONとして正しくても値が正しいとは限らないため、アプリケーションの側で値を確かめるよう案内されています。 Make のシナリオで、3つの種類がそろっているか、found なのに box_2d が空でないかを確かめ、合わないものは uncertain として書き込みます。
朝のまとめでは、店舗ごとに次の区分を付けます。
| 店舗の区分 | 条件 | 本部の担当の動き |
|---|---|---|
| 候補あり | found が1つ以上 | 写真を開いて確かめ、依頼するかを決める |
| 確認が要る | uncertain か not_visible が2つ以上、撮り直し・名前の誤り | 写真を開いて確かめる |
| 写真の不足 | 8か所のうち届いていない場所がある | 店長に連絡する |
| 候補なし | すべて none | 一覧で流し見る |
是正の依頼の下書きは、候補の種類ごとの文面を組み立てて作ります。
【閉店後の厨房の確認】S023 ○○店 2026-10-08の営業日
K3 コンロの周り 清掃の不足:コンロの右奥に油の付着(写真あり)
K4 床(通路) 床置き:通路に段ボール箱(写真あり)
本日の閉店後に、上の2か所を直して同じ場所で撮り直してください。
下書きの所見の部分にだけ、AIの note を入れます。 頼む言葉は文面の決まりから入るので、店舗ごとに言い方がぶれません。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| Google ドライブ | Make の Google Drive のモジュール | 写真の検知・取り出し・移動 |
| Gemini API | Make の HTTP の Make a request | 基準と今夜の写真の比較 |
| スプレッドシート | Make の Google Sheets のモジュール | 結果の書き込み、店舗ごとのまとめ、依頼の記録 |
| 店舗へのメール | 本部の担当が送る | 確かめた下書きを店長あてに送る |
店舗への依頼は、本部の担当が送ります。 下書きはスプレッドシートの依頼の記録に入り、担当が「依頼する」を選んだものだけを送ります。AIの候補がそのまま店舗に届く形にはしません。 誤報の依頼が届けば、店舗は次から本部の依頼を疑います。
基準の写真のフォルダは、本部の品質管理部だけが書き換えられるようにします。 店舗からは読み取りもできない設定にします。店舗が基準を今の状態に合わせて撮り直すと、比べる意味がなくなります。
人が確認する
候補の出た写真は、すべて本部の担当が確かめます。
- 「候補あり」を見る … 枠の位置で写真を見て、「依頼する」「問題なし」を選びます。
noteの言葉だけで決めず、写真を必ず開きます - 「確認が要る」を見る … 暗い・反射の写真は、店舗に撮り方を伝えます
- 「写真の不足」を店長に伝える … 撮り忘れが続く店舗は、閉店の手順そのものを見直します
- 3日たっても直らない依頼を電話で確かめる …
resolvedの付かない依頼の一覧を毎朝見ます
目標は、1,500件をならして1件1.2分です。 候補の無い店舗は一覧で数秒、候補のある店舗は写真を開いて数分かかります。候補のある店舗が毎朝1〜2割という想定でならすと1.2分です。
最初の2週間は、これまでの全枚数の確認と並べて動かします。 担当が見つけた問題に、AIが候補を出していたかを照らします。出していなかった問題は、撮影場所の観点か基準の写真を直す材料です。 逆に、担当が「問題なし」とした候補も種類ごとに数えます。どの種類で誤報が多いかが分かれば、指示のどの行を直すかが決まります。 4名の担当で「依頼する」の線がずれていないかも、同じ写真を2名で見て確かめます。
例外に対処する
| 起きること | 対応 |
|---|---|
| ファイル名が決まりと違う | 比べずに「名前の誤り」として記録し、朝の一覧で店舗に伝える |
| 写真が暗い・ぶれている | 「撮り直し」。同じ店舗で続けば手順を見直す |
| 基準の写真が無い場所 | 比べずに記録し、本部の担当が基準を撮りに行く |
| 厨房の改装・配置の変更 | 基準を撮り直すまで、その場所は比べない |
| Gemini API が応答しない | 1回だけ待って再送し、だめなら「未処理」として朝の一覧に出す |
| 待ち時間の上限を超える | HTTP の待ち時間は1〜300秒の範囲で指定する。超えたら未処理 |
| 返った値が決めた形に合わない | その場所を uncertain として書き込む |
| 同じ場所で誤報が続く | 「問題なし」の回数を週に1回集計し、基準と観点を見直す |
「未処理」を「候補なし」と分けて一覧に出します。 どちらも候補が出ていませんが、前者は機械が見ていない写真です。 未処理の写真は、本部の担当がこれまでどおり開いて見ます。
記録を残す
- 写真ごとの比較の結果(
kind、status、box_2d、note)と、比べた基準の写真の名前 - 店舗ごとの朝の区分と、本部の担当の判断(依頼する/問題なし)
- 送った依頼の文と、送った日時
- 直した写真と、
resolvedの付いた日時 - 店舗・場所ごとの、候補の回数と「問題なし」の回数
- 未処理・撮り直し・名前の誤りの記録
写真と比較の結果は、衛生管理の記録として決めた期間残します。 HACCPに沿った衛生管理では、実施の状況を記録して保存し、定期的に振り返ることが求められています。閉店後の清掃の状態を、毎晩同じ形で残せることは、その振り返りの材料になります。
店舗・場所ごとの集計は、月に1回、店長会で使います。
【閉店後の厨房の確認 月次】2026年9月
依頼の多い場所(全店)
K4 床(通路) 床置き 38件(うち 段ボール 27件)
K3 コンロの周り 清掃の不足 31件
直るまでの日数(平均) 1.3日
写真の不足 S011 9晩/S037 7晩
同じ場所の同じ依頼が多いなら、店舗の努力より仕組みを疑います。 段ボールの床置きが続くなら、段ボールをたたんで置く場所が厨房に無いのかもしれません。
04実装レベルの3段階
最小構成では、毎朝400枚をさばけません。 1枚ずつ貼るので、確かめるための段階です。 半自動化で、1件4分が2分程度になります。 見比べは一覧で済むようになりますが、依頼のメールを書く作業と、直ったかの確認が手で残ります。 本格構成で1.2分になり、この段階が本記事の想定です。 段階を飛ばさないでください。 半自動化の一覧を2週間見ると、誤報の多い場所と、写真の不足が多い店舗が分かります。基準と手順を直してから依頼の下書きを足すほうが、店舗に受け入れられます。
05工数削減シミュレーション
導入後 1,500件 × 1.2分 ÷ 60 = 30 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 数十店舗を持つ飲食チェーンで、閉店後の厨房の清掃の状態を写真で本部に送らせ、本部の品質管理の担当が1店ずつ見て指摘している場合。店舗ごとに清掃の仕上がりがばらつき、指摘が担当者によって違う場合。指摘が翌日以降にずれ込み、店舗が直したかどうかを追えていない場合。ホテルのレストランやセントラルキッチンを持つ給食の事業者にも当てはまります。
- 店舗が数店で、店長や本部の担当が毎晩現地を見られる場合。厨房の配置が店ごとに大きく違い、同じ場所を同じ角度で撮る決まりを作れない場合。なお、温度の管理、食材の期限、においや害虫の有無、HACCPに沿った衛生管理の計画と記録そのものは、この構成では代替できません。
07最小構成で試す方法
- 指摘の多い店舗を3つ選ぶ
- 本部の担当が店舗に行き、清掃を終えた状態の8か所を撮る(これを基準にする)
- その後1週間、店舗が送った閉店後の写真を集める
- 手元の Gemini の画面に、1か所分の基準と今夜の写真を2枚並べて貼り付ける
- 「1枚目が正しく片付けた状態、2枚目が今夜の写真です。1枚目に無い汚れ、床や棚の最下段に直接置かれた物、しまわれていない食材を答えてください。1枚目にも写っているしみは答えないでください。見えないものは見えないと答えてください」と指示する
- 答えを、本部の担当が同じ写真を見て付けた所見と突き合わせる
基準の写真を撮るところから始めてください。 手順書の見本で試すと、店舗の配置の違いを全部「違い」として拾い、構成が無効に見えます。
| 出てきた内容 | 判断 |
|---|---|
| 担当の所見とおおむね同じ候補が出た | 撮影場所の一覧とファイル名の決まりを作る |
| 落ちないしみを毎回拾う | 基準の写真の撮り方か指示の書き方で直る。構成は有効 |
| 暗い・反射で答えが定まらない | 撮り方が先。 照明を消す前に撮る手順を入れる |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 落ちないしみを毎晩拾う | 基準と比べさせ、「1枚目にも写っているものは答えない」と明記する |
| 手順書の見本と比べて配置の違いを拾う | 店舗ごとに基準を撮る。 手順書の1枚では比べられない |
| 照明を消してから撮って暗い | 「照明を消す前に撮る」を閉店の手順に入れる |
| 冷蔵庫の中の食材を出しっぱなしと見る | 場所ごとに観点を切り替える |
| ファイル名の誤りで基準が引けない | 店舗のタブレットに場所ごとに撮る画面を用意する |
| 改装の後に誤報が増える | 改装の予定を本部が把握し、基準を撮り直すまで比べない |
| AIの文がそのまま店舗に届く | 依頼の文は決まった文面から組み立て、送るのは本部の担当 |
| 未処理の写真が「候補なし」に混ざる | 一覧で「未処理」を分けて出す |
| 店舗が基準を撮り直してしまう | 基準のフォルダは品質管理部だけが書き換える |
| 直したかどうかが追えない | 直した写真を同じ比較にかけ、resolved を付ける |
| 誤報が多いまま放置する | 場所ごとの「問題なし」の回数を週に1回見る |
上の2行が、誤報の大半です。 どちらも「何と比べるか」の問題で、店舗ごとの基準の写真を持つかどうかで決まります。
下の行の「誤報の放置」も早く効いてきます。 同じ場所で毎朝候補が出ると、本部の担当も写真を開かずに「問題なし」を押すようになります。 誤報の多い場所は、基準を撮り直すか観点を絞るかを週ごとに決めます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 店舗の厨房の写真、店舗ごとの衛生の状態の記録、店長のメールアドレスです。写真には、従業員が写り込むおそれがあります。 厨房の配置や設備も、店舗の運営の情報です。
- 従業員を写さない … 撮影場所と角度を、人がいない位置で撮れるように決めます。指示でも人について書かせず、写り込んだ写真は撮り直しにします
- 有料の枠で使う … Gemini API の規約では、無料の枠では送った内容が製品の改善に使われ、人が読むことがあるとされ、機密や個人の情報を送らないよう求めています。 有料の枠では、プロンプトや応答を製品の改善に使わず、禁止事項の違反を見つけるために限った期間だけ記録するとされています
- 年齢の条件を確かめる … 規約は18歳以上の利用を条件とし、18歳未満が利用する、または利用しうるサービスでの利用を禁じています。この構成を使うのは本部の担当で、店舗のタブレットは写真を撮って保存するだけです。 店舗の高校生のアルバイトがAIの画面を使う形にはしません
- AIの候補で店舗を評価しない … 候補の回数を、そのまま店舗や遅番の評価に使わないでください。誤報も含んだ数です。 本部の担当が確かめた依頼の数を使います
- HACCPの記録の代わりにしない … 厚生労働省のページでは、すべての食品等事業者が衛生管理計画を作り、実施の状況を記録して保存し、定期的に振り返ることとされています。温度や期限の記録、手順書の作成はこの構成の外です。 写真の確認は、その一部を補うものです
- 異物や害虫の疑いは現地で確かめる … 写真に気になる影があっても、AIには判断させません。本部の担当が店長に確かめてもらいます
誤りが起きた場合のリスクは、清掃の不足を見逃すことと、誤報で店舗が本部の依頼を信用しなくなることの2つです。 前者は暗い写真を比べると起き、後者は誤報を放置すると起きます。撮り方をそろえ、誤報を週ごとに直す運用で守ります。
10まず何から始めるか
1週目:撮影場所を決め、3店舗の基準を撮る
8か所の撮影場所と、場所ごとに見るものを決めます。指摘の多い3店舗に本部の担当が行き、清掃を終えた状態の8か所を撮ります。 照明を消す前に撮る手順もここで決めます。
2週目:1週間分の写真で試す
3店舗の1週間分の写真を、手元の Gemini の画面で基準と比べさせます。本部の担当の所見と突き合わせ、落ちないしみを拾っていないかを最優先で見ます。
3週目:ファイル名の決まりと依頼の文面を作る
店舗のタブレットでの撮り方と名前の付け方を決めます。候補の種類ごとに、依頼の文面を本部で決めます。
4週目:写真の保存から結果の一覧までをつなぐ
Make で Watch Files in a Folder から Make a request、Add a Row までをつなぎ、結果を一覧に書き出すところまで作ります。 依頼の下書きはまだ出さず、これまでの確認と並べて答え合わせをします。
2か月目: 朝のまとめと依頼の下書き、直した写真の再比較を足し、10店舗に広げます。3か月目以降: 全店の基準をそろえ、1件4分が何分になったかを実測します。誤報の多い場所を直し終え、依頼が開店前に店舗に届くようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
| 令和3年6月1日から、原則としてすべての食品等事業者にHACCPに沿った衛生管理が求められていること。営業者が実施することとして、衛生管理計画の作成と従業員への周知、必要に応じた手順書の作成、衛生管理の実施状況の記録と保存、計画と手順書の定期的な検証(振り返り)と見直しが挙げられていること | 厚生労働省: HACCP(ハサップ) | 2026-10-08 |
対応する画像の形式が PNG、JPEG、WEBP、HEIC、HEIF であること。画像を直接入れる場合、指示などと合わせたリクエスト全体が20MBまでであること。1回のリクエストに複数の画像を入れられること。物体の位置を box_2d として [ymin, xmin, ymax, xmax] の0〜1000の座標で返すこと。縦横とも384ピクセル以下の画像が258トークン、それより大きい画像は768×768の区画ごとに258トークンであること。例が /v1beta/interactions を使っていること | Gemini API: Image understanding | 2026-10-08 |
構造化出力を /v1beta/interactions の response_format に mime_type: "application/json" とスキーマを入れて指定すること。enum と required が使えること。JSONとして正しくても値はアプリケーションの側で検証するよう案内されていること | Gemini API: Structured output | 2026-10-08 |
| 18歳以上であることが必要で、18歳未満が利用する、または利用しうるサービスでの利用を禁じていること。無料の枠では送った内容が製品の改善に使われ、人が読むことがあり、機密や個人の情報を送らないよう求めていること。有料の枠では製品の改善に使わず、禁止事項の違反を見つけるために限った期間だけ記録すること | Gemini API Additional Terms of Service | 2026-10-08 |
HTTP のアプリの Make a request で、認証の種類に API key などを選べること。本文の形式に application/JSON を選べること。接続先が https で始まる必要があること。待ち時間の上限が1〜300秒の範囲であること | Make: HTTP | 2026-10-08 |
Watch Files in a Folder が選んだフォルダでファイルが作られるか変更されたときに動くこと。Download a File と Move a File/Folder のモジュールがあること | Make: Google Drive modules | 2026-10-08 |
Add a Row、Search Rows、Update a Row のモジュールがあること | Make: Google Sheets modules | 2026-10-08 |
衛生管理計画と手順書の内容は、業種別の手引書と保健所の指導に合わせてください。 本記事は上の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0991)についてのご相談はこちらから。
