飲食のフランチャイズ本部が、加盟店からの店舗運営の質問に、店舗運営マニュアルと本部の通達を引いて根拠付きで答える
加盟店の店長が本部のポータルで「新メニューの盛り付けの手順は」「食洗機のこのエラーは」と聞くと、そのブランドのマニュアルと通達から、いま効いている箇所を引用して答えます。食品の安全の判断と契約・費用の質問は、答えずに本部の担当へ回します。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- その他/小売/飲食
- 対象部門
- カスタマーサポート
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 人手が足りない/問い合わせが多い/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 品質標準化/対応スピード向上/検索時間短縮
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 担当が、電話・メール・ポータルで加盟店の質問を受け、店舗とブランドを確かめる
- そのブランドのマニュアルを開き、目次と検索で該当の節を探す
- 通達の一覧で、その節を差し替えた通達や、期間の限られた取扱いが出ていないかを探す
- 答えを伝え、質問と回答を記録の表に書く
- 食品の安全に関わるものは品質管理の担当に、契約や費用に関わるものは担当のスーパーバイザーに回す
- 人店長が本部のポータルの質問の画面で、質問の種類を選び、質問を書いて送る
- 自動中継プログラムが、店長のアカウントから店舗とブランドを引き、質問の種類と語で、食品の安全・契約と費用の質問を先に振り分ける
- 自動運営の質問は、ブランド・今日の日付・差し替わった節の除外で絞り込みの条件を作る
- 自動Agent Search(Vertex AI Search)の answer メソッドが、マニュアルと通達から該当箇所を探して引用付きで答える
- 自動中継プログラムが、引用の有無と根拠のスコアを確かめ、`answer`(店長へ返す)/`staff`(担当へ回す)に分ける
- 人店長が回答と引用を読み、続けて聞きたいことがあれば同じ画面で聞く
- 人担当が `staff` の質問に答え、スーパーバイザーと品質管理の担当がそれぞれの質問を受ける。担当は `answer` の回答を毎日抜き取りで読む
各工程の詳しい説明を読む
- 担当が、電話・メール・ポータルで加盟店の質問を受け、店舗とブランドを確かめる
- そのブランドのマニュアルを開き、目次と検索で該当の節を探す
- 通達の一覧で、その節を差し替えた通達や、期間の限られた取扱いが出ていないかを探す
- 答えを伝え、質問と回答を記録の表に書く
- 食品の安全に関わるものは品質管理の担当に、契約や費用に関わるものは担当のスーパーバイザーに回す
(a)同じ質問が何度も来る。 新メニューの発売の週は、同じ盛り付けの質問が数十店から来ます。1件ごとに担当がマニュアルと通達を開き、同じ答えを繰り返します。
(b)差し替わった節に気づかない。 マニュアルの節を読んで答えたが、先月の通達で手順が変わっていた、ということが起きます。店長が古い手順で作り続けると、店ごとに味と盛り付けがずれます。
(c)期間の限られた取扱いが混ざる。 販促の通達は期間が決まっていますが、終わった後も通達の一覧に残ります。終わったキャンペーンの条件で答えると、店頭で客に違う説明をすることになります。
(d)担当の手が回らない。 6名で月900件を受けると、昼と夜の営業の前に質問が集中する時間帯は電話がつながりません。店長は答えを待たずに自分の判断で進めます。
- 【人】 店長が本部のポータルの質問の画面で、質問の種類を選び、質問を書いて送る
- 【自動】 中継プログラムが、店長のアカウントから店舗とブランドを引き、質問の種類と語で、食品の安全・契約と費用の質問を先に振り分ける
- 【自動】 運営の質問は、ブランド・今日の日付・差し替わった節の除外で絞り込みの条件を作る
- 【自動】 Agent Search(Vertex AI Search)の answer メソッドが、マニュアルと通達から該当箇所を探して引用付きで答える
- 【自動】 中継プログラムが、引用の有無と根拠のスコアを確かめ、
answer(店長へ返す)/staff(担当へ回す)に分ける - 【人】 店長が回答と引用を読み、続けて聞きたいことがあれば同じ画面で聞く
- 【人】 担当が
staffの質問に答え、スーパーバイザーと品質管理の担当がそれぞれの質問を受ける。担当はanswerの回答を毎日抜き取りで読む
2番目で、食品の安全の質問を検索より前に振り分けるのが、この設計の前提です。 検索してから判断すると、マニュアルの「冷蔵の温度」の節を引用して、「10℃以下で保管とあるので、使えません」のような判断をAIが書く余地が残ります。 その種の質問は、引用の前に人へ回します。
5番目の振り分けは、引用と数値で決めます。 マニュアルにも通達にも当たらなかった質問を、AIの一般論で答えさせないためです。
02今回想定するシステム構成
店舗運営マニュアル(ブランド・節) 本部の通達(差し替え・期間) │ ブランド・節の番号・差し替える節・期間を付ける ▼ Cloud Storage ── メタデータ(JSON Lines) ▼ Agent Search(Vertex AI Search)── データストア(レイアウト パーサー、見出しの付与) │ brand/doc_kind/section_id/replaced_by/effective_from/effective_to ▼ 本部のポータルの質問の画面 ──【トリガー】店長の送信 ▼ 中継プログラム(Python、Cloud Run) ├──▶ 食品の安全・契約と費用の質問を先に振り分ける ├──▶ ブランドと今日の日付で絞り、差し替わった節を外す ├──▶ answer メソッド:引用付きの回答、続けての質問 └──▶ 引用と根拠のスコアで answer / staff ▼ 店長の画面へ返信 / 店舗支援部の対応の一覧
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の answer メソッド | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ─ |
| 連携 | 中継プログラム(Python。Cloud Run で動かし、ポータル・検索・対応の一覧をつなぐ) | Node.js で同じものを書く |
| 保管 | Cloud Storage(マニュアルと通達の写しとメタデータ、質問と回答の記録) | ─ |
ポータルは、店長が通達を読むためにすでに使っている画面です。 質問の画面を1つ足し、ログインした店長のアカウントから店舗とブランドを引きます。新しいアカウントを配る必要はありません。
検索の土台は、Agent Search(Vertex AI Search から改称中)の answer メソッドです。 公式のドキュメントでは、answer メソッドは1回ごとに呼び、前のやり取りの session を渡すと、続けての質問を前のやり取りと合わせて解釈します。店長が「持ち帰りの場合は?」と言い足したときに、前の質問のメニューのまま聞けるのは、この機能によります。 質問を言い換えてから検索する機能(queryRephraserSpec)は既定で有効で、回答を求めていない書き込みを見分ける分類(queryClassificationSpec)は既定で無効です。
取り込みには、レイアウト パーサーを使います。 公式では、段落・表・見出しを検出し、チャンクに上位の見出しを付ける設定(includeAncestorHeadings、既定は無効)があり、チャンクの大きさは100〜500トークンです。マニュアルの手順の1行が単独で引かれても、どのブランドのどの節かが分かるように見出しを付けます。 チャンクの設定はデータストアを作った後に変えられません。
03どうやって実装するのか
処理の起点を決める
起点は、店長がポータルの質問の画面で送信したことです。 画面では、質問の種類を最初に選んでもらいます。
| 質問の種類 | 扱い |
|---|---|
| 仕込み・調理・盛り付け | 検索して答える |
| 機器の使い方・エラー | 検索して答える |
| 販促・キャンペーン・レジ | 検索して答える |
| 衛生・清掃の手順 | 検索して答える。ただし語の照合で食品の安全の判断を拾う |
| 食材の状態・温度の逸脱・異物・体調不良の客 | 検索せず、品質管理の担当へ |
| 契約・ロイヤリティ・費用・仕入の価格 | 検索せず、担当のスーパーバイザーへ |
下の2つを選んだ質問は、検索も回答の生成もしません。 受け付けたことと、担当からの連絡の目安だけを返します。種類を選び間違えた質問は、本文の語の照合で拾います(「使えるか」「捨てる」「何℃になっていた」「お客様が具合」など)。
もう一つのトリガーは、通達の発出です。 本部が通達を置くときに、差し替える節の番号と、期間の限られた取扱いなら始まりと終わりの日をメタデータに書きます。取り込みは毎晩行い、差し替えの一覧も同時に作り直します。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 質問 | 質問の種類、本文、送った日時 | ポータルの質問の画面 |
| 店舗の情報 | 店舗、ブランド、直営か加盟か、導入している機器の型 | ポータルのアカウントと店舗の台帳 |
| 店舗運営マニュアル | 仕込み・調理・盛り付け・機器・衛生・接客の手順。ブランドごと・節ごと | 本部の文書(PDF) |
| 本部の通達 | 差し替える節と新しい本文、期間の限られた取扱い、発出の日 | 本部の文書(PDF) |
| 差し替えの一覧 | 通達の番号、差し替える節の番号、差し替えの始まる日 | 通達のメタデータから作る |
質を決めるのは、通達ごとの「差し替える節の番号」です。 通達の本文には「第4章3節を改める」と書いてあっても、機械が読める形で持っていなければ、古い節を外せません。 通達を書く担当が、発出のときに番号を書く決まりにします。
機器の型を持つのは、同じブランドでも店によって食洗機や券売機が違うからです。 機器の章は型ごとに分け、equipment で絞ります。
データの取得方法を決める
マニュアルはブランドごとに節で分け、通達は1通ずつファイルにして Cloud Storage に置きます。公式では、非構造化データは PDF・HTML・DOCX などに対応し、1ファイルの上限は200MBです。メタデータは JSON Lines で、1行ごとに id、structData、content(mimeType と uri)を書きます。
{"id":"ramen-manual-v8-4-3","structData":{"doc_kind":"manual",
"brand":["ramen"],"section_id":"ramen-4-3","topic":["cooking"],
"effective_from":"2026-04-01T00:00:00Z",
"effective_to":"2099-12-31T23:59:59Z"},
"content":{"mimeType":"text/html","uri":"gs://fc-docs/ramen-manual-v8-4-3.html"}}
{"id":"notice-2026-118","structData":{"doc_kind":"notice",
"brand":["ramen"],"replaces":["ramen-4-3"],"topic":["cooking"],
"effective_from":"2026-10-01T00:00:00Z",
"effective_to":"2099-12-31T23:59:59Z"},
"content":{"mimeType":"application/pdf","uri":"gs://fc-docs/notice-2026-118.pdf"}}
中継プログラムは、毎晩の取り込みのときに、通達の replaces から「今日の時点で差し替わっている節」の一覧を作ります。 問い合わせのたびに、その一覧を絞り込みの条件の否定に入れます。公式の構文では、文字の項目は ANY() で完全一致を見られ、- か NOT で否定でき、日時の項目は ISO 8601 の文字列と比べられます。項目はスキーマで索引可能にしておく必要があります。
brand: ANY("ramen")
AND effective_from <= "2026-10-15T00:00:00Z"
AND effective_to >= "2026-10-15T00:00:00Z"
AND NOT section_id: ANY("ramen-4-3","ramen-6-1")
最後の行が、この構成の要です。 差し替えた通達のほうは section_id を持たないので、否定に当たらず残ります。古い節が外れ、新しい本文を持つ通達だけが引かれます。 期間の限られた販促の通達は、終わりの日を過ぎると日付の条件で外れます。
AIへ渡す前に整形する
- マニュアルを節ごとに見出しを付けて分ける … ブランド、章、節の番号が崩れないよう、本部の原稿からHTMLで書き出します。機器の章は型ごとに分けます
- 通達に差し替えの情報を付ける … 差し替える節の番号、始まりの日、期間の限られた取扱いなら終わりの日を書きます
- 差し替えの一覧を作る … 今日の時点で差し替わっている節を、ブランドごとに並べます
- 質問の本文を確かめる … 食品の安全・契約と費用の語を照合し、当たれば検索の前に振り分けます。客の名前や電話番号が書かれていたら外します
2番目は、通達を書く担当の仕事にします。 差し替える節をAIに推し量らせると、似た題名の別の節を外してしまうことがあります。 外された節は、誰にも気づかれないまま答えに出なくなります。
AIに処理させる
させるのは、そのブランドのいま効いているマニュアルと通達から、質問に当たる箇所を探し、引用して手順を並べることです。
| させること | 中身 |
|---|---|
| 手順を並べる | マニュアルか通達の手順を、番号を付けて本文に沿って |
| 出典を示す | マニュアルの節の番号、または通達の番号と発出の日 |
| 期間を示す | 期間の限られた取扱いなら、始まりと終わりの日 |
| 続けての質問に答える | 同じ session で、前の質問の条件を引き継いで |
| させないこと | 理由 |
|---|---|
| 食材を使えるか、提供してよいかの判断 | 品質管理の担当が状況を聞いて決める |
| マニュアルに無い調理の工夫を勧める | 店ごとに味がずれる |
| 契約・ロイヤリティ・費用への回答 | 担当のスーパーバイザーが答える |
| 機器の分解や修理の手順の推測 | 取扱説明書と保守の業者の範囲 |
answer メソッドの設定は次のようにします。
| 設定 | 値 | 理由 |
|---|---|---|
includeCitations | 有効 | 節と通達の番号を示す(既定は無効) |
ignoreLowRelevantContent | 有効 | 関係の薄い節で答えない |
queryClassificationSpec | NON_ANSWER_SEEKING_QUERY | 「ありがとう」などに回答を作らない |
ignoreNonAnswerSeekingQuery | 有効 | 同上 |
filter | ブランド、今日の日付、差し替わった節の除外 | いま効いている箇所だけを引く |
groundingSpec | includeGroundingSupports を有効 | 文ごとの根拠のスコアを受け取る |
session | 同じ質問の続き | 言い足しで続けて聞く |
promptSpec.preamble | 下の指示 | 答え方の規則を与える |
queryRephraserSpec は既定のまま有効にします。 店長の質問は「つけ麺 麺 何g」のような短い書き方が多く、言い換えのあとに検索したほうが節に当たりやすいためです。 公式では、言い換えの段数は既定で1、最大で5です。
指示内容を固定する
answer メソッドの promptSpec.preamble に、次の指示を入れます。中継プログラムは、ブランド、機器の型、今日の日付を検索の文の先頭に付けます。
あなたは飲食のフランチャイズ本部の店舗支援の担当として、加盟店の
店長からの店舗運営の質問に、店舗運営マニュアルと本部の通達を根拠に
答える立場です。読むのは営業中の店長です。短く、手順の順に書きます。
【前提】
検索の文の最初に、ブランド、機器の型、今日の日付が並んでいます。
検索の対象は、そのブランドの、今日に効いているマニュアルと通達だけです。
通達で差し替わったマニュアルの節は、検索の対象から外してあります。
【答え方】
1. 手順を、番号を付けて、マニュアルか通達の本文に沿って書く
2. 最後に、出典(マニュアルの節の番号、または通達の番号と発出の日)を書く
3. 期間の限られた取扱いなら、始まりと終わりの日を書く
【厳守事項】
- 食材を使えるか、提供してよいか、捨てるべきかを書かないでください。
温度や時間の基準が書かれた節を引用しても、当てはめの結論を
書かないでください。
- 検索結果に無い手順、分量、温度、時間を書かないでください。
一般的な調理の知識で補わないでください。
- 別のブランドのマニュアルの書き方で答えないでください。
- 契約、ロイヤリティ、費用、仕入の価格には答えず、
「担当のスーパーバイザーからご連絡します」とだけ書いてください。
- 該当する箇所が見つからないときは、
「マニュアルと通達で該当する箇所が見つかりませんでした。
店舗支援部からご連絡します」とだけ書いてください。
「当てはめの結論を書かない」を明記しないと、AIは基準の節を引用して判断を書きます。 「スープを保温の温度より低いまま2時間置いた」と聞かれると、保温の節を引いて「再加熱すれば提供できます」と書きます。その判断は、品質管理の担当が状況を聞いてから下すものです。 指示と語の照合の両方で止めます。
出力形式を固定する
answer メソッドの返り値と店舗の情報を、中継プログラムが次の形にまとめます。
{
"question_id": "",
"store_id": "",
"brand": "ramen | teishoku",
"category": "cooking | equipment | promotion | hygiene | food_safety | contract",
"answer_text": "",
"citations": [ { "doc_kind": "manual | notice", "section_id": "",
"notice_no": "", "effective_to": "", "quote": "", "uri": "" } ],
"excluded_sections": [],
"grounding_score": 0,
"route": "answer | staff",
"route_reasons": []
}
引用は、answer メソッドの references から取ります。references の各要素には、チャンクの本文と、文書の structData が付いて返ります。引用の位置(startIndex/endIndex)は UTF-8 のバイト数なので、日本語の文を文字数で切るとずれます。excluded_sections には、その問い合わせで外した節を残します。
route は次の規則で決めます。
route_reasons | 立てる条件 |
|---|---|
food_safety | 質問の種類か本文の語が、食品の安全の判断に当たる |
contract | 質問の種類か本文の語が、契約・費用に当たる |
judgement_words | 回答に「使えます」「提供できます」「廃棄してください」などの語がある |
no_citation | 引用が無い、または answerSkippedReasons が返った |
weak_support | 根拠のスコアが、本部が決めた値より低い文がある |
どれにも当たらないものだけが、店長に直接返ります。 food_safety は品質管理の担当に、contract はスーパーバイザーに、残りは店舗支援部の担当に回ります。
店長の画面には、answer_text を次のような形で出します。 出典の行は中継プログラムが citations から組み立て、AIの文には任せません。
【期間限定 つけ麺の盛り付け】
1. 麺を丼の手前半分に、ゆで上げの量のまま盛る
2. チャーシューは2枚、麺の右奥に立てかける
3. ねぎは別皿にせず、つけ汁の器に乗せる
出典:通達 2026-118(2026-10-01 発出)
期間:2026-10-01 〜 2026-12-31
出典に通達とマニュアルの両方が出るときは、通達を上に並べます。 店長が「マニュアルと違う」と迷ったときに、新しいほうが先に目に入るようにします。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 本部のポータル | 質問の画面から中継プログラムを呼ぶ | 質問を受け取り、回答と引用を返す |
| 店舗の台帳 | 読み出し | ブランド、機器の型を引く |
| Agent Search | answer メソッド | 引用付きの回答、続けての質問 |
| 店舗支援部の対応の一覧 | 1行足す | staff を回す。品質管理とスーパーバイザーの分も同じ一覧で振り分ける |
food_safety の1行は、一覧に足すだけでなく、品質管理の担当の電話にも知らせます。 営業中の店で食材の扱いを迷っている状態を、一覧の順番待ちにしないためです。
人が確認する
この構成では、運営の手順の回答は人の確認を経ずに店長に返ります。 そのために、返してよい回答の範囲を引用の有無と根拠のスコアで狭く取り、食品の安全と契約・費用は最初から外しています。
- 店長が引用を読む … 回答の最後の出典を見て、気になればポータルで節や通達を開きます
- 担当が
staffに答える … 引用の候補があれば、それを読んでから答えます - 担当が
answerを毎日抜き取りで読む … 1日20件ほどを読み、差し替えの漏れや言い過ぎが無いかを見ます - スーパーバイザーが巡回で確かめる … 店で回答どおりに作っているかを見ます
3番目で差し替えの漏れが見つかったら、回答を直すより先に通達のメタデータを直します。 古い節が引かれた原因は、ほとんどが replaces の書き漏れです。
運用を始めてから1か月は、すべての回答を店長に返す前に担当が読みます。 抜き取りに移るのは、judgement_words と差し替えの漏れが出なくなってからです。
例外に対処する
| 起きること | 対応 |
|---|---|
| 質問の種類を選び間違えた | 本文の語の照合で food_safety・contract を拾う |
| 機器の型が台帳に無い | 機器の絞り込みを外し、staff |
通達の replaces が空なのに本文に「改める」とある | 取り込みのときに検知し、通達を書いた担当に知らせる |
| 期間が終わった販促を聞かれた | 引用が無ければ no_citation。担当が「終了しています」と答える |
| 回答に判断の語が出た | 語を消し、judgement_words で担当へ |
| 続けての質問で別のメニューや機器に話が移った | 画面の「新しい質問」で session を切ってもらう。前の条件が混ざった回答は抜き取りで拾う |
| 直営店と加盟店で決まりが違う | 直営向けの通達に store_type を付け、加盟店の質問では外す |
| 検索の呼び出しが失敗した | 「店舗支援部からご連絡します」と返し、一覧へ |
3行目の検知は、通達の本文に「改める」「差し替える」「廃止する」の語があるのに replaces が空のものを拾うだけの照合です。 差し替えの漏れを、発出の夜のうちに見つけます。
記録を残す
- 質問の内容(客の名前と電話番号は外したもの)、店舗、ブランド、日時
- 絞り込みの条件と、外した節の一覧(
excluded_sections) - answer メソッドの返り値の全文と
session routeとroute_reasons、担当の回答- 抜き取りで読んだ結果と、見つかった差し替えの漏れ
外した節の一覧を残すのは、後から「なぜこの店にこの手順で答えたか」を説明するためです。 差し替えの漏れは、その日に外れていなかった節を見れば分かります。
04実装レベルの3段階
最小構成では件数がさばけません。 差し替わった節を毎回手で除く必要があり、確かめるための段階です。 半自動化で、8分が5分程度になります。 探す時間は減りますが、電話を受けて答えを伝える時間が残ります。本格構成で3分になり、この段階が本記事の想定です。 差が大きいのは、運営の手順の質問が担当を通らずに店長に返ることです。
05工数削減シミュレーション
導入後 900件 × 3分 ÷ 60 = 45 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 複数のブランドで百店を超える加盟店を持ち、店舗運営マニュアルと、メニューの改定や販促のたびに出す通達で運営の決まりを伝えている飲食のフランチャイズ本部。加盟店からの「マニュアルのどこに書いてあるか」「この通達でどこが変わったか」という質問に、店舗支援の担当が電話とメールで答えて手が回らなくなっている場合。
- 直営店だけで、店長が本部の担当にすぐ聞ける場合。マニュアルが薄く、通達もほとんど出ない場合。食材を使ってよいか、提供してよいかといった食品の安全の判断をAIの回答に任せたい場合(この構成はその種の質問を担当に回します)。アルバイトを含む店舗の全員が直接使う形にしたい場合(店長以上の18歳以上の利用者に限る前提です)。
07最小構成で試す方法
- 質問の多いブランドで、マニュアルの調理と機器の章と、直近半年の通達を集める
- 過去1か月の質問から30件を拾う(通達で差し替わった手順の質問、終わった販促の質問、食品の安全に関わる質問を数件入れる)
- 手元のAIサービスに、差し替わった節を除いたマニュアルと通達を貼り、第7章の指示を貼って1件ずつ入れる
- 出てきた回答を、当時の担当の回答と突き合わせる
| 出てきた内容 | 判断 |
|---|---|
| 当時と同じ手順と出典を示した | 検索基盤への取り込みに進む |
| 食品の安全の質問に「使えます」と書いた | 検索の前の振り分けを最初から作る |
| 差し替わった古い手順を引いた | 通達に差し替える節の番号を書く作業が先 |
2行目が出ることは珍しくありません。 温度と時間の基準が書かれた節を渡すと、AIは当てはめを書きたがります。検索の前に振り分ける理由が、ここで分かります。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 通達で差し替わった古い手順で答える | 通達の replaces で差し替えの一覧を作り、否定の絞り込みで外す |
replaces の書き漏れ | 本文の「改める」と replaces の空を照合し、発出の夜に知らせる |
| 終わった販促の条件で答える | 通達に終わりの日を書き、日付で絞る |
| 食品の安全の質問に判断を書く | 検索の前に振り分け、回答の語も照合する |
| 別のブランドの手順で答える | ブランドで絞り、指示でも禁じる |
| 店の機器と違う型の手順で答える | 機器の章を型ごとに分け、店舗の台帳の型で絞る |
| 短い質問で節に当たらない | 言い換えを有効のままにし、続けての質問で補ってもらう |
| 引用の位置がずれる | 位置は UTF-8 のバイト数。文字数で切らない |
上の4行が、この構成の失敗のほとんどです。 どれも、店長に「いまは効いていない手順」か「答えてはいけない判断」を返してしまう誤りです。差し替えと振り分けを、AIの外の規則で守ります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 店舗運営マニュアルと本部の通達(本部のノウハウを含む内部の文書)、加盟店の質問の内容、店舗の情報です。客の個人の情報は、原則として扱いません。
- 利用者を店長以上の18歳以上のアカウントに限る … Google Cloud の Service Specific Terms は、18歳未満が対象または使いうるウェブサイトやアプリの一部として生成AIのサービスを使うことを禁じています。飲食店のアルバイトには高校生もいるので、店舗の共用のアカウントや全員のアカウントでは使わせず、 店長以上の、本部が年齢を確かめたアカウントに限ります
- 食品の安全の判断を、マニュアルの引用で済ませない … 食品衛生法は、営業者が厚生労働省令で定める基準に従って公衆衛生上必要な措置を定め、守ることを求めています。本部が加盟店とともに定めた衛生の措置の当てはめは、品質管理の担当が状況を聞いて行います
- マニュアルを加盟店の外に出さない … マニュアルと通達は本部のノウハウです。回答の画面は、ログインした店長だけが見られるようにします
- 質問に客の情報を書かせない … 体調不良の客の連絡などで、客の名前や電話番号が書かれることがあります。検索の文から外し、記録にも残しません
- データの置き場所を確かめる … 公式では、データストアの場所は
global・us・euで、日本のリージョンはありません。本部の文書の取扱いの規程と合わせて確かめてください
誤りが起きた場合のリスクは、加盟店が古い手順で作り続けることと、食品の安全の判断をAIの回答で済ませることです。 前者は差し替えの漏れから、後者は振り分けの漏れから起きます。どちらも、AIの外の規則と照合で守ります。
10まず何から始めるか
1週目:節の番号と差し替えの一覧を作る
マニュアルの節に番号を振り、いま効いている通達がどの節を差し替えたかを一覧にします。期間の限られた通達には終わりの日を書きます。
2週目:30件の質問で試す
手元のAIサービスに、差し替わった節を除いたマニュアルと通達を貼り、過去の質問30件を入れます。食品の安全の質問に判断を書いていないか、新しい手順を引いているかを最優先で見ます。
3週目:振り分けの規則を決める
品質管理の担当とスーパーバイザーと、検索の前に回す質問の種類と語を決めます。迷うものは回す側に入れます。
4週目:データストアを作り、担当が使う
マニュアルと通達を取り込み、店舗支援部の担当が電話を受けながら検索の画面で使う運用を始めます。
2か月目: ポータルの質問の画面を作り、10店で店長が直接聞く運用を始めます。最初の1か月は、すべての回答を担当が読んでから返します。3か月目以降: 抜き取りに移り、全店に広げます。通達を出すたびに差し替える節の番号が書かれ、どの店の店長にも同じ日から新しい手順が返るのが当たり前になった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Vertex AI Search が Agent Search へ改称中であること。answer メソッドを1回ごとに呼び、session で続けての質問を前のやり取りと合わせて解釈すること。queryRephraserSpec(既定で有効、段数は既定1・最大5)、queryClassificationSpec(ADVERSARIAL_QUERY/NON_ANSWER_SEEKING_QUERY、既定で無効)、ignoreNonAnswerSeekingQuery、ignoreLowRelevantContent、includeCitations(既定は false)、promptSpec.preamble、groundingSpec の includeGroundingSupports。references にチャンクの本文と structData が付くこと。引用の startIndex/endIndex が UTF-8 のバイト単位であること | Google Cloud: Get answers and follow-ups | 2026-10-15 |
絞り込みの ANY() が列挙した値との完全一致を見ること、- または NOT で否定できること、AND/OR と括弧での組み合わせ、日時の項目を ISO 8601 の文字列と比べられること、項目を索引可能にする必要があること | Google Cloud: Filter custom search for structured or unstructured data | 2026-10-15 |
レイアウト パーサーが段落・表・見出しを検出すること。チャンクの大きさが100〜500トークンで、includeAncestorHeadings(既定は false)で見出しを付けられること。チャンクの設定がデータストアの作成後に変えられないこと | Google Cloud: Parse and chunk documents | 2026-10-15 |
非構造化データの対応形式と、1ファイル200MBの上限。メタデータを JSON Lines で id・structData・content(mimeType・uri)として書くこと | Google Cloud: Prepare data for ingesting | 2026-10-15 |
データストアの場所が global・us・eu で、日本のリージョンが無いこと | Google Cloud: Locations | 2026-10-15 |
| Generative AI Services の Age Restrictions で、18歳未満が対象または使いうるウェブサイト・アプリ・オンラインサービスの一部として生成AIのサービスを使うことが禁じられていること | Google Cloud: Service Specific Terms | 2026-10-15 |
| 食品衛生法第51条(厚生労働大臣が施設の衛生的な管理その他公衆衛生上必要な措置の基準を定め、営業者がその基準に従って措置を定め、遵守すること) | e-Gov 法令API: 食品衛生法 | 2026-10-15 |
食材の扱い、衛生の措置の当てはめ、加盟店との契約に関する判断は、各本部の品質管理の担当と規程に従ってください。 本記事は Google Cloud の公式ドキュメントと e-Gov の法令データで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1631)についてのご相談はこちらから。
