水産加工会社の品質管理が衛生管理の計画・手順書と過去の是正の記録を Vertex AI Search で検索し、現場で起きた管理基準からの逸脱に、計画で定めた改善措置と過去の対処の根拠を、製品の系列と重要管理点で絞って引く
現場から管理基準からの逸脱が報告されたとき、製品の系列と重要管理点で絞って、衛生管理の計画と過去の是正の記録を検索します。計画で定めた改善措置と管理基準の原文を、引用付きでそろえます。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- 商社/小売/製造
- 対象部門
- 品質管理/生産
- 対象業務
- 情報検索/記録・議事録作成
- 主な課題
- 属人化している/情報が見つからない/確認ミスが多い
- AIで行う処理
- 検索(RAG)
- 主な効果
- 品質標準化/対応スピード向上/属人化解消
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 現場の班長が、逸脱の報告の用紙に製品・ライン・工程・測った値・時刻・ロットを書き、品質管理課に電話で知らせる
- 品質管理の担当が、その製品の系列の衛生管理の計画を開き、該当する重要管理点の管理基準と改善措置を探す
- 一般衛生管理の基準を外れた事象なら、手順書の該当する箇所を探す
- 同じ重要管理点の過去の是正の記録を表計算のファイルで探し、どう対処したか、ロットをどう扱ったかを見る
- 計画の改善措置に沿って、現場にロットの区分と保留、ラインの調整、測り直しを指示する
- ロットの扱い(出荷・加工し直し・廃棄)を、品質管理課の課長と決める
- 是正の記録に、逸脱の内容、行った改善措置、ロットの扱い、確認の結果を書く
- 人現場の班長が、タブレットの逸脱の報告のフォームで、製品の系列・ライン・重要管理点(一覧から選ぶ)・測った値・時刻・ロットを送る
- 自動中継プログラムが、重要管理点の台帳で系列と番号から重要管理点を決め、いまの版の計画を特定する
- 自動重要管理点の逸脱なら、検索を待たずに社内の決まり(該当ロットの区分と保留)を画面のいちばん上に出す
- 自動Vertex AI Search(Agent Search)の answer メソッドで、その系列のいまの版の計画の、その重要管理点の節と手順書だけから、改善措置と確かめることを引用付きでまとめさせる
- 自動search メソッドで、管理基準の原文を抜き出しで取り、同じ重要管理点の過去の是正の記録を新しい順に一覧にする
- 人品質管理の担当が引用の原文を見て、現場に改善措置を指示する
- 人ロットの扱いを課長と決める
- 【自動/人】 逸脱の内容・引用した計画の版と節・行った改善措置・ロットの扱いを、是正の記録として残す
各工程の詳しい説明を読む
- 現場の班長が、逸脱の報告の用紙に製品・ライン・工程・測った値・時刻・ロットを書き、品質管理課に電話で知らせる
- 品質管理の担当が、その製品の系列の衛生管理の計画を開き、該当する重要管理点の管理基準と改善措置を探す
- 一般衛生管理の基準を外れた事象なら、手順書の該当する箇所を探す
- 同じ重要管理点の過去の是正の記録を表計算のファイルで探し、どう対処したか、ロットをどう扱ったかを見る
- 計画の改善措置に沿って、現場にロットの区分と保留、ラインの調整、測り直しを指示する
- ロットの扱い(出荷・加工し直し・廃棄)を、品質管理課の課長と決める
- 是正の記録に、逸脱の内容、行った改善措置、ロットの扱い、確認の結果を書く
(a)系列ごとの計画から該当箇所を探す。 2番で、同じ「CCP2」でも系列によって中身が違うため、どの系列の計画のどの版を開くかから始まります。 電話で「焼きのCCP2」とだけ聞くと、取り違えが起きます。
(b)古い版の計画で対処しかける。 2番で、共有フォルダに前の版の計画の写しが残っていて、検索で先に当たった古い版を開いてしまうことがあります。改善措置の中身が版で違うと、指示が変わります。
(c)過去の対処が是正の記録に埋もれている。 4番で、約3,500件の是正の記録から、同じ系列・同じ重要管理点・同じ種類の逸脱を探します。表計算のファイルの絞り込みで、自由に書かれた逸脱の内容の欄からは、似た件が拾いきれません。
(d)経験のある担当に判断が集まる。 4番で見つからないとき、過去の件を覚えている2名に聞きます。 夜勤や休日の逸脱では、その2名に電話が行きます。
- 【人】 現場の班長が、タブレットの逸脱の報告のフォームで、製品の系列・ライン・重要管理点(一覧から選ぶ)・測った値・時刻・ロットを送る
- 【自動】 中継プログラムが、重要管理点の台帳で系列と番号から重要管理点を決め、いまの版の計画を特定する
- 【自動】 重要管理点の逸脱なら、検索を待たずに社内の決まり(該当ロットの区分と保留)を画面のいちばん上に出す
- 【自動】 Vertex AI Search(Agent Search)の answer メソッドで、その系列のいまの版の計画の、その重要管理点の節と手順書だけから、改善措置と確かめることを引用付きでまとめさせる
- 【自動】 search メソッドで、管理基準の原文を抜き出しで取り、同じ重要管理点の過去の是正の記録を新しい順に一覧にする
- 【人】 品質管理の担当が引用の原文を見て、現場に改善措置を指示する
- 【人】 ロットの扱いを課長と決める
- 【自動/人】 逸脱の内容・引用した計画の版と節・行った改善措置・ロットの扱いを、是正の記録として残す
3番目を検索より先に出しているのが、この設計の要です。 重要管理点を逸脱したロットを、答えを待つ間に次の工程へ流さないための決まりは、検索ではなく社内の決まりとして固定で出します。
4番目と5番目を分けているのも、意図してのことです。 答えの文章は計画の改善措置だけから作り、管理基準の数値と過去の対処は、原文の抜き出しと一覧で見せます。
02今回想定するシステム構成
逸脱の報告のフォーム(系列・ライン・重要管理点・測った値・時刻・ロット) ▼【トリガー】フォームの送信 中継プログラム(Python。Cloud Run) │ 重要管理点の台帳で、系列・番号・いまの計画の版を引く │ 重要管理点の逸脱なら、ロットの区分と保留の決まりを先に出す ▼ Vertex AI Search(Agent Search) ├── answer メソッド ── 計画の改善措置・確かめること(引用つき) └── search メソッド ── 管理基準の原文の抜き出し、過去の是正の記録(新しい順) │ データストア:衛生管理の計画(版・系列・重要管理点の節ごと)、手順書、是正の記録(1件1文書) ▼ 中継プログラム ── 引用の無い文を外す。版の確認 ▼ 品質管理の画面(保留の決まり/改善措置/管理基準の原文/過去の是正) ▼ 【担当が改善措置を指示し、ロットの扱いを課長と決める】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の answer メソッドと search メソッド | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ― |
| 連携 | 中継プログラム(Python。Cloud Run で動かし、逸脱の報告のフォーム・重要管理点の台帳・検索・品質管理の画面をつなぐ) | Node.js で同じものを書く |
| 保管 | Cloud Storage(計画・手順書・是正の記録の写し、メタデータ、報告と答えの記録) | ― |
ラインの機器と温度の計測の仕組みには、つなぎません。 逸脱の報告は、いまどおり班長が値を確かめて送ります。機器の値を自動で取り込むと、計測の誤りと本当の逸脱の区別が、報告の前に消えるからです。
土台は、Vertex AI Search の answer メソッドと、search メソッドの抜き出しの機能です。 公式ページでは、answer メソッドは検索の結果から回答を作り、引用のメタデータを付けられるとされています。search メソッドの抽出型の回答(extractive answers)は、元の文書の文をそのまま返すもので、公式ページでは、正確な言い回しが要るときに要約の代わりに使えるとされています。公式ページの言語の一覧では、日本語(ja-JP)が検索の機能と回答の機能の両方で対応とされています。公式ページには、Vertex AI Search が Agent Search へ改称中である旨の記載があります。
03どうやって実装するのか
処理の起点を決める
現場の班長が、逸脱の報告のフォームを送ったことを起点にします。 フォームでは、製品の系列とラインを選ばせ、重要管理点は、その系列の計画にある番号と名前の一覧から選ばせます。 「焼きのCCP2」と打たせず、「焼き魚・CCP2 加熱(中心温度)」を選ばせることで、系列の取り違えをフォームの段で止めます。
一般衛生管理の事象は、別の一覧から選ばせます。 洗浄と消毒、使用水、冷蔵庫の温度、そ族と昆虫、従業員の衛生などです。重要管理点の逸脱か一般衛生管理の事象かで、画面のいちばん上に出す決まりを変えます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 報告 | 製品の系列、ライン、重要管理点または一般衛生管理の項目、測った値、時刻、ロット、班長の所見 | 逸脱の報告のフォーム |
| 重要管理点の情報 | 系列、番号、名前、いまの計画の版、重要管理点の逸脱のときの社内の決まり | 重要管理点の台帳 |
| 衛生管理の計画 | 版ごと・系列ごと・重要管理点の節ごとの文。管理基準、モニタリングの方法、改善措置、検証の方法 | データストア |
| 手順書 | 一般衛生管理の項目ごとの手順と、基準を外れたときの対応 | データストア |
| 是正の記録 | 1件ごとの系列、重要管理点、逸脱の種類、行った改善措置、ロットの扱い、確認の結果、そのときの計画の版 | データストア |
質を決めるのは、是正の記録の「そのときの計画の版」です。 過去の約3,500件には、この項目がありません。記録の日付と、計画の版の改定の日付から、中継プログラムで機械的に付けます。 改定の日をまたぐ件は、品質管理の担当が確かめます。
是正の記録からは、記録した人と現場の作業者の名前を外して入れます。 検索に要るのは逸脱と対処の中身で、誰が逸脱を起こしたかは要りません。 名前は役割(班長・品質管理)に置き換えます。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 衛生管理の計画 | 版の管理のフォルダの文書を、重要管理点の節ごとに分けて Cloud Storage へ写す | データストアの中身 |
| 手順書 | 一般衛生管理の項目ごとに分けて写す | データストアの中身 |
| 是正の記録 | 表計算のファイルの行を1件1文書にして写す | データストアの中身 |
| 重要管理点の情報 | 重要管理点の台帳の読み取り | 絞り込みの条件 |
| 答えと一覧 | answer メソッドと search メソッドの応答 | 品質管理の画面 |
計画は、重要管理点の節ごとに1つの文書に分け、メタデータに系列・重要管理点・版・効力の始まりの日を持たせます。 是正の記録は、次のように1件を1行にし、本文の文書と組にします。
{"id": "car-2026-0815-03",
"structData": {"doc_kind": "corrective_record", "line": "grilled_fish",
"ccp_id": "CCP2", "ccp_name": "加熱(中心温度)",
"deviation_type": "under_temperature", "plan_ver": "v6",
"recorded_on": "2026-08-15", "lot_disposition": "reprocessed",
"verified": true},
"content": {"mimeType": "text/plain", "uri": "gs://<bucket>/car/2026/0815-03.txt"}}
lot_disposition は、出荷(released)・加工し直し(reprocessed)・廃棄(discarded)・保留中(on_hold)の4つにします。 計画の節は doc_kind を haccp_plan、手順書は prp_procedure にします。
AIへ渡す前に整形する
- 重要管理点の引き当て … フォームの系列と番号を台帳で引き、重要管理点の名前と、いまの計画の版を決めます
- 社内の決まりの表示 … 重要管理点の逸脱なら、ロットの区分と保留の決まりを、検索より先に画面に出します
- 問い合わせ文の組み立て … 「焼き魚の加熱の工程で中心温度が管理基準に届かなかった場合の改善措置」のように、名前と逸脱の種類から文を作ります
- 絞り込みの条件の組み立て … 答えの側はその系列・いまの版・その重要管理点の計画の節と手順書、一覧の側はその系列・その重要管理点の是正の記録に分けます
- 新しい順の重み付けの準備 … 是正の記録の一覧を、記録の日付の新しいものほど上に出すよう、重み付けの設定を付けます
測った値は、問い合わせ文に入れません。 値を入れると、モデルが「〇℃なら軽微」のように値の大きさで逸脱の重さを判断し始めるからです。値は画面にそのまま出し、判断は担当が行います。
絞り込みの条件と重み付けは、たとえば次のようになります(公式ページの書き方による)。
filter(改善措置の答え):
(doc_kind: ANY("haccp_plan") AND line: ANY("grilled_fish")
AND plan_ver: ANY("v7") AND ccp_id: ANY("CCP2"))
OR (doc_kind: ANY("prp_procedure") AND topics: ANY("temperature_control"))
filter(過去の是正の一覧):
doc_kind: ANY("corrective_record") AND line: ANY("grilled_fish")
AND ccp_id: ANY("CCP2")
boostSpec(過去の是正の一覧):
conditionBoostSpecs: [{ condition: "doc_kind: ANY(\"corrective_record\")",
boostControlSpec: { fieldName: "recorded_on", attributeType: "FRESHNESS",
interpolationType: "LINEAR",
controlPoints: [{ attributeValue: "30D", boostAmount: 0.1 },
{ attributeValue: "730D", boostAmount: 0.0 }] } }]
公式ページでは、ANY は指定した値のどれかに完全に一致するときに真になり、AND・OR と括弧で組み合わせられ、絞り込みに使う項目はスキーマの画面でインデックス可能にしておく必要があるとされています。重み付けは、FRESHNESS の型で日付の項目と ISO 8601 の期間(30D など)を使い、重みの値は -1 から 1 の範囲で、0.1 以下のような小さい値から始めることが勧められています。
AIに処理させる
answer メソッドにさせるのは、その系列のいまの版の計画の、その重要管理点の節と手順書から、改善措置と確かめることを、計画の言葉と順番のまま引用付きでまとめることです。 ロットの扱いは書かせません。
| 返させるもの | 中身 | 返せないときの扱い |
|---|---|---|
| 改善措置 | 計画に定めた、逸脱が分かったときに行うことと順番 | 見つからなければ「改善措置の記載なし」 |
| 確かめること | 原因の確かめ方、測り直しの方法、ラインの調整の方法 | 見つからなければ「記載なし」 |
| 記録すること | 計画が逸脱のときに記録するよう定めている項目 | 見つからなければ「記載なし」 |
| 連絡する先 | 計画や手順書が定める連絡の先と順番 | 原文のまま引用する |
search メソッドにさせるのは、管理基準の原文の抜き出しと、過去の是正の記録の一覧です。 抽出型の回答は最大5件と公式ページにあり、その重要管理点の管理基準の文を、計画の原文のまま見せます。
| させないこと | 理由 |
|---|---|
| ロットを出荷してよいか、廃棄すべきかを書く | ロットの扱いは品質管理の課長が決める |
| 食品として安全か、問題ないかを書く | 食品の安全の判断は、計画と検証の結果に基づいて人が行う |
| 管理基準の数値を文章で書く | 丸めや言い換えで、守る値が書き換わる |
| 過去の是正の対処を、改善措置として書く | 計画の改定で外したやり方が戻る |
| 別の系列や古い版の計画の記載を書く | 重要管理点の番号と改善措置が系列と版で違う |
4行目がいちばん起きやすい失敗です。 過去の是正の記録には「再加熱して出荷」のような具体的な対処が書かれており、モデルはそれを計画の改善措置より分かりやすい手順として答えに取り込みがちです。答えの側の絞り込みから是正の記録を外し、計画と手順書だけにします。
指示内容を固定する
answer メソッドでは、回答の口調や詳しさをプロンプトの前置き(preamble)で指定できます。前置きを次のようにします。
あなたは水産加工の工場の品質管理課のための、衛生管理の計画の資料係です。
検索で見つかった衛生管理の計画と一般衛生管理の手順書だけを根拠に、次の順で答えてください。
1. 改善措置(計画に定めた、逸脱が分かったときに行うことと順番)
2. 確かめること(原因の確かめ方、測り直しの方法、ラインの調整の方法)
3. 記録すること
4. 連絡する先と順番
守ること:
- 計画の言葉と順番のまま書いてください。言い換えないでください。
- 温度、時間、回数などの数値を書かないでください。数値は「管理基準の原文を参照」と書いてください。
- ロットを出荷してよいか、廃棄すべきかを書かないでください。
- 食品として安全か、問題ないかを書かないでください。
- 重要管理点の番号と名前、機器の名前は原文の表記のまま写してください。
- 見つからない項目は「記載なし」と書いてください。
- 検索結果に無いことを書かないでください。
「安全か、問題ないかを書かない」を入れるのは、逸脱の報告への答えの結びに、モデルが「軽微な逸脱のため品質への影響は限定的と考えられます」と書きがちだからです。 その一文は、ロットの扱いの判断のように読まれます。
あわせて、answer メソッドの設定を次のようにします。
| 設定 | 値 | 理由 |
|---|---|---|
引用(includeCitations) | 有効 | 文ごとに出典を示させる。既定は無効 |
関連性の低い内容の無視(ignoreLowRelevantContent) | 有効 | 関係の薄い節から無理に答えさせない |
根拠の支持による絞り込み(groundingSpec の filteringLevel) | FILTERING_LEVEL_HIGH から試す | 支えの弱い答えを外す。未設定だと絞り込みが掛からない |
回答の言語(answerLanguageCode) | ja | 日本語で答えさせる |
絞り込み(filter) | 前処理で組み立てた答えの側の条件 | その系列・いまの版・その重要管理点 |
公式ページでは、基準に届かない答えは返されず、LOW_GROUNDED_CONTENT が理由として返る例があります。引用の位置は UTF-8 のバイト単位なので、日本語の答えに印を差し込むときは文字の位置に直します。
出力形式を固定する
中継プログラムが、応答と台帳・フォームの値を次の形にそろえて品質管理の画面に渡します。
{
"report_id": "",
"line": "",
"ccp_id": "",
"ccp_name": "",
"plan_ver": "",
"is_ccp_deviation": true,
"hold_rule": "",
"measured": { "value": "", "unit": "", "time": "", "lot": "" },
"corrective_answer": "",
"skipped_reason": "",
"citations": [
{ "sentence": "", "doc_id": "", "plan_ver": "", "section": "", "quote": "" }
],
"critical_limit_extracts": [ { "doc_id": "", "plan_ver": "", "text": "" } ],
"past_records": [
{ "record_id": "", "recorded_on": "", "deviation_type": "",
"plan_ver_then": "", "older_plan": false, "lot_disposition": "", "verified": true }
]
}
1つ目の理由は、hold_rule を答えと別に、社内の決まりのまま持てることです。 重要管理点の逸脱なら、画面のいちばん上に、答えより先に出ます。
2つ目は、critical_limit_extracts で管理基準を原文のまま持てることです。 測った値の measured と、計画の原文の管理基準が、画面の同じ枠に並び、担当が見比べられます。 どちらも生成された文ではありません。
3つ目は、older_plan で古い版のときの是正を見分けられることです。 plan_ver_then がいまの版と違えば真にし、一覧で灰色にして「計画の版が古い」と出します。 そのときの対処は、いまの改善措置と違う可能性があります。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 逸脱の報告のフォーム | フォームの送信の通知 | 報告の受け取り |
| 重要管理点の台帳 | 系列と番号での引き当て(読み取りのみ) | 名前・いまの版・保留の決まり |
| Vertex AI Search | answer メソッドと search メソッドの API | 改善措置、管理基準の原文、過去の是正 |
| Cloud Storage | 文書の写し | 引用した箇所の原文の表示 |
| 是正の記録 | 品質管理の画面からの書き出し | 逸脱・改善措置・ロットの扱い・引用した版と節 |
現場への指示は、いまどおり品質管理の担当が電話か現場で行います。 画面の内容を現場のタブレットに送ることもできますが、指示の主体は担当のままにします。 計画の原文を読んだ人が、現場の状況を聞いたうえで指示します。
人が確認する
- 系列と版を見る … 画面の上に出る系列・重要管理点・計画の版が、報告と合っているかを確かめます
- 管理基準の原文と測った値を見比べる … 抜き出しの原文と報告の値を並べて読みます
- 改善措置の引用を読む … 答えの文ごとに、計画の原文の節を開いて確かめます
- ロットの扱いを決める … 過去の是正の一覧を見たうえで、課長と決めます
- 記録を書く … 行った改善措置と、引用した計画の版と節を、是正の記録に書きます
2番目と4番目を省かないでください。 測った値と管理基準を見比べるのは、報告の誤りを見つける最後の機会です。 ロットの扱いは、過去にどう扱ったかではなく、いまの計画と検証の結果で決めます。
目標は、90件をならして1件8分です。 原文を読み、指示し、記録する時間です。過去の件を覚えている2名は、毎週、答えと実際の改善措置を見比べます。 「改善措置の記載なし」が同じ重要管理点で続けば、計画の節の分け方か、計画そのものに改善措置の書き漏れがあります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 重要管理点が台帳に無い | 検索に回さず、報告をそのまま担当に出す |
| 重要管理点の逸脱 | 検索を待たず、ロットの区分と保留の決まりを出す |
| いまの版の計画にその重要管理点が無い(改定で外れた) | 答えを出さず、計画の改定の記録を担当に出す |
| 改善措置の記載が無い | 「記載なし」と出し、課長に連絡する |
| 答えが作られなかった(支持が低い) | 答えを出さず、管理基準の原文と過去の是正の一覧だけを出す |
| 同じロットの逸脱が続けて届く | 同じ件として束ね、答えを作り直さない |
| 異物の混入が疑われる報告 | 検索を待たず、社内の異物の対応の手順を出す |
| 検索が応答しない | いまどおり計画の文書を開いて探す |
2行目と7行目の「検索を待たない」は、常に残しておきます。 この構成は、計画を探す時間を縮めるためのもので、ロットを止める判断を遅らせるものであってはなりません。
記録を残す
- 報告の内容(系列、ライン、重要管理点、測った値、時刻、ロット)
- 特定した重要管理点と計画の版、出した保留の決まり
- 絞り込みの条件、answer メソッドと search メソッドの応答の全文
- 担当が行った指示、ロットの扱いと決めた人
- 是正の記録として書いた内容と、引用した計画の版と節
最後の行が、計画の検証の材料になります。 別表第十八は、措置の効果を定期的に検証する手順を定めることと、措置の内容に関する書面と実施の記録を作成することを求めています。どの版のどの節に沿って改善措置を行ったかが残れば、検証のときに、改善措置が効いているかを版ごとに見られます。
04実装レベルの3段階
半自動化で、1件20分が13分ほどになります。 計画を探す時間は減りますが、電話で系列と重要管理点を聞き取ることと、是正の記録を一から書くことが残ります。本格構成で8分になり、この段階が本記事の想定です。 段階を進める前に、重要管理点の台帳を作ってください。 系列ごとの番号と名前、いまの版、保留の決まりが一覧になっていないと、フォームで選ばせる一覧も、検索の絞り込みも作れません。
05工数削減シミュレーション
導入後 90件 × 8分 ÷ 60 = 12 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 冷凍の切り身、干物、焼き魚・煮魚などの加熱の加工品といった複数の製品の系列を持ち、製品の系列ごとに HACCP に沿った衛生管理の計画を作っている水産加工の会社。現場から管理基準の逸脱の報告が月に数十件以上あり、計画の改善措置と過去の是正の記録を品質管理の担当が探している場合。計画の版の改定が年に何度かあり、どれがいまの版かを現場が取り違えやすい場合。Google Cloud を使っている、または使い始められる場合。
- 製品の系列が1つで、重要管理点も数か所に限られ、改善措置を紙の1枚で済ませられる場合。衛生管理の計画が文書になっておらず、改善措置が担当者の経験の中にしか無い場合。取引先との契約で、衛生管理の計画と是正の記録を外部のクラウドに置けない場合。なお、逸脱したロットを出荷するか、廃棄するか、加工し直すかの判断と、食品の安全についての判断は、この構成では代替できません。
07最小構成で試す方法
- 過去1年の是正の記録から、30件の逸脱を選ぶ(重要管理点の逸脱と一般衛生管理の事象、計画の改定の前と後の件を混ぜる)
- その30件の系列の計画を、いまの版と1つ前の版の両方とも重要管理点の節ごとに分け、系列・版・重要管理点を付けて、Vertex AI Search のデータストアを作る
- 手順書と、同じ系列の過去の是正の記録を取り込み、そのときの計画の版を付ける
- 30件の報告から絞り込みの条件と問い合わせ文を作り、answer メソッドと search メソッドを短いスクリプトで呼んで、答えと抜き出しを見る
- 答えの改善措置が、いまの版の計画と合うかを、過去の件を覚えている2名が突き合わせる
30件のうち、答えに管理基準の数値や過去の対処が入った件数と、古い版の記載が答えに出た件数を最初に数えます。 どちらか1件でもあれば、前置きと絞り込みの条件を直してから先へ進みます。
| 出てきた内容 | 判断 |
|---|---|
| いまの版の改善措置が引用付きで出た | 報告のフォームと台帳の連携に進む |
| 答えに数値や過去の対処が入った | 前置きと答えの側の絞り込みを直す |
| 古い版の記載が出た | 版のメタデータと台帳の版を直す |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 過去の対処が改善措置として答えに入る | 答えの側を計画と手順書だけに絞り、是正の記録は一覧に分ける |
| 管理基準の数値が丸められる | 前置きで数値を禁じ、抽出型の回答で原文を見せる |
| 系列の違う「CCP2」を取り違える | フォームで系列と名前の一覧から選ばせ、台帳で引き当てる |
| 古い版の計画が答えに出る | 答えの側をいまの版に絞り、是正の記録に当時の版を付ける |
| 答えが「影響は限定的」と結ぶ | 前置きで安全の判断を書かせない |
| 測った値から逸脱の重さを判断する | 問い合わせ文に値を入れない |
| 過去の是正が古いものから並ぶ | 記録の日付で新しいものに小さく重みを付ける |
| 作業者の名前が検索に入る | 書き出しの段で名前を役割に置き換える |
上の2行が、この構成の失敗のほとんどです。 どちらも、計画が定めたことと、計画の外にある情報が、答えの中で混ざる問題です。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 衛生管理の計画、手順書、是正の記録、逸脱の報告です。逸脱の記録は、取引先の監査や行政の確認で見られる記録です。
- 改善措置を計画から外さない … 食品衛生法施行規則の別表第十八は、危害要因の分析、重要管理点の決定、管理基準の設定、モニタリングの方法の設定に続けて、管理基準を逸脱したことが判明した場合の改善措置を設定すること、効果を定期的に検証する手順を定めること、措置の内容に関する書面とその実施の記録を作成することを挙げています。答えは計画が定めた改善措置だけから作り、計画を変えるのはいまどおり品質管理課の手続によります
- ロットの扱いを人に残す … 出荷・加工し直し・廃棄の判断は、課長が計画と検証の結果で決めます。 答えにも画面にも、扱いの推奨を出しません
- 作業者の名前を入れない … 是正の記録を取り込むときに、名前を役割に置き換えます。逸脱を起こした人を探す道具にしません
- データの置き場所を確かめる … 公式ページでは、データストアの場所は
globalのほかus、euのマルチリージョンで、日本のリージョンは載っていません。 取引先との契約と社内の決まりに照らして決めます - ロットを止める判断を遅らせない … 重要管理点の逸脱と異物の疑いでは、検索を待たずに社内の決まりを出します
誤りが起きた場合のリスクは、計画の外のやり方で改善措置を行うことと、管理基準の値を取り違えることの2つです。 前者は答えの側の絞り込みで、後者は数値を答えから外して原文の抜き出しで見せることで防ぎます。
10まず何から始めるか
1週目:重要管理点の台帳を作る
品質管理課で、系列ごとの重要管理点の番号と名前、いまの計画の版、重要管理点の逸脱のときの保留の決まりを一覧にします。
2週目:30件の系列の計画を節に分ける
第8章の30件に出てくる系列の計画を、いまの版と1つ前の版とも重要管理点の節ごとに分け、メタデータを付けます。過去の是正の記録に、そのときの計画の版を付けます。
3週目:30件で試す
第8章の手順でデータストアを作り、30件の報告で答えと抜き出しを確かめます。答えに数値や過去の対処が入っていないかと、古い版の記載が出ていないかを最優先で見ます。
4週目:報告のフォームを作る
系列・ライン・重要管理点を一覧から選び、測った値・時刻・ロットを入れるフォームを作り、現場の班長に試してもらいます。
2か月目: 全系列の計画と5年分の是正の記録を取り込み、担当が系列と重要管理点を選んで使い始めます。3か月目以降: 報告のフォームからの自動の問い合わせ、保留の決まりの表示、古い版の印、是正の記録への書き出しを足し、1件20分が何分になったかを実測します。過去の件を覚えている2名に聞かなくても、いまの版の改善措置と管理基準の原文をそろえて現場に指示できるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
answer メソッドが検索結果から回答を作り、引用のメタデータを付けられること(includeCitations の既定は無効)。前置き(preamble)で回答の口調・詳しさを指定できること。filteringLevel の値と、未設定なら絞り込みが掛からないこと。基準に届かない答えが返されず LOW_GROUNDED_CONTENT が返る例。引用の位置が UTF-8 のバイト単位であること。Vertex AI Search が Agent Search へ改称中であること | Google Cloud: Get answers and follow-ups | 2026-10-29 |
| 抽出型の回答が元の文書の文をそのまま返し、正確な言い回しが要るときに要約の代わりに使えること。抽出型の回答が最大5件であること。非構造のデータでは Enterprise エディションの機能が要ること | Google Cloud: Get snippets and extracted content | 2026-10-29 |
boostSpec の conditionBoostSpecs・boostControlSpec(FRESHNESS・LINEAR・controlPoints)の書き方。期間を ISO 8601(30D など)で書くこと。重みの値が -1 から 1 で、0.1 以下から始めるのが勧められていること | Google Cloud: Boost search results | 2026-10-29 |
絞り込みに使う項目をインデックス可能にすること。ANY が完全一致であること。AND・OR と括弧で組み合わせられること | Google Cloud: Filter search for structured or unstructured data | 2026-10-29 |
データストアの場所が global と、us・eu のマルチリージョンで、日本のリージョンの記載が無いこと | Google Cloud: Agent Search locations | 2026-10-29 |
| 日本語(ja-JP)が検索の機能と回答の機能で対応とされていること | Google Cloud: Languages and locales | 2026-10-29 |
| 別表第十八が、危害要因の分析、重要管理点の決定、管理基準の設定、モニタリングの方法の設定、管理基準を逸脱した場合の改善措置の設定、検証の手順、措置の内容に関する書面と実施の記録の作成を挙げていること(2026-04-01 施行の版) | e-Gov 法令API: 食品衛生法施行規則 | 2026-10-29 |
ロットの扱いと食品の安全の判断は、自社の衛生管理の計画と検証の結果、品質管理の責任者の判断で行ってください。 本記事は、上記の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-2248)についてのご相談はこちらから。
