スポーツクラブのフロントが、会則・利用規約と過去の対応の記録を Vertex AI Search で検索し、成人の会員からの問い合わせへの答えの根拠を、その会員に当てはまる規約の版と店舗で絞ってそろえる
会員から休会・会費・退会・施設の利用を聞かれたとき、フロントが会員の番号を入れると、その会員に当てはまる会則の版の条と、過去の対応の記録を検索します。答えの根拠を引用付きでそろえます。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- その他/宿泊
- 対象部門
- カスタマーサポート
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 問い合わせが多い/属人化している/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 品質標準化/対応スピード向上/検索時間短縮
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 会員から問い合わせを受け、会員の番号を聞く
- 会員管理のシステムで、入会日・プラン・所属の店舗・休会の履歴を確かめる
- 共有フォルダから会則の PDF を開き、該当する条を探す
- 入会日を見て、経過の措置の一覧で、前の条件が残っているかを確かめる
- 分からなければ、店長や先輩に聞く。日誌で、前に同じような対応が無かったかを探す
- 会員に答える。手続が要るものは書類を渡す
- 対応を日誌に書く
- 人フロントの職員が、フロントの画面に会員の番号を入れ、問い合わせの種類を選んで、質問の文を入れる。会員の名前は入れない
- 自動会員の番号から、入会日・プラン・所属の店舗を会員管理のシステムから引く
- 自動入会日と経過の措置の一覧から、その会員に当てはまる会則の版と、残っている前の条件を決める
- 自動Vertex AI Search(Agent Search)の answer メソッドで、その版の会則の条と、その店舗の施設の案内だけから、扱いを引用付きでまとめさせる
- 自動search メソッドで、同じ種類の問い合わせへの過去の対応の記録を一覧にする。店長の個別の判断に印を付ける
- 自動返金・特例・規約への苦情・体調に関わる質問なら、店長に回す印を付ける
- 人職員が引用の原文を見て、会員に答える。印の付いたものは店長に回す
- 【自動/人】 対応を日誌に残す。店長が特例を認めたときは、個別の判断の印を付けて登録する
各工程の詳しい説明を読む
- 会員から問い合わせを受け、会員の番号を聞く
- 会員管理のシステムで、入会日・プラン・所属の店舗・休会の履歴を確かめる
- 共有フォルダから会則の PDF を開き、該当する条を探す
- 入会日を見て、経過の措置の一覧で、前の条件が残っているかを確かめる
- 分からなければ、店長や先輩に聞く。日誌で、前に同じような対応が無かったかを探す
- 会員に答える。手続が要るものは書類を渡す
- 対応を日誌に書く
(a)当てはまる版を確かめ忘れる。 4番は、経過の措置の一覧が別のファイルにあるため、忙しい時間ほど省かれます。 最新の会則で答えて、後から会員に「入会したときの説明と違う」と言われます。
(b)過去の対応が日誌に埋もれている。 5番で、日誌は店舗ごと・日ごとの記録で、「休会」で探しても何百件も出ます。 別の店舗の日誌は見られません。
(c)特例が前例として広まる。 先輩が「前に診断書があればさかのぼれた」と覚えていると、店長の個別の判断が、会則の扱いのように別の会員に伝わります。 店長が後から断ると、会員との関係がこじれます。
(d)答えが職員によって違う。 同じ問い合わせに、職員ごとに違う答えをして、会員が店舗を変えて聞き直すことがあります。
- 【人】 フロントの職員が、フロントの画面に会員の番号を入れ、問い合わせの種類を選んで、質問の文を入れる。会員の名前は入れない
- 【自動】 会員の番号から、入会日・プラン・所属の店舗を会員管理のシステムから引く
- 【自動】 入会日と経過の措置の一覧から、その会員に当てはまる会則の版と、残っている前の条件を決める
- 【自動】 Vertex AI Search(Agent Search)の answer メソッドで、その版の会則の条と、その店舗の施設の案内だけから、扱いを引用付きでまとめさせる
- 【自動】 search メソッドで、同じ種類の問い合わせへの過去の対応の記録を一覧にする。店長の個別の判断に印を付ける
- 【自動】 返金・特例・規約への苦情・体調に関わる質問なら、店長に回す印を付ける
- 【人】 職員が引用の原文を見て、会員に答える。印の付いたものは店長に回す
- 【自動/人】 対応を日誌に残す。店長が特例を認めたときは、個別の判断の印を付けて登録する
3番目を検索の前に置いているのが、この設計の要です。 版を決めるのは、会員管理のシステムの入会日と、本部の経過の措置の一覧という決まった値です。検索やAIに「この会員にはどの版か」を考えさせません。
5番目の過去の対応は、答えの文には入れません。 職員が「前にどう対応したか」を見比べる材料にとどめ、会員に伝える扱いは会則の条だけから作ります。
02今回想定するシステム構成
会員の問い合わせ(会員の番号・問い合わせの種類・質問の文) ▼【トリガー】フロントの画面で送信 中継プログラム(Python。Cloud Run) │ 会員管理のシステムから入会日・プラン・店舗を引く(読み取りのみ) │ 経過の措置の一覧から、当てはまる会則の版を決める ▼ Vertex AI Search(Agent Search) ├── answer メソッド ── その版の会則の条と店舗の案内から、扱い(引用つき) └── search メソッド ── 同じ種類の問い合わせへの過去の対応の一覧 │ データストア:会則・利用規約(版×条)、施設の案内(店舗ごと)、対応の記録 ▼ 中継プログラム ── 引用の無い文を外す。個別の判断と店長に回す印 ▼ フロントの画面(当てはまる版/答え/引用した原文/過去の対応の一覧) ▼ 【職員が会員に答え、印の付いたものは店長へ】
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の answer メソッドと search メソッド | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ― |
| 連携 | 中継プログラム(Python。Cloud Run で動かし、フロントの画面・会員管理のシステム・検索をつなぐ) | Node.js で同じものを書く |
| 保管 | Cloud Storage(会則の版ごとの写し、施設の案内、対応の記録、問い合わせと答えの記録) | ― |
会員管理のシステムには、読みにいくだけで書き込みません。 休会や退会の手続は、いまどおり職員が会員管理のシステムで行います。新しく作るのは、会則を版と条ごとに分ける作業、経過の措置の一覧を版の決め方として整える作業、フロントの画面です。
この仕組みを使うのは、フロントの職員だけです。 会員のアプリやホームページには出しません。会員は18歳以上の成人だけで、子どものスクールの規約と記録は検索の対象に入れません。 Google Cloud の規約は、生成AIのサービスを18歳未満が使う、または使いうるサービスに組み込むことを禁じています。
土台は、Vertex AI Search の answer メソッドです。 公式ページでは、answer メソッドは検索の結果から回答を作り、回答の文ごとに出典を示す引用を付けられるとされています。結果を答えより先に見せたいときなどは、search メソッドと一緒に使うとされています。公式ページには、Vertex AI Search が Agent Search へ改称中である旨の記載があります。
03どうやって実装するのか
処理の起点を決める
フロントの職員が、画面に会員の番号を入れ、問い合わせの種類を選んで送信したことを起点にします。 種類は「休会」「会費・支払」「退会」「施設の利用」「ゲスト・同伴」「プランの変更」「その他」から選びます。会員の番号を入れずに質問の文だけで検索すると、最新の版と全店舗の案内が混ざるからです。 会員でない人からの問い合わせ(入会の検討中の人)は、「非会員」を選び、最新の版と問い合わせの店舗で検索します。
会員が条件を足して聞き直すときは、同じ会話として続けます。 公式ページでは、前の問い合わせのセッションの ID を渡すと続きとして問えるとされています。「来月の15日から休みたい」と足すと、締め切りの条を引き直した答えが出るようにします。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 問い合わせ | 会員の番号、問い合わせの種類、質問の文(名前を入れない)、受けた店舗 | フロントの画面 |
| 会員の情報 | 入会日、プラン、所属の店舗、休会の履歴 | 会員管理のシステム |
| 経過の措置の一覧 | 改定の日、対象の入会日の範囲、残す条、残す期間の終わり | 本部の表計算のファイル |
| 会則・利用規約 | 版ごと・条ごとの文、施行日 | データストア |
| 施設の案内 | 店舗ごとの施設・営業の時間・使えるプラン | データストア |
| 対応の記録 | 問い合わせの種類、質問、対応、店舗、日付、店長の個別の判断かどうか | データストア |
質を決めるのは、経過の措置の一覧と、対応の記録の「店長の個別の判断かどうか」の2つです。 経過の措置の一覧は、改定のたびに本部が「どの入会日の会員に、どの条を、いつまで残すか」を1行ずつ書きます。 文章の告知ではなく、中継プログラムが読める表にしておきます。
対応の記録からは、会員の名前と番号、体調や家族の事情の細かい記載を外して入れます。 検索に要るのは問い合わせの種類と、どう対応したかです。
データの取得方法を決める
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 会則・利用規約 | 版ごとの PDF を、条ごとに分けて Cloud Storage へ写す | データストアの中身 |
| 施設の案内 | 店舗ごとの案内を、施設ごとに分けて写す | データストアの中身 |
| 対応の記録 | フロントの日誌の書き出し。1件を1つの文書に | データストアの中身 |
| 会員の情報 | 会員管理のシステムの会員の番号での読み取り | 版と店舗の決定 |
| 答えと一覧 | answer メソッドと search メソッドの応答 | フロントの画面 |
会則は、版と条ごとに1つの文書に分け、メタデータに版・条・問い合わせの種類・施行日を持たせます。 公式ページでは、非構造のデータのメタデータは JSON Lines(NDJSON)のファイルで、各行に id、structData(または jsonData)、Cloud Storage の文書を指す content の mimeType と uri を持たせるとされています。1つの条は、たとえば次の1行にします。
{"id": "kaisoku-v3-art14",
"structData": {"doc_kind": "rule", "rule_ver": "v3", "article": "第14条 休会",
"topic": "suspend", "effective_from": "2025-04-01",
"plan": ["regular", "daytime", "all"], "store": "all"},
"content": {"mimeType": "application/pdf", "uri": "gs://<bucket>/rule/v3/art14.pdf"}}
施設の案内は doc_kind を facility にし、store に店舗の番号を入れます。 対応の記録は doc_kind を case にし、topic、store、case_date、discretion(yes/no)を持たせます。公式ページでは、取り込めるファイルの上限は200MBで、一度に100,000ファイルまで取り込めるとされています。
経過の措置で前の条を残す会員には、2つの版の条を答えの対象にします。 中継プログラムは、一覧から「残す条」を読み、その条だけ前の版、それ以外は現行の版という組み合わせの条件を作ります。
AIへ渡す前に整形する
- 会員の情報を引く … 会員の番号から入会日・プラン・所属の店舗を引きます。番号が無ければ検索に回しません
- 当てはまる版の決定 … 経過の措置の一覧で、入会日が対象の範囲に入り、残す期間の終わりが今日より後の行を探します
- 店舗の決定 … 施設の質問は、所属の店舗と、会員が使いたいと言った店舗の両方にします
- 名前の確かめ … 質問の文に名前や敬称の付いた語があれば、送信の前に職員に確かめます
- 店長に回す語の確かめ … 返金・特例・おかしい・納得できない・体調・けがといった語があれば、印の候補にします
2番目は、検索ではなく決まった値の比べで行います。 一覧の行を1つずつ見て、当てはまれば「第14条は v2、それ以外は v3」のような組を作ります。経過の措置の期間が今日で終わる会員もいるので、毎回その日の日付で決めます。
絞り込みの条件は、たとえば次のようになります(公式ページの書き方による)。
filter(答え。経過の措置で第14条だけ v2 を残す会員):
(doc_kind: ANY("rule") AND topic: ANY("suspend")
AND ((rule_ver: ANY("v2") AND article: ANY("第14条 休会"))
OR (rule_ver: ANY("v3") AND NOT article: ANY("第14条 休会"))))
OR (doc_kind: ANY("facility") AND store: ANY("S03"))
filter(過去の対応の一覧):
doc_kind: ANY("case") AND topic: ANY("suspend")
公式ページでは、ANY は指定した値のどれかに完全に一致するときに真になり、AND・OR・括弧と、NOT による否定で組み合わせられるとされています。絞り込みに使う項目は、スキーマの画面でインデックス可能にしておく必要があります。
AIに処理させる
answer メソッドにさせるのは、その会員に当てはまる版の会則の条と、その店舗の施設の案内から、質問に当たる扱いを、会則の言葉のまま引用付きで短くまとめることです。 会員の事情に当てはめた結論は出させません。
| 返させるもの | 中身 | 返せないときの扱い |
|---|---|---|
| 扱い | 会則に書かれた条件、締め切り、会費の扱い | 見つからなければ「会則に記載なし」 |
| 手続 | 届出の方法、必要な書類 | 見つからなければ「手続の記載なし」 |
| 店舗の施設の扱い | 使える施設、時間、プランの条件 | 見つからなければ「この店舗の案内に記載なし」 |
| 店長や本部の判断を求める記載 | 「店長が認めた場合」などの記載 | 原文のまま引用する |
| させないこと | 理由 |
|---|---|
| 会員の事情に当てはめて「できます」と書く | 判断は職員と店長が行う |
| 過去の対応を、扱いとして書く | 店長の個別の判断を含む |
| 会費や違約金の金額を計算する | 金額は会員管理のシステムの値を職員が見る |
| 会則の条が有効か無効かを書く | 本部と専門家が判断する |
| 体調やけがについて助言する | フロントの答えの範囲ではない |
1行目と3行目がいちばん大事です。 「休会できますか」「いくら返ってきますか」は、フロントでいちばん多く聞かれることです。答えが「できます」「〇円です」と書くと、職員がそのまま伝え、会員との約束になります。 答えは会則の記載の引用にとどめ、金額は会員管理のシステムの値を、できるかどうかは職員が決めます。
指示内容を固定する
answer メソッドでは、回答の口調や詳しさをプロンプトの前置き(preamble)で指定できます。前置きを次のようにします。
あなたはスポーツクラブのフロントの職員のための、会則・利用規約の資料係です。
検索で見つかった会則の条と店舗の施設の案内だけを根拠に、次の順で短く答えてください。
1. 扱い(会則に書かれた条件、締め切り、会費の扱い)
2. 手続(届出の方法、必要な書類)
3. 店舗の施設の扱い(施設の質問のときだけ)
4. 店長や本部の判断を求める記載
守ること:
- 会則の言葉のまま書いてください。言い換えないでください。
- 会員の事情に当てはめて、できる・できないと書かないでください。
- 金額を計算しないでください。会則に書かれた金額の書き方のまま写してください。
- 会則の条が有効か無効かを書かないでください。
- 体調やけがについて助言しないでください。
- 条の番号と版を、各項目の末尾に括弧で書いてください。
- 見つからない項目は「記載なし」と書いてください。
- 検索結果に無いことを書かないでください。
「条の番号と版を末尾に書く」を入れるのは、経過の措置の会員で版が混ざるからです。 職員が「第14条(v2)」を見れば、この会員には前の条件が残っていることに気づけます。
あわせて、answer メソッドの設定を次のようにします。
| 設定 | 値 | 理由 |
|---|---|---|
引用(includeCitations) | 有効 | 文ごとに出典を示させる。既定は無効 |
関連性の低い内容の無視(ignoreLowRelevantContent) | 有効 | 関係の薄い条から無理に答えさせない |
根拠の支持による絞り込み(groundingSpec の filteringLevel) | FILTERING_LEVEL_HIGH から試す | 支えの弱い答えを外す。未設定だと絞り込みが掛からない |
回答の言語(answerLanguageCode) | ja | 日本語で答えさせる |
絞り込み(filter) | 前処理で組み立てた答えの条件 | 当てはまる版と店舗 |
公式ページでは、支持が基準に届かない答えは返されず、理由として LOW_GROUNDED_CONTENT が返るとされています。引用の位置は UTF-8 のバイト単位なので、日本語の答えに条の番号を差し込むときは文字の位置に直します。
出力形式を固定する
中継プログラムが、応答と会員の情報を次の形にそろえてフロントの画面に渡します。
{
"inquiry_id": "",
"member_no": "",
"join_date": "",
"plan": "",
"store": "",
"applied_rules": [ { "article": "", "rule_ver": "", "reason": "current | transitional" } ],
"transitional_until": "",
"answer_for_front": "",
"skipped_reason": "",
"citations": [
{ "sentence": "", "doc_id": "", "article": "", "rule_ver": "", "quote": "" }
],
"manager_flag": false,
"past_cases": [
{ "case_id": "", "store": "", "case_date": "", "summary": "", "discretion": "yes | no" }
],
"session_id": ""
}
1つ目の理由は、applied_rules で当てはめた版を答えと別に持てることです。 画面の上に「この会員は第14条だけ v2(2027年3月31日まで)」と出し、職員が答えを読む前に、前の条件が残っていることが分かります。
2つ目は、past_cases の discretion で、前例にしてよいかを見分けられることです。 yes は「店長の個別の判断。前例にしない」と出し、会則どおりの対応と並べても取り違えないようにします。
3つ目は、manager_flag を答えと別に持てることです。 真なら画面の上に「店長に回す」を出し、答えの枠は参考として小さく出します。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| フロントの画面 | 中継プログラムの API | 問い合わせの受け取りと結果の表示 |
| 会員管理のシステム | 会員の番号での読み取り(読み取りのみ) | 入会日、プラン、所属の店舗 |
| 経過の措置の一覧 | 本部のファイルの読み取り | 当てはまる版の決定 |
| Vertex AI Search | answer メソッドと search メソッドの API | 答え、引用、過去の対応の一覧 |
| Cloud Storage | 会則の版ごとの写し、施設の案内 | 引用した箇所の原文の表示 |
| フロントの日誌 | 毎晩の書き出し | 新しい対応の記録の追加 |
店長への連絡は、いまどおり店舗の中で口頭か社内のチャットで行います。 画面から問い合わせの内容と当てはめた版を貼り付けられるようにしますが、回すかどうかは職員が決めます。 店長が特例を認めたときは、日誌に「個別の判断」を付けて書く決まりにします。
人が確認する
- 会員を確かめる … 画面に出た入会日とプランが、会員の言うことと合っているかを確かめます
- 当てはめた版を見る … 経過の措置の会員なら、どの条が前の版かを見ます
- 店長の印を見る … 印があれば、答えを伝えずに店長に回します
- 引用の原文を見て答える … 会則の言葉のまま伝えます。金額は会員管理のシステムで確かめます
- 過去の対応の印を見る … 個別の判断の対応を、扱いとして伝えません
2番目を省かないでください。 経過の措置の期間の終わりが近い会員には、「来月からは新しい条件になります」と一言添えるかを、職員が決めます。
目標は、900件をならして1件3分です。 版を見て、原文を開いて、答えて、日誌に書く時間です。本部の会員の窓口は、毎月、店長に回った件と「会則に記載なし」の件を見ます。 同じ質問が続くなら、会則の書き方か、施設の案内に抜けがあります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 会員の番号が無い・見つからない | 検索に回さず、会員証で番号を確かめる |
| 経過の措置の一覧に当てはまる行が無い | 現行の版で答え、一覧の確かめを本部に頼む印を付ける |
| 答えが作られなかった(支持が低い) | 答えを出さず、過去の対応の一覧だけを出す |
| 返金・特例・規約への苦情 | 答えの枠を小さくし、店長に回す |
| 体調・けが・入院の話 | 会則の休会の条だけを出し、体調には触れない。診断書の扱いは店長に回す |
| 18歳未満の家族の利用を聞かれた | 検索に回さず、子どものスクールの窓口を案内する |
| 退会の手続の求め | 会則の退会の条を出し、手続を進める |
| プランの変更の手続の途中 | 変更の前と後の両方のプランで絞り、どちらのプランの条かを画面に出す |
| 検索が応答しない | いまどおり会則の PDF と経過の措置の一覧を開く |
7行目の退会の求めは、店長に回して引き留める流れにしません。 退会の手続に必要な情報は、会則の原文のまま、その場で伝えます。8行目は、月の途中でプランを変えた会員で起きます。 変更が翌月から効く会則なら、今月の問い合わせには前のプランの条が当てはまります。
記録を残す
- 問い合わせ(会員の番号、問い合わせの種類、質問の文、受けた店舗と職員、日時)
- 当てはめた版と、そのときの経過の措置の一覧の行
- 絞り込みの条件、answer メソッドと search メソッドの応答の全文
- 会員に伝えたことと、店長に回したかどうか
- 店長が認めた特例と、その理由
2つ目の「そのときの一覧の行」は、後から「入会したときの説明と違う」と言われたときに要る記録です。 どの版でどう答えたかを、日付で追えます。会則を次に改定するときは、どの条の問い合わせが多かったかをこの記録から数え、経過の措置の置き方を決める材料にします。
04実装レベルの3段階
半自動化で、1件8分が5分ほどになります。 会則を探す時間は減りますが、経過の措置の一覧で版を確かめることと、日誌を探すことが残ります。本格構成で3分になり、この段階が本記事の想定です。 段階を進める前に、経過の措置の一覧を表の形にそろえてください。 告知の文章のままでは、中継プログラムが版を決められません。
05工数削減シミュレーション
導入後 900件 × 3分 ÷ 60 = 45 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 成人の会員だけを対象にするスポーツクラブ・フィットネスクラブ・ホテルの会員制のジムで、複数の店舗と複数のプランを持ち、会則を数年ごとに改定して経過の措置を設けている事業者。フロントに会員から毎月数百件の休会・会費・退会・施設の利用の問い合わせがあり、アルバイトや入ったばかりの社員が多い場合。過去の対応の記録がフロントの日誌や会員管理のシステムのメモに残っている場合。Google Cloud を使っている、または使い始められる場合。
- 子どものスクールやジュニアの会員を同じ仕組みで扱う場合(生成AIのサービスを18歳未満が使いうるサービスに組み込むことは、Google Cloud の規約で禁じられています)。店舗が1つでプランも少なく、会則を全員が覚えている場合。会則の改定の履歴が残っておらず、どの会員にどの版が当てはまるか分からない場合。なお、規約の条項が有効かどうかの判断、会費の返金や特例の判断、会員の健康状態に関わる判断は、この構成では代替できません。
07最小構成で試す方法
- 過去3か月の日誌から、休会・退会・施設の利用の問い合わせを30件選ぶ(経過の措置の会員と、店長が特例を認めた件を必ず混ぜる)
- 会則の現行の版と1つ前の版を条ごとに分け、版と施行日を付けて、Vertex AI Search のデータストアを作る
- 30件の会員の入会日から、手で当てはまる版を決め、絞り込みの条件と問い合わせ文を作る
- answer メソッドを短いスクリプトで呼んで、答えと引用を見る
- 答えの扱いが、その会員に当てはまる会則と合うかを、前の会則を知っている3名が突き合わせる
30件のうち、経過の措置の会員に新しい条件が答えに出た件数と、特例が扱いとして出た件数を最初に数えます。 どちらか1件でもあれば、版の組み立てと印の付け方を直してから先へ進みます。
| 出てきた内容 | 判断 |
|---|---|
| その会員の版の条が、番号と版付きで出た | 会員管理のシステムと経過の措置の一覧の連携に進む |
| 新しい条件が経過の措置の会員に出た | 版の組み立ての条件を直す |
| 「できます」「〇円です」と書かれた | 前置きを直す |
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 経過の措置の会員に新しい条件を伝える | 入会日と一覧から版を決め、条ごとに版を組み合わせて絞る |
| 店長の特例が前例として広まる | 対応の記録に個別の判断の印を付け、答えの根拠に使わない |
| 「できます」「〇円です」と答えに書かれる | 前置きで禁じ、金額は会員管理のシステムの値を見る |
| 別の店舗の施設の案内で答える | 店舗の番号で絞る |
| 経過の措置の期間の終わりを見落とす | 毎回その日の日付で版を決める |
| 体調やけがの話に答えが助言する | 前置きで禁じ、休会の条だけを出す |
| 子どものスクールの質問が混ざる | 検索に回さず、スクールの窓口を案内する |
| 会員の名前が検索に入る | 画面で止め、日誌の書き出しで消す |
| アプリの返信が締め切りを過ぎる | 休会と退会の問い合わせを、画面の一覧の上に出す |
| 経過の措置の一覧が改定に追いつかない | 改定の告知と同じ日に一覧に1行足す決まりにする |
上の2行が、この構成の失敗のほとんどです。 どちらも、「いまの会則」や「前にこうした」を、その会員への答えにしてしまう問題です。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 会員の番号・入会日・プラン・所属の店舗・休会の履歴、会則、過去の対応の記録です。休会の理由には、体調や家族の事情が書かれていることがあります。
- 18歳未満が使いうる形にしない … Google Cloud の Service Specific Terms は、生成AIのサービスを、18歳未満の人に向けた、または18歳未満の人が使いうるウェブサイトやアプリに組み込むことを禁じています。この構成はフロントの職員だけが使い、会員向けのアプリには出さず、子どものスクールの規約と記録も入れません
- 規約の解釈を人に残す … 消費者契約法の第3条第1項第4号は、事業者に、消費者の求めに応じて契約で定めた解除権の行使に必要な情報を提供するよう努めることを求めています。第9条は解除に伴う違約金のうち平均的な損害の額を超える部分などを、第10条は消費者の利益を一方的に害する条項を無効としています。退会の手続の情報は会則の原文のままその場で伝え、条項が有効かどうかの問い合わせは本部に回します
- 体調の記載を入れない … 日誌の書き出しの段で、休会の理由の細かい記載と名前を消します
- データの置き場所を確かめる … 公式ページでは、データストアの場所は
globalのほかus、euのマルチリージョンで、日本のリージョンは載っていません。 会員の情報の取扱いの決まりに照らして決めます - 会員の情報を検索の対象にしない … 会員管理のシステムの値は版と店舗を決めるのに使うだけで、データストアには入れません
誤りが起きた場合のリスクは、経過の措置の会員に違う条件を伝えることと、特例を約束してしまうことの2つです。 前者は版の決め方で、後者は個別の判断の印と前置きの禁止、店長の判断で防ぎます。
10まず何から始めるか
1週目:経過の措置の一覧を表にする
本部で、過去の改定ごとに対象の入会日の範囲、残す条、残す期間の終わりを1行ずつ書き出します。あわせて、店長に回す問い合わせの範囲を決めます。
2週目:会則を版と条ごとに分ける
現行と1つ前の版の会則を条ごとの PDF に分け、版と施行日と問い合わせの種類を付けます。
3週目:30件で試す
第8章の手順でデータストアを作り、30件の問い合わせで答えと引用を確かめます。経過の措置の会員に新しい条件が出ていないか、特例が扱いとして出ていないかを最優先で見ます。
4週目:日誌に個別の判断の欄を足す
店長が特例を認めたときに印を付ける欄を日誌に足し、直近1年分の記録に印を付け直し始めます。
2か月目: 全部の版と施設の案内を取り込み、職員が版と店舗を選んで使い始めます。3か月目以降: 会員の番号からの自動の版の決定、過去の対応の一覧、店長の印を足し、1件8分が何分になったかを実測します。入ったばかりの職員が、その会員に当てはまる会則の言葉のまま答えられ、特例を前例にせずに店長へ回せるようになった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
answer メソッドが検索結果から回答を作り、文ごとの引用を付けられること(includeCitations の既定は無効)。セッションの ID を渡して続けて問えること。結果を先に見せたいときなどは search メソッドと一緒に使うこと。filteringLevel の値と、届かない答えが LOW_GROUNDED_CONTENT で返されないこと。引用の位置が UTF-8 のバイト単位であること。前置き(preamble)で回答を指定できること。Vertex AI Search が Agent Search へ改称中であること | Google Cloud: Get answers and follow-ups | 2026-10-28 |
絞り込みに使う項目をインデックス可能にすること。ANY が完全一致であること。AND・OR・括弧と NOT で組み合わせられること | Google Cloud: Filter search for structured or unstructured data | 2026-10-28 |
非構造のデータのメタデータが JSON Lines(NDJSON)で、各行に id・structData または jsonData・content の mimeType と uri を持つこと。ファイルの上限が200MB、一度に100,000ファイルまで取り込めること | Google Cloud: Prepare data for ingesting | 2026-10-28 |
データストアの場所が global と、us・eu のマルチリージョンで、日本のリージョンの記載が無いこと | Google Cloud: Agent Search locations | 2026-10-28 |
| 生成AIのサービスを、18歳未満の人に向けた、または18歳未満の人が使いうるウェブサイト・アプリ・オンラインのサービスの一部として使うことを禁じていること(Age Restrictions) | Google Cloud: Service Specific Terms | 2026-10-28 |
| 事業者が消費者の求めに応じて解除権の行使に必要な情報を提供するよう努めること(第3条第1項第4号)。解除に伴う違約金等のうち平均的な損害の額を超える部分を無効とすること(第9条第1項第1号)。消費者の利益を一方的に害する条項を無効とすること(第10条) | e-Gov 法令API: 消費者契約法 | 2026-10-28 |
規約の条項の有効性、返金や特例の扱い、会員の体調に関わる判断は、自社の本部と専門家の判断で行ってください。 本記事は、上記の公開情報で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-2169)についてのご相談はこちらから。
