ホテルの館内案内・周辺の観光・交通・飲食店の資料をもとに、フロント係が宿泊客の質問に答えるための案内文を、確認日つきの根拠を添えてチャットで出す
フロント係が宿泊客の質問をチャットに入れると、館内案内・周辺ガイド・時刻表・飲食店の一覧から根拠を探し、その情報を最後に確かめた日を添えて案内文の下書きを出します。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- その他/不動産/宿泊
- 対象部門
- カスタマーサポート
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 問い合わせが多い/属人化している/情報が見つからない
- AIで行う処理
- 対話
- 主な効果
- 対応スピード向上/属人化解消/教育コスト削減
- 導入難易度
- ★★☆☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 宿泊客から、カウンターか電話で質問を受ける
- 覚えていればその場で答える。覚えていなければ、共有フォルダの周辺ガイドや紙のファイルを探す
- 時刻や営業時間は、時刻表や店のサイトを開いて確かめる
- 分からなければ、他のフロント係やベテランに聞く
- 外国語の宿泊客には、英語で答えるか、翻訳の画面を使って案内を書く
- 必要なら、地図や案内をメモ用紙に書いて渡す
- 人フロント係がフロントの端末のチャット画面に、宿泊客の質問を日本語で入れる
- 自動中継プログラムが、今日の日付で効いている資料に絞り、確かめた日の新しい資料を上に出す設定を付ける
- 自動Agent Search(Vertex AI Search から改称中)の answer メソッドが、館内案内・周辺ガイド・時刻表・飲食店の一覧から根拠の箇所を探し、日本語の案内文の下書きを返す
- 自動中継プログラムが、根拠の資料の確認日を添え、確認日が古いものに「要確認」の印を付ける
- 人フロント係が案内文と根拠を読み、宿泊客に伝える。「要確認」のものは店や事業者のサイトで確かめてから伝える
- 自動宿泊客が外国語の場合、同じセッションで言語を指定して案内文を作り直し、日本語の案内文と数字が一致するかを比べる
- 人フロント係が外国語の案内文を見せるか、印刷して渡す
- 人資料と違う情報が分かったら、その場で「情報の直し」を登録する
- 自動質問・答え・根拠・確認日・直しの登録を記録に残す
各工程の詳しい説明を読む
- 宿泊客から、カウンターか電話で質問を受ける
- 覚えていればその場で答える。覚えていなければ、共有フォルダの周辺ガイドや紙のファイルを探す
- 時刻や営業時間は、時刻表や店のサイトを開いて確かめる
- 分からなければ、他のフロント係やベテランに聞く
- 外国語の宿泊客には、英語で答えるか、翻訳の画面を使って案内を書く
- 必要なら、地図や案内をメモ用紙に書いて渡す
(a)情報がベテランの記憶と紙に散らばっている。 「あの店は月曜が休み」「冬は観光地行きのバスが減る」は、周辺ガイドに書かれていないことが多く、ベテランの記憶にしかありません。 夜間にベテランがいないと、2番目と4番目で止まります。
(b)情報が古いまま案内してしまう。 周辺ガイドに書かれた営業時間が去年のまま、時刻表がダイヤ改正の前のまま、ということが起きます。資料の通りに答えたのに、宿泊客が行ったら閉まっていた。 フロントにとって、いちばん避けたい失敗です。
(c)外国語の案内に時間がかかる。 翻訳の画面に日本語の案内を入れて訳す間、宿泊客を待たせます。時刻の「17時」と「7時」、番線の数字を訳文で取り違えても、フロント係には気づきにくいことがあります。
(d)同じ質問に毎日答えている。 「駅へのバスの最終」は1日に何度も聞かれます。答えが決まっている質問でも、時刻表を開いて確かめ直しています。
- 【人】 フロント係がフロントの端末のチャット画面に、宿泊客の質問を日本語で入れる
- 【自動】 中継プログラムが、今日の日付で効いている資料に絞り、確かめた日の新しい資料を上に出す設定を付ける
- 【自動】 Agent Search(Vertex AI Search から改称中)の answer メソッドが、館内案内・周辺ガイド・時刻表・飲食店の一覧から根拠の箇所を探し、日本語の案内文の下書きを返す
- 【自動】 中継プログラムが、根拠の資料の確認日を添え、確認日が古いものに「要確認」の印を付ける
- 【人】 フロント係が案内文と根拠を読み、宿泊客に伝える。「要確認」のものは店や事業者のサイトで確かめてから伝える
- 【自動】 宿泊客が外国語の場合、同じセッションで言語を指定して案内文を作り直し、日本語の案内文と数字が一致するかを比べる
- 【人】 フロント係が外国語の案内文を見せるか、印刷して渡す
- 【人】 資料と違う情報が分かったら、その場で「情報の直し」を登録する
- 【自動】 質問・答え・根拠・確認日・直しの登録を記録に残す
4番目が、この設計の条件です。 答えの文が正しく根拠を引いていても、根拠が古ければ案内は誤りになります。 確認日をモデルに書かせるのではなく、資料のメタデータからプログラムが添えます。
8番目を作るのは、宿泊客からの「閉まっていた」が、いちばん新しい情報だからです。 その場で直しを登録できると、次のフロント係が同じ誤りを案内せずに済みます。
02今回想定するシステム構成
フロント係(フロントの端末のチャット画面。宿泊客の質問を入れる) │ ▼【トリガー】質問の送信 中継プログラム(Python/Cloud Run) ├──▶ 今日効いている資料に絞る ├──▶ 確かめた日の新しい資料を上に出す設定を付ける ▼ Agent Search(Vertex AI Search)の answer メソッド │ 館内案内/周辺ガイド/時刻表/飲食店の一覧 から探す │ 日本語の案内文と根拠を返す ▼ 中継プログラム ── 確認日を添え、古いものに「要確認」 ▼ (外国語の宿泊客)同じセッションで言語を指定して作り直す ▼ 中継プログラム ── 日本語と外国語の案内文の数字を比べる ▼ 案内文 + 根拠 + 確認日 + 要確認の印 ├──▶ フロント係の画面へ(印刷もできる) └──▶ 情報の直しの待ち行列へ(要確認・直しの登録)
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の answer メソッド | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ─ |
| 連携 | 中継プログラム(Python。Cloud Run で動かし、画面・検索・確認日の付与・数字の比較・記録をつなぐ) | Node.js で同じものを書く |
| 保管 | Cloud Storage(館内・周辺の資料とメタデータ) | ─ |
宿泊の管理の仕組みには、つなぎません。 この構成は宿泊客の氏名や部屋番号を使わず、質問の文だけを扱います。最初の準備は、周辺ガイドを1件1件の情報(店・施設・路線)に分け、それぞれに確認日を付けることです。
検索の土台は、Agent Search(Vertex AI Search から改称中)の answer メソッドです。 検索の結果から回答を作り、出典を付けて返します。前のセッションの ID を渡すとやり取りを続けられ、答えの言語は BCP 47 の言語タグで指定できます。 関連する質問の候補を返す設定もあります。
新しい資料を上に出すのは、検索の重み付け(boostSpec)です。 鮮度の重み付けは、検索した日時と、資料に付けた日時の項目との間隔で重みを変えるもので、間隔の点をいくつか決めると、その間は直線でつながれます。重みの値は −1 から 1 の範囲です。
資料は Markdown や PDF などで取り込めます。 検索の対象にできる形式は TXT、JSON、Markdown、PDF、HTML、DOCX、PPTX、XLSX、XLSM で、周辺ガイドは1件1ファイルの Markdown にすると、確認日の管理がしやすくなります。
03どうやって実装するのか
処理の起点を決める
起点は、フロント係がフロントの端末のチャット画面で質問を送ったことです。 画面はフロント課とコンシェルジュだけが使い、宿泊客の側の画面はありません。 質問は、宿泊客の言葉をフロント係が日本語にまとめて入れます。「駅に行きたい、明日の朝7時ごろ、荷物が多い」のように、時間と条件を一緒に入れるよう、画面に例を出しておきます。
宿泊客が外国語の場合は、画面で言語を選びます。 日本語の案内文を確かめたあと、「英語で作る」を押すと、同じセッションで言語を指定して作り直します。日本語の案内文を確かめる前に、外国語の案内文は作らせません。 フロント係が読めない言語の文だけが先に出ると、確かめる手段がなくなるからです。
1人の宿泊客との続けてのやり取りは、同じセッションで聞き足します。「そのバス停はどこにある」と聞き足せます。別の宿泊客の質問は、新しいセッションで始めます。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 質問 | 宿泊客の質問を日本語にまとめたもの、時間と条件 | 画面 |
| 館内案内 | 大浴場・レストラン・朝食・駐車場・コインランドリーの場所と時間 | 宿泊部が作る |
| 周辺ガイド | 店・観光施設1件ごとの場所、営業時間、休業日、ホテルからの行き方 | フロント課が作り、更新する |
| 時刻表 | 駅へのバス、観光地へのバス、空港への便の時刻と乗り場 | 事業者の公開する時刻表を、フロント課が写す |
| 飲食店の一覧 | 提携店と近隣の店の営業時間、予約の要否、ラストオーダー | 宿泊部が作る |
| 情報の直し | フロント係が登録した、資料と違っていた情報 | 画面 |
質を決めるのは、周辺ガイドを1件1件に分けることです。 周辺ガイドが1つの大きなファイルだと、確認日も1つになり、店ごとに違う確かめた日を持てません。 店・施設・路線ごとに1ファイルにし、それぞれに確認日を付けます。
時刻表は、事業者の時刻表をそのまま入れるのではなく、ホテルに関わる便だけを写します。 写すときに、平日・土日祝・季節の区別と、ダイヤの有効期間を必ず書きます。
データの取得方法を決める
資料は Cloud Storage に置き、メタデータファイルとあわせてデータストアへ取り込みます。 メタデータは JSON Lines で、1行ごとに id、content の uri と mimeType、そして structData に資料の印を書きます。取り込みは毎朝1回の定時と、直しを反映したときに行います。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 資料の種類 | メタデータ doc_type(facility/area_spot/timetable/restaurant) | 根拠の種類を画面に示す |
| 確認日 | メタデータ checked_at | 答えに添え、古いものに印を付け、新しいものを上に出す |
| 有効期間 | メタデータ valid_from・valid_to | ダイヤや季節の営業時間を、今日効いているものに絞る |
| 曜日の区分 | メタデータ day_type(weekday/holiday/all) | 平日と土日祝の時刻を分ける |
絞り込みの式は、有効期間で書きます。 項目を索引可能にしておけば、valid_from <= "2026-10-08" AND valid_to >= "2026-10-08" のように、今日効いている資料だけを引けます。日付は ISO 8601 の文字列で比べられます。冬季ダイヤと夏季ダイヤの両方の時刻表を入れておいても、今日の分だけが根拠になります。
新しい資料を上に出す重み付けは、checked_at で書きます。 鮮度の重み付けで、確かめてから30日以内の資料に正の重み、180日を過ぎた資料に負の重みを付けるといった形にします。ただし、重み付けは並べ方を変えるだけで、古い資料を除くものではありません。 古い資料を除くかどうかは、確認日の印で人が判断します。
AIへ渡す前に整形する
- 周辺ガイドを1件1ファイルにする … 店・施設・路線ごとに Markdown のファイルにし、名前・場所・営業時間・休業日・ホテルからの行き方を同じ見出しで書きます
- 確認日を付ける … それぞれのファイルに、最後に確かめた日と、確かめた方法(店に電話、店のサイト、事業者の時刻表)を書きます
- 時刻表を写す … ホテルに関わる便だけを、平日・土日祝と有効期間を分けて写します
- 館内案内を今の運用に合わせる … 大浴場の清掃の時間、朝食の場所の変更など、掲示物にだけ書かれている情報を館内案内に足します
- ベテランの記憶を書き出す … 「月曜が休み」「冬は減便」のような、周辺ガイドに無い情報を、ベテランに聞いて1件ずつのファイルに足します
- 店の評判や感想を入れない … 「おいしい」「おすすめ」のような評価は書かず、事実だけを書きます
5番目が、この構成でいちばん効く作業です。 ベテランの記憶を書き出すだけで、夜間にベテランがいなくても答えられる質問が増えます。半日ほど時間をとって、よく聞かれる質問の一覧を見ながら聞き取ります。
6番目は、宿泊客への案内の公平さのためです。 評価が資料に入っていると、モデルはそれを答えに使い、ホテルが特定の店を勧めているように見えます。提携店かどうかは事実として書き、勧めるかどうかはフロント係が判断します。
AIに処理させる
させるのは、質問に当たる資料の箇所を探し、フロント係がそのまま宿泊客に伝えられる短い案内文の下書きにすることです。 資料に無い情報を補うこと、今営業しているかを言い切ること、所要時間を推測することはさせません。
| 質問の型 | 案内文に含めるもの | 根拠にする資料 |
|---|---|---|
| 館内の場所と時間 | 場所、利用できる時間、注意 | 館内案内 |
| 交通 | 乗り場、時刻、行き先、平日・土日祝の別 | 時刻表 |
| 飲食店 | 店名、営業時間、休業日、予約の要否、行き方 | 飲食店の一覧、周辺ガイド |
| 観光施設 | 開館時間、休館日、行き方 | 周辺ガイド |
answer メソッドの設定は次のようにします。
| 設定 | 値 | 理由 |
|---|---|---|
session | 宿泊客ごとのセッション | 聞き足しを続ける |
includeCitations | 有効(既定は無効) | 根拠の資料と確認日を結び付ける |
ignoreLowRelevantContent | 有効 | 資料に無いことを答えない |
groundingSpec の filteringLevel | FILTERING_LEVEL_HIGH | 根拠の弱い答えを出さない |
searchSpec の filter | 有効期間 | 季節外れのダイヤや営業時間を混ぜない |
searchSpec の boostSpec | checked_at の鮮度の重み付け | 確かめた日の新しい資料を上に出す |
answerLanguageCode | 外国語の案内文のときだけ指定 | 宿泊客の言語で作り直す |
relatedQuestionsSpec | 有効 | 次に聞かれそうな質問をフロント係に示す |
preamble | 下の指示 | 答え方の規則を与える |
| させないこと | 理由 |
|---|---|
| 「今営業中です」と言い切る | 資料は確認日の時点の情報で、今日の臨時休業は分からない |
| 所要時間を推測する | 道路の混み具合や乗り換えで変わる。資料の記載だけを使う |
| 資料に無い店や施設を挙げる | 一般の知識の店は、閉店していることがある |
| 店を評価する・勧める | ホテルとしての公平さを損なう |
| 宿泊の料金や規定を答える | 約款と予約の仕組みの話で、この構成の外 |
1行目がいちばん起きやすい失敗です。 「営業時間は8時から」と資料にあれば、モデルは「今は営業中です」と書きたがります。資料が3か月前の確認なら、それは言い切れません。 答えは「資料では8時から(確認日:7月12日)」の形にさせます。
指示内容を固定する
answer メソッドの preamble に、次の指示を入れます。
あなたはホテルのフロント係が、宿泊客の質問に答える案内を準備するのを
手伝う立場です。検索結果に出た、ホテルの館内案内・周辺ガイド・時刻表・
飲食店の一覧だけを根拠に答えます。読むのはフロント係です。
【答え方】
1. フロント係がそのまま宿泊客に伝えられる、短い案内文を書いてください。
3〜5文までにしてください。
2. 時刻・営業時間・乗り場・番線・金額は、資料の記載のまま書いてください。
3. 平日と土日祝で違う場合は、両方を書いてください。
4. 行き方は、資料に書かれた行き方だけを書いてください。
【厳守事項】
- 「今営業しています」「今日は開いています」と言い切らないでください。
「資料では〜」と、資料の記載であることが分かる書き方にしてください。
- 資料に書かれていない店・施設・路線を挙げないでください。
書かれていなければ「資料に記載がありません」と書いてください。
- 所要時間を推測しないでください。資料に書かれた所要時間だけを使ってください。
- 店や施設を「おいしい」「おすすめ」などと評価しないでください。
- 宿泊の料金、キャンセル、予約の規定には答えないでください。
- 確認日は書かないでください。確認日は別の仕組みが添えます。
「確認日は書かないでください」と書くのは、日付の出どころを1つにするためです。 モデルが本文に日付を書くと、資料の本文の別の日付(開店の日、改装の日)を確認日のように書くことがあります。確認日はメタデータの checked_at から、プログラムが添えます。
「資料の記載であることが分かる書き方」は、フロント係が宿泊客に伝えるときの言い方そのものです。 「資料では8時からとなっていますが、念のためお店のサイトでもご確認ください」と言えるようにします。
出力形式を固定する
answer メソッドの応答に、確認日と印、外国語の案内文と数字の比較を、中継プログラムが加えて画面と記録に渡します。
{
"session_id": "",
"staff_id": "",
"asked_at": "2026-10-08T21:40:00+09:00",
"question": "",
"answer_ja": "",
"citations": [
{ "doc_type": "facility | area_spot | timetable | restaurant",
"title": "", "uri": "", "checked_at": "2026-07-12",
"days_since_check": 88, "stale": true, "grounding_score": 0.0 }
],
"related_questions": [""],
"translation": {
"language": "en", "answer": "",
"numbers_ja": ["7", "15", "2"], "numbers_tr": ["7", "15", "2"],
"numbers_match": true
},
"status": "answered | needs_check | no_source",
"correction": { "registered": false, "note": "" }
}
1つ目の理由は、citations ごとに確認日と stale を持てることです。 確認日から一定の日数(たとえば90日)を過ぎた根拠には stale を立て、status を needs_check にします。画面では、その根拠に「要確認」と出ます。 日数は資料の種類ごとに変え、時刻表はダイヤの有効期間の中なら古くても stale にしません。
2つ目は、translation で数字の一致を機械で確かめられることです。 中継プログラムは、日本語と外国語の案内文から数字を順に抜き出して比べ、1つでも違えば numbers_match を偽にして、外国語の案内文を画面に出しません。 「7時」が「17:00」になる、番線が入れ替わる、といった取り違えを止めます。午前・午後の書き方は、比べる前に24時間の表記にそろえます。
3つ目は、related_questions でフロント係が先回りできることです。 「最終のバス」を聞いた宿泊客には、次に「タクシーは」と聞かれることが多く、候補が出ていれば答えを先に用意できます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| フロントの端末のチャット画面 | 社内向けの画面 | 質問の入力、案内文と根拠と確認日の表示、印刷 |
| Agent Search | answer メソッドの呼び出し | 有効期間で絞り、鮮度で重み付けして答えと根拠を返す |
| 資料の置き場 | 読み取り | 確認日と有効期間を引く |
| 情報の直しの待ち行列 | 書き込み | 要確認の根拠と、フロント係の直しの登録を載せる |
| 質問の記録 | 書き込み | 質問・答え・根拠・確認日・直しを残す |
宿泊の管理の仕組みには、つなぎません。 宿泊客の氏名や部屋番号は、館内と周辺の案内に要りません。チャットに入れさせないよう、画面の入力欄の近くに注意を出します。
情報の直しの待ち行列は、毎朝フロント課の担当が片づけます。 直しの登録を資料に反映し、確認日を書き換えて取り込みます。直しが資料に入るまでの間は、待ち行列の直しの内容を、画面の根拠の横に出します。
人が確認する
人が確かめるのは、案内文と根拠、そして「要確認」の印です。
- フロント係が案内文と根拠を読む … 時刻や営業時間が、質問の日時と曜日に合っているかを見ます
- 「要確認」のものは確かめてから伝える … 店のサイトや事業者の時刻表で今の情報を確かめ、違っていれば直しを登録します
- 外国語の案内文は、数字が一致したものだけを渡す … 一致しなかったものは、日本語の案内文を見せながら説明します
- 毎朝、直しの待ち行列を片づける … 担当が資料を直し、確認日を書き換えます
2番目を省かないでください。 「要確認」の印は、その情報を誰も最近確かめていないというしるしです。確かめずに伝えると、宿泊客が閉まった店の前で立ち尽くします。
目標は、720件をならして1件2分です。 資料を探す時間と外国語に訳す時間を減らし、案内文と根拠を読む時間と、要確認の確かめを残す想定です。
例外に対処する
| 起きること | 対応 |
|---|---|
| 資料に当たる記載が無い | NO_RELEVANT_CONTENT。no_source で直しの待ち行列へ。フロント係が調べて答える |
| 根拠のスコアが低く答えが落ちた | LOW_GROUNDED_CONTENT。資料の見出しや言葉が質問と合っていないかを見る |
| 根拠の確認日が古い | stale。「要確認」を出し、確かめてから伝える |
| 外国語の案内文の数字が一致しない | 外国語の案内文を出さず、日本語の案内文で説明する |
| 有効期間に入る時刻表が無い | ダイヤ改正の写し忘れ。事業者の時刻表で答え、写しを担当へ依頼 |
| 宿泊客から「閉まっていた」と言われた | 直しを登録し、その資料の確認日を待ち行列で更新する |
| 料金や予約の規定を聞かれた | 答えず、宿泊の担当の手順に回す |
| 検索が応答しない | 紙のファイルと時刻表で答える。紙は捨てずに残す |
3行目と6行目が、この構成を生かすか殺すかを決めます。 どちらも資料の確認日を、運用の中で新しく保つための行です。確認日が更新されない資料は、時間とともに「要確認」だらけになり、フロント係が画面を見なくなります。
記録を残す
- 質問の文、フロント係の ID、日時、セッションの ID
- answer メソッドの応答の全文(出典と根拠のスコアを含む)
- 根拠ごとの確認日と
staleの判定 - 外国語の案内文と、数字の比較の結果
- 直しの登録と、資料に反映した日
- 質問の多い資料と、
no_sourceの多い質問
最後の行は、資料の整備の順番を決める材料になります。 no_source の多い質問は資料が足りない分野で、聞かれる回数の多い資料は確認日をこまめに更新すべき資料です。
宿泊客の個人の情報は記録に入りません。 質問の文に名前や部屋番号が入っていたら、記録から消す手順を決めておきます。
04実装レベルの3段階
最小構成では、確認日を自動で添えられません。 フロント係が根拠の資料の確認日を自分で見ます。確かめるための段階です。 半自動化で、1件5分が3分程度になります。 資料を探す時間は減りますが、確認日を見て判断し、外国語に訳す作業が残ります。本格構成で2分になり、この段階が本記事の想定です。 差が大きいのは、外国語の案内文と数字の比較を、画面の中で終えられるかの違いです。 段階を飛ばさないでください。 半自動化で1か月使うと、no_source の多い質問と、確認日の古い資料が先に分かります。
05工数削減シミュレーション
導入後 720件 × 2分 ÷ 60 = 24 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 客室が百室から数百室あり、フロントで館内・周辺・交通の質問を毎日何十件も受けているホテル。周辺の情報がベテランのフロント係の頭の中と、紙のファイルや掲示物に散らばっている場合。外国からの宿泊客が多く、案内を英語などで返す場面が多い場合。夜間や早朝は少人数で、詳しい係がいない時間帯がある場合。
- 客室が数室で、オーナーが周辺の情報をすべて把握している宿。周辺の情報を誰も更新しておらず、資料が数年前のままの場合(先に情報を確かめ直す仕組みが要ります)。宿泊客に直接チャットを使わせたい場合(この構成はフロント係が使う前提で、案内はフロント係が確かめてから伝えます)。予約・料金・キャンセルの規定を答えさせたい場合(それは約款と予約の仕組みの話です)。
07最小構成で試す方法
- よく聞かれる質問を30件書き出す(駅へのバス、朝早く開いている店、大浴場の時間、観光地への行き方を必ず入れる)
- その30件に関わる館内案内・周辺ガイド・時刻表を集め、それぞれに確認日を書く
- 資料を手元のAIサービスに読み込ませ、「この資料だけを根拠に、フロント係が宿泊客に伝える短い案内文を書いてください。資料に無いことは書かないでください。今営業中と言い切らないでください」と指示して30件を聞く
- 出てきた案内文を、ベテランのフロント係が読んで、正しいか・宿泊客に伝えられるかを判定する
- 5件を英語で作り直させ、時刻と数字が日本語と一致するかを見る
30件は必ずやってください。 データストアを組む前に、「資料だけで答えられる質問がどれだけあるか」を確かめます。
| 出てきた内容 | 判断 |
|---|---|
| ベテランが見て正しく、そのまま伝えられた | 周辺ガイドの分割と確認日の付与に進む |
| 資料に無い店を挙げた、営業中と言い切った | 指示の書き方で直る。構成は有効 |
| 資料が古く、ベテランが「今は違う」と言った | 資料を確かめ直すのが先。 AIの問題ではない |
3行目が出ることは珍しくありません。 失敗ではなく、フロントで「閉まっていた」と言われていた理由が1つ分かったということです。 その場合は、30件に関わる資料だけを確かめ直し、確認日を書いてから同じ30件で試し直します。確かめ直した資料で答えがどこまで変わるかが、確認日を持たせる意味を示します。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 「今営業中です」と言い切る | 指示で禁じ、「資料では〜」の言い方にさせる |
| 古い資料のまま答える | 確認日を資料に持たせ、プログラムが添えて古いものに印を付ける |
| 冬季ダイヤと夏季ダイヤが混ざる | 有効期間を時刻表に持たせ、今日の日付で絞る |
| 平日と土日祝の時刻を取り違える | 時刻表に曜日の区分を持たせ、両方を書かせる |
| 外国語の案内文で時刻を取り違える | 数字を抜き出して比べ、一致しないものは出さない |
| 資料に無い店を挙げる | 指示で禁じ、ignoreLowRelevantContent を有効にする |
| 店を勧めているように見える | 資料に評価を書かず、指示でも評価を禁じる |
| 重み付けで古い資料が消えたと思い込む | 重み付けは並べ方を変えるだけ。古い資料は印で扱う |
| 直しの登録が資料に反映されない | 毎朝の担当を決め、反映までは直しの内容を画面に出す |
| 宿泊客の名前が質問に入る | 入力欄に注意を出し、記録から消す手順を決める |
上の2行が、この構成の失敗のほとんどです。 どちらも答えの文は資料の通りで、資料の日付を見て初めて誤りと分かります。 確認日をプログラムの側で添えているかで、運用に乗るかが決まります。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 館内案内、周辺の店・施設・交通の情報、フロント係が入れた質問の文、そして宿泊客に渡す案内文です。
- 宿泊客の個人の情報を入れない … 氏名、部屋番号、同行者、予約の内容は、周辺の案内に要りません。入力欄に注意を出し、 入ってしまった記録は消す手順を決めます
- 案内はフロント係が確かめてから伝える … 案内文は下書きです。宿泊客に直接見せる画面は作らず、 フロント係が読んで確かめたものだけを伝えます
- 確認日の古い情報を言い切らない … 臨時休業や運休は、資料では分かりません。「資料では」と伝え、 必要なら店や事業者のサイトの確認を勧めます
- 店や施設の扱いを公平にする … 提携店かどうかは事実として書き、評価や勧めの言葉を資料にも答えにも入れません
- 外国語の案内文の誤りに備える … 数字の比較で取り違えを止めますが、道順の言い回しの誤りまでは止められません。 重要な案内(終電・最終便)は、日本語の案内文を見せながら説明します
- 事業者の時刻表の扱いを確かめる … 写した時刻表をホテルの中で使う範囲は、事業者の公開の条件に従います
誤りが起きた場合のリスクは、古い情報で宿泊客を案内することと、外国語の案内で時刻を取り違えることの2つです。 前者は確認日の印と直しの登録で、後者は数字の比較で止めます。どちらも、モデルの答えの外の仕組みで守ります。
10まず何から始めるか
1週目:よく聞かれる質問を書き出す
フロント係全員に、この1か月で聞かれた質問を書き出してもらい、多いものから30件を選びます。駅へのバス、朝早い店、大浴場、観光地への行き方が上位に来るはずです。
2週目:30件で試す
その30件に関わる資料を手元のAIサービスに読み込ませ、案内文を作らせます。ベテランが読んで「今は違う」と言った情報を、最優先で書き出します。
3週目:周辺ガイドを分けて確認日を付ける
周辺ガイドを店・施設・路線ごとのファイルに分け、それぞれに確認日と確かめた方法を書きます。ベテランの記憶にしかない情報を、半日かけて聞き取ります。
4週目:データストアと画面をつなぐ
データストアを作って資料を取り込み、中継プログラムで有効期間の絞り込み、確認日の印、鮮度の重み付けを付けます。日中のフロント係だけが使う形で始めます。
2か月目: 外国語の案内文と数字の比較を足し、夜間の体制でも使います。stale と no_source の件数を毎週数えます。3か月目以降: 1件5分が何分になったかを実測します。毎朝の直しの片づけが定着し、「要確認」の印が一定の割合より増えなくなった時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Vertex AI Search が Agent Search へ改称中であること。answer メソッドが検索結果から回答を作ること。前のセッションの ID でやり取りを続けられること。includeCitations(既定は無効)、ignoreLowRelevantContent、preamble、answerLanguageCode(BCP 47 の言語タグ)、relatedQuestionsSpec、searchSpec の filter と boostSpec。groundingSpec の filteringLevel(FILTERING_LEVEL_LOW/HIGH)と出典ごとの根拠のスコア、answerSkippedReasons の NO_RELEVANT_CONTENT/LOW_GROUNDED_CONTENT | Google Cloud: Get answers and follow-ups | 2026-10-08 |
| 検索の重み付けの値が −1 から 1 の範囲であること。条件は絞り込みの式で書くこと。鮮度の重み付けが、検索した日時と資料の日時の項目との間隔で重みを決め、点の間を直線でつなぐこと。構造化・非構造化・ウェブサイトのデータを持つ検索のアプリに使えること | Google Cloud: Boost search results | 2026-10-08 |
検索の対象にできる形式(TXT、JSON、Markdown、PDF、HTML、DOCX、PPTX、XLSX、XLSM)、1ファイル200MBまで。Cloud Storage のメタデータが JSON Lines で id、content の uri・mimeType、structData/jsonData を持つこと | Google Cloud: Prepare data for ingesting | 2026-10-08 |
絞り込みの比較の演算子、AND/OR、日付を ISO 8601 の文字列で比べられること、項目を索引可能にする必要があること | Google Cloud: Filter search for structured or unstructured data | 2026-10-08 |
店の営業時間や交通の時刻は、各事業者の発表する最新の情報を正としてください。 本記事は Google Cloud の公式ドキュメントで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-1079)についてのご相談はこちらから。
