ホテルの客室係・設備担当からの機器の操作やリセットの質問に、その部屋に入っている機種の取扱説明書と過去の対応記録から根拠付きで答える
客室係やフロントから出る「この部屋の金庫が開かない」「空調のリモコンにエラーが出た」といった質問に、その部屋に入っている機種の取扱説明書と、過去の対応記録を探して答えます。手順と、根拠にした説明書のページを一緒に返します。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- 不動産/介護/宿泊
- 対象部門
- 総務
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 問い合わせが多い/属人化している/情報が見つからない
- AIで行う処理
- 検索(RAG)
- 主な効果
- 対応スピード向上/属人化解消/検索時間短縮
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 条件付き
01導入前 / 導入後の業務フロー
- 客室係が、清掃中や宿泊客からの連絡で、機器の不具合に気づく
- 客室係が設備課に電話し、部屋番号と症状を伝える
- 設備課の担当が、設備台帳で部屋番号から機種を確かめる
- 取扱説明書のPDFや紙のファイルから、その機種の説明書を探す
- 説明書のエラー表示の一覧やリセットの手順のページを探して読む
- 電話で客室係に手順を伝え、客室係がその場で操作する
- 直らなければ設備課の担当が部屋に行く。それでも直らなければメーカーや業者に連絡する
- 人客室係が、業務用のスマートフォンのチャットに部屋番号と症状を入れる
- 自動中継プログラムが、部屋番号から設備台帳を引き、その部屋の機器の機種を特定する
- 自動症状から対象の機器(金庫・空調・テレビなど)を見分け、機種を1つに決める。決められなければ候補を返して選んでもらう
- 自動Vertex AI Search(Agent Search)の answer メソッドを、その機種の説明書と対応記録だけに絞って呼ぶ
- 自動手順・根拠のページ・「現場でしてよい操作か」の区分を返す
- 人客室係が、画面の手順に沿って部屋で操作する
- 人直れば「直った」を、直らなければ「直らない」を押す
- 自動「直らない」や、設備担当を呼ぶべき作業と判定されたものは、部屋番号と機種と試した手順を付けて設備課へ回す
- 人設備課は、回ってきたものだけに対応する
- 自動「直った」「直らない」の結果を記録し、月に一度、説明書に無い症状の一覧を設備課に渡す
各工程の詳しい説明を読む
- 客室係が、清掃中や宿泊客からの連絡で、機器の不具合に気づく
- 客室係が設備課に電話し、部屋番号と症状を伝える
- 設備課の担当が、設備台帳で部屋番号から機種を確かめる
- 取扱説明書のPDFや紙のファイルから、その機種の説明書を探す
- 説明書のエラー表示の一覧やリセットの手順のページを探して読む
- 電話で客室係に手順を伝え、客室係がその場で操作する
- 直らなければ設備課の担当が部屋に行く。それでも直らなければメーカーや業者に連絡する
(a)説明書を探す時間が長い。 説明書はPDFで共有フォルダにあるものと、紙で設備課の棚にあるものが混ざっています。ファイル名が機種名だけのもの、メーカー名だけのもの、「客室金庫」とだけ書かれたものがそろっていません。
(b)機種を取り違える。 台帳を見ずに「金庫ならこうです」と答えると、別の機種の手順を伝えることになります。ボタンの名前が違うので、客室係が部屋で操作しようとして初めて気づきます。 電話がもう一度かかってきます。
(c)過去に同じことがあったかが分からない。 「この機種のE3は、電池を替えると直る」といった知恵は、保全の依頼票の備考欄に散らばっています。同じ症状で何度も呼ばれているのに、そのたびに説明書から読み直しています。
(d)夜は答えられる人がいない。 夜勤のフロントは、設備課の担当の携帯に電話するか、朝まで待つかを選ぶしかありません。宿泊客を待たせている時間が、そのまま評価に響きます。
- 【人】 客室係が、業務用のスマートフォンのチャットに部屋番号と症状を入れる
- 【自動】 中継プログラムが、部屋番号から設備台帳を引き、その部屋の機器の機種を特定する
- 【自動】 症状から対象の機器(金庫・空調・テレビなど)を見分け、機種を1つに決める。決められなければ候補を返して選んでもらう
- 【自動】 Vertex AI Search(Agent Search)の answer メソッドを、その機種の説明書と対応記録だけに絞って呼ぶ
- 【自動】 手順・根拠のページ・「現場でしてよい操作か」の区分を返す
- 【人】 客室係が、画面の手順に沿って部屋で操作する
- 【人】 直れば「直った」を、直らなければ「直らない」を押す
- 【自動】 「直らない」や、設備担当を呼ぶべき作業と判定されたものは、部屋番号と機種と試した手順を付けて設備課へ回す
- 【人】 設備課は、回ってきたものだけに対応する
- 【自動】 「直った」「直らない」の結果を記録し、月に一度、説明書に無い症状の一覧を設備課に渡す
2番目と3番目が、この設計の分かれ目です。 機種を決めてから検索するので、別の機種の説明書が答えの根拠に混ざりません。 機種が決まらないときに当て推量で検索せず、候補を出して客室係に選んでもらいます。
8番目で「試した手順」を付けて回すのも意図してのことです。 設備課の担当は、客室係が何を試したかを聞き直さずに済み、同じ手順を電話でもう一度伝える往復がなくなります。
02今回想定するシステム構成
客室係・フロントのスマートフォン(チャット) │ 部屋番号と症状 ▼ 中継プログラム(Python。Cloud Run で動かす) ├──▶ 設備台帳を引き、部屋の機器の機種を特定 ├──▶ 症状から対象の機器を見分ける ▼ Vertex AI Search(Agent Search)の answer メソッド │ 検索の範囲=その機種の説明書と対応記録(メタデータの filter で絞る) │ データストア=取扱説明書のPDF・対応記録(Cloud Storage) ▼ 回答(手順・根拠のページ・現場でしてよい操作か) ▼ 【客室係が操作し、直った/直らないを返す】 └──▶ 直らない・設備担当の作業 → 設備課へ回す
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の answer メソッド | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ─ |
| 連携 | 中継プログラム(Python。Cloud Run で動かし、チャット・設備台帳・検索・設備課への依頼をつなぐ) | Node.js で同じものを書く |
| 保管 | Cloud Storage(取扱説明書のPDFと対応記録、メタデータ) | ─ |
| 記録 | 設備台帳(部屋番号ごとの機器と機種。読み取りだけ) | 既存の客室管理の仕組み |
設備台帳は、新しく作るものではありません。 すでにあるスプレッドシートを、部屋番号・機器の種類・メーカー・機種の4列がそろった形に整えます。検索の範囲を決めるのは、この台帳です。
土台になるのは、Vertex AI Search(Agent Search へ改称中)の answer メソッドです。 検索の結果をもとに回答の文を作り、回答の文のどこがどの資料に基づくかという引用(includeCitations)を返せます。回答の口調や長さは promptSpec.preamble に自然な言葉で指示できます。関連する資料が見つからないときは回答を作らずに理由を返す設定があり、この構成ではそれを前提にします。
検索の範囲は、メタデータの filter で絞ります。 構造化されていない文書(PDF)にも、JSONLのファイルで structData としてメタデータを付けられ、スキーマで「インデックス可能」にした項目は model: ANY("SF-2300") のような式で絞り込めます。説明書のPDFごとに、機器の種類・メーカー・機種を付けておきます。
取扱説明書のPDFは、レイアウトパーサーで読み込みます。 段落・表・画像・リスト・題名・見出しを見分けるパーサーで、画像や表に説明を付ける機能を設定で有効にできます。説明書のエラー表示の一覧は表になっていることが多く、リモコンのボタンは図で示されることが多いため、この2つが検索で拾えるかどうかが答えの質を決めます。
03どうやって実装するのか
処理の起点を決める
客室係がチャットに質問を送ったときに動きます。 業務用のスマートフォンに、部屋番号の欄と症状の欄だけがある画面を用意します。部屋番号の欄は必須にします。 機種を決める唯一の手がかりだからです。
もう一つのきっかけは、説明書と対応記録の取り込みです。設備課が新しい機種の説明書を Cloud Storage に置いたとき、またはメタデータのファイルを更新したときに、データストアへの取り込みを行います。改装で機種が入れ替わったら、設備台帳と説明書の両方を同じ日に更新することを、設備課の手順に入れます。
対応記録は、月に一度まとめて取り込みます。 保全の依頼票から、症状・機種・行った対応・結果の4項目を書き出したものを1件1ファイルにします。毎日取り込むと、結果がまだ分からない記録が混ざります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 質問 | 部屋番号、症状の文、必要なら画面の写真の説明 | チャット |
| 設備台帳 | 部屋番号、機器の種類、メーカー、機種、設置した年 | 共有のスプレッドシート |
| 取扱説明書 | 機種ごとのPDF。操作・お手入れ・エラー表示・故障かなと思ったら の章 | Cloud Storage |
| 対応記録 | 機種、症状、行った対応、結果(直った/業者対応) | 保全の依頼票から月次で書き出し |
| 作業区分の一覧 | 機器ごとに、客室係がしてよい操作と、設備担当・業者に回す作業 | 設備課が作る一覧 |
質を決めるのは、設備台帳と作業区分の一覧です。 台帳の機種名の書き方が説明書のメタデータとそろっていないと、filter が何も返しません。台帳の機種名と、説明書に付けるメタデータの機種名を、同じ書き方にそろえる作業が最初に要ります。
作業区分の一覧は、説明書の記載を土台に設備課が決めます。 たとえば「金庫の非常解錠は設備課のみ」「空調のフィルターの取り外しは客室係も可」のように、ホテルとしての取り決めを機器ごとに書きます。 説明書の「お客様ご自身で」は、宿泊客を想定した書き方で、客室係にそのまま当てはまるとは限りません。
データの取得方法を決める
設備台帳は、中継プログラムが質問のたびに読みます。 部屋番号で行を引き、その部屋の機器の一覧(機器の種類と機種)を得ます。台帳はスプレッドシートのまま、読み取りだけの権限で参照します。
説明書と対応記録は、データストアに取り込んでおきます。 PDFと一緒に、次の形のメタデータを JSONL で Cloud Storage に置きます。
{"id": "safe-sf2300-manual",
"structData": {"equipment": "safe", "maker": "メーカーA", "model": "SF-2300",
"source_type": "manual", "rooms_from": "2019"},
"content": {"mimeType": "application/pdf", "uri": "gs://<バケット>/manuals/safe-sf2300.pdf"}}
| メタデータの項目 | 中身 | 何に使うか |
|---|---|---|
equipment | 機器の種類(safe/aircon/tv/kettle など) | 症状から見分けた機器で絞る |
model | 機種名(台帳と同じ書き方) | その部屋の機種で絞る |
source_type | manual(取扱説明書)/record(対応記録) | 回答の根拠の種類を見分ける |
maker | メーカー名 | 機種名が近い別メーカーの機器との取り違えを防ぐ |
model と equipment は、スキーマで「インデックス可能」にします。 そうしないと filter の式で使えません。
チャンク分けは、データストアを作るときに有効にします。 説明書は数十ページあり、1つの文書として扱うと「エラー表示の一覧」のページだけを引けません。チャンク分けはデータストアの作成後にオン・オフを切り替えられないため、最初に決めておきます。 チャンクの大きさは100〜500トークンの範囲で指定でき、見出しをチャンクに付ける設定(includeAncestorHeadings)を有効にすると、「故障かなと思ったら > エラー表示」のような章の位置がチャンクに残ります。
AIへ渡す前に整形する
- 機器の種類を見分ける … 症状の文から、金庫・空調・テレビ・電気ケトル・加湿空気清浄機などのどれかを見分けます。「エラー」「開かない」だけで決められなければ、その部屋の機器の一覧を返して選んでもらいます
- 機種を1つに決める … 台帳から、その部屋のその機器の機種を引きます。同じ部屋に同じ種類の機器が2台ある場合(ツインの空調が2系統など)は、どちらかを聞き返します
- filter の式を組み立てる …
model: ANY("<機種>") AND equipment: ANY("<機器>")の形にします - 表示の文字をそろえる … 「E-3」「E3」「E3」など、エラー表示の書き方を半角の英数字にそろえてから検索に渡します
- 説明書が無い機種を先に止める … 台帳の機種に対応する説明書のメタデータが無ければ、検索せずに設備課へ回します
5番目を軽く見ないでください。 説明書が無い機種で検索すると、filter に当たる文書が無く、関連する資料が無い理由で回答が返らないだけのこともあれば、filter の書き方の誤りで全文書が対象になり、別の機種の説明書から答えることもあります。 説明書の有無は、検索の前に台帳とメタデータの対応表で確かめます。
AIに処理させる
させるのは、絞り込んだ説明書と対応記録から手順を探し、根拠のページと一緒に返すこと、そして作業区分の一覧に照らして「現場でしてよい操作か」を書くことです。
| 返す項目 | 中身 | 決められないときの扱い |
|---|---|---|
| 手順 | 説明書に書かれた操作を、番号付きの短い手順で | 説明書に無ければ手順を返さない |
| 根拠 | 説明書の章とページ、または対応記録の日付 | 引用が付かない手順は返さない |
| 作業区分 | staff_ok(客室係が可)/engineer_only(設備課のみ)/vendor(業者) | 作業区分の一覧に無ければ engineer_only |
| 過去の対応 | 同じ機種・同じ症状の対応記録があれば、その要旨と結果 | 無ければ空 |
作業区分の決められないときの扱いを engineer_only に寄せるのが要です。 一覧に無い作業を、説明書の「お客様ご自身で」の書きぶりから staff_ok と判断させません。分からないときは、安全な側に倒します。
| させないこと | 理由 |
|---|---|
| 別の機種の説明書からの類推 | ボタンの名前と配置が違う。filter で範囲の外に置く |
| 説明書に無い手順の提案 | 「一般的には電源を抜くと直ります」を返さない |
| 作業区分の判断 | 一覧で決める。説明書の書きぶりで判断しない |
| 修理の要否の判断 | 業者を呼ぶかは設備課が決める |
| 対応記録を説明書より優先すること | 記録は「そのときそうした」もので、正規の手順ではない |
2行目がいちばん起きやすい失敗です。 生成AIは、関連する資料が薄くても、一般的な知識で手順らしい文を作れます。電源を抜く、ブレーカーを落とすといった「よくある直し方」は、機器によってはデータの消失や安全上の問題につながります。 関連する資料が無いときに回答を作らない設定(ignoreLowRelevantContent)を有効にし、根拠のない手順を返させません。
指示内容を固定する
answer メソッドの promptSpec.preamble に、次のような指示を書きます。
あなたはホテルの設備課の担当として、客室係やフロントからの機器の操作の質問に答えます。
検索で見つかった取扱説明書と対応記録だけを根拠に答えてください。
【答え方】
- 手順は番号付きで、1つの手順を1行で書いてください。全体で7行以内にしてください。
- 各手順の根拠として、説明書の章とページを示してください。
- 対応記録を使った場合は「過去の対応記録より」と明記し、説明書の手順と分けて書いてください。
- 最後に、作業区分の一覧に照らして「客室係が操作してよい」「設備課が対応する」
「業者に依頼する」のどれに当たるかを1行で書いてください。
一覧に無い作業は「設備課が対応する」としてください。
【厳守事項】
- 見つかった説明書に書かれていない手順を書かないでください。
一般的な家電の知識で補わないでください。
- 説明書の「お客様ご自身で」という書きぶりを、客室係が操作してよい根拠にしないでください。
- 電源の配線、ブレーカー、ガス、給排水、分解を伴う作業の手順は書かず、
「設備課が対応する」とだけ書いてください。
- 説明書と対応記録の内容が食い違う場合は、両方を示し、説明書の手順を先に書いてください。
- 該当する記載が見つからない場合は、手順を書かずに「該当する記載が見つかりません」と答えてください。
【作業区分の一覧(この機器の分)】{work_rules}
work_rules には、その機器の作業区分の一覧だけを中継プログラムが差し込みます。 全機器の一覧を渡すと、別の機器の区分を当てはめることがあります。
「お客様ご自身で」を根拠にしないことを明記しているのは、説明書が宿泊客ではなく家庭の利用者を想定して書かれているからです。 家庭でなら利用者がしてよい操作でも、ホテルでは設備課に任せる取り決めにしている作業があります。区分はホテルの取り決めで決まり、説明書では決まりません。
出力形式を固定する
answer メソッドの応答から、中継プログラムが次の形に組み直してチャットに返します。
{
"room": "1205",
"equipment": "safe",
"model": "SF-2300",
"answer_text": "",
"citations": [
{ "source_type": "manual", "title": "", "page": "", "snippet": "" }
],
"work_class": "staff_ok | engineer_only | vendor",
"past_records": [ { "date": "", "summary": "", "result": "" } ],
"status": "answered | no_relevant_content | low_grounded | no_manual | model_unclear"
}
1つ目の理由は、status で「答えられなかった理由」を分けられることです。 answer メソッドは、回答を作らなかったときに理由(answerSkippedReasons)を返します。関連する資料が無かった NO_RELEVANT_CONTENT と、回答が資料に十分に裏付けられなかった LOW_GROUNDED_CONTENT が挙げられています。中継プログラムの側で、説明書が無い(no_manual)と機種が決まらない(model_unclear)を足します。
status | 客室係への表示 | 設備課への回し方 |
|---|---|---|
answered | 手順と根拠を表示 | 直らなければ回す |
no_relevant_content | 「説明書に該当する記載がありません」 | すぐに回す |
low_grounded | 「確かな手順が見つかりません」 | すぐに回す |
no_manual | 「この機種の説明書が未登録です」 | すぐに回し、説明書の登録を設備課の課題にする |
model_unclear | 機器の候補を表示して選んでもらう | 選べなければ回す |
2つ目の理由は、work_class を画面の色に使えることです。 staff_ok 以外のときは、手順を表示しても「設備課が対応します」を大きく出し、客室係が操作を始める前に止めます。
3つ目は、citations で根拠のページを示せることです。 客室係は、説明書のどのページかを見れば、部屋で説明書の図とリモコンを見比べられます。 引用は includeCitations で受け取ります。回答の各文がどれだけ資料に裏付けられているかのスコアを返す設定(groundingSpec の includeGroundingSupports)もあり、スコアが低い文を含む回答は low_grounded に寄せる運用にできます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| チャット(スマートフォン) | 中継プログラムのWeb画面 | 部屋番号と症状を受け取り、回答を返す |
| 設備台帳 | 読み取り | 部屋番号から機器と機種を引く |
| Vertex AI Search(Agent Search) | answer メソッドの呼び出し | filter で機種に絞り、回答と引用を返す |
| Cloud Storage | 説明書と対応記録の置き場 | データストアへの取り込み元 |
| 設備課への依頼 | 既存の保全の依頼票に1件を足す | 部屋番号・機種・症状・試した手順・status |
設備台帳へは書き込みません。 機種の入れ替えは設備課が台帳で直します。チャットの結果で台帳を書き換える経路を作ると、間違った機種が台帳に残ります。
続けて質問するときは、セッションを使います。 answer メソッドには、前の質問の文脈を引き継いで続きの質問に答える session の仕組みがあります。「それでも開かない」「次は何をすればいい」といった続きの質問を、同じ部屋・同じ機種の文脈のまま扱えます。 ただし filter は毎回、中継プログラムが同じ式を付け直します。
人が確認する
客室係は、手順を自分の目で確かめながら操作します。 回答を読んで操作するのは人なので、操作の前に、画面の説明書のページとリモコンや本体の表示が一致しているかを見てもらいます。 一致していなければ、台帳の機種が違っている可能性があり、その場で設備課に回します。
設備課が見るのは、回ってきたものと、月に一度の一覧です。
- 回ってきた依頼を見る …
statusと試した手順を見てから部屋に向かいます no_manualを見る … 説明書が未登録の機種を登録します- 月に一度、「直らない」の一覧を見る … 説明書の手順で直らなかった症状をまとめ、対応記録に結果を残し、作業区分の一覧を見直します
- 台帳と現物の食い違いを直す … 客室係から「機種が違った」と報告があった部屋を、台帳で直します
3番目を省かないでください。 「直らない」の一覧は、説明書だけでは答えられない症状の集まりです。そこに設備課の対応の結果を記録として足していくことで、2名のベテランの知恵が検索で引けるようになります。
例外に対処する
| 起きること | 対応 |
|---|---|
| 部屋番号が台帳に無い | 宴会場・共用部などは別の台帳で引く。無ければ設備課へ |
| 同じ部屋に同じ種類の機器が2台 | どちらかを聞き返す |
| 台帳の機種と現物が違う | 客室係が「機種が違う」を押し、設備課へ。台帳を直す |
| 説明書が未登録 | no_manual。検索せずに設備課へ回す |
| 関連する資料が無い | no_relevant_content。手順を出さずに設備課へ |
| 回答の裏付けが弱い | low_grounded。手順を出さずに設備課へ |
| 安全に関わる症状(煙・焦げ臭い・水漏れ) | 検索をせずに、設備課への緊急の連絡を表示する |
| 宿泊客が在室中 | 客室係の操作の可否はホテルの取り決めに従う。画面に注意を出す |
| 検索が応答しない | 「設備課に電話してください」と表示する |
7行目は、検索の前に判定します。 「煙」「焦げ」「水が漏れ」などの言葉が症状に含まれていれば、回答を探すより先に人が駆けつけるべき状況です。 この判定は、言葉の一覧による規則で行い、AIの判断に任せません。
記録を残す
- 質問(部屋番号・症状)と、特定した機器・機種、組み立てた filter の式
- answer メソッドの応答(回答・引用・
answerSkippedReasons・裏付けのスコア) - 客室係が押した「直った」「直らない」「機種が違う」
- 設備課へ回した依頼と、その後の対応の結果
- 機種ごと・症状ごとの「直った」の割合
- 説明書を更新した日と、データストアへの取り込みの日
5つ目は、説明書の手順が現場で役に立っているかを見る数字です。 特定の機種のある症状だけ「直らない」が続くなら、説明書の手順では直らない故障か、手順の伝え方に問題があります。 設備課が月に一度見る一覧の材料になります。
04実装レベルの3段階
最小構成と半自動化は、設備課の側で使う段階です。 客室係からの電話はまだ来ますが、答えを探す時間が短くなります。 半自動化で、1件10分が7分程度になります。 本格構成で4分になり、この段階が本記事の想定です。 差が大きいのは、電話の待ち時間と、設備課が答えを探して伝える時間の両方がなくなるからです。 残るのは、客室係がチャットに打ち込んで手順を読む時間と、回ってきたものへの設備課の対応です。 段階を飛ばさないでください。 半自動化で設備課が1か月使うと、説明書の登録漏れ、台帳と現物の食い違い、作業区分の一覧の抜けが先に見つかります。それを直してから客室係に開くほうが、現場で「使えない」と言われずに済みます。
05工数削減シミュレーション
導入後 600件 × 4分 ÷ 60 = 40 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 客室数が多く、改装の時期によって部屋ごとに金庫・空調・テレビ・電気ケトルなどの機種が違うホテル・旅館。客室係から設備担当への「これはどう操作するのか」という電話が1日に何十件もあり、設備担当の手が止まっている場合。取扱説明書がPDFや紙でばらばらに保管され、どの部屋にどの機種が入っているかの台帳がある、または作れる場合。
- 客室数が少なく、全室が同じ機種で、客室係が操作を覚えきれている場合。部屋ごとの機種の台帳が無く、作る見込みも無い場合。電気・ガス・給排水の工事や、分解を伴う修理の手順を現場に示したい場合。この構成は、資格や専門の技術が要る作業の可否は判断しません。
07最小構成で試す方法
- 質問の多い機器を1つ選ぶ(客室の金庫が多いはず)
- その機器の機種ごとの説明書のPDFを集め、設備台帳で部屋番号との対応を確かめる
- 過去1か月に設備課が受けた金庫の質問を20件書き出す(部屋番号と症状)
- 手元のAIサービスに、その部屋の機種の説明書だけを読み込ませ、症状を貼って「この説明書に書かれていることだけで手順を答えてください。書かれていなければ、書かれていないと答えてください。根拠のページも示してください」と指示する
- 出てきた手順を、当時設備課が伝えた手順と突き合わせる
4番目で、説明書を1機種分だけ読み込ませることを守ってください。 全機種の説明書をまとめて読み込ませると、別の機種の手順が混ざって出てくることが、ここで確かめられてしまいます。 試しの段階では、機種を決めてから聞くという順そのものを確かめます。
| 出てきた内容 | 判断 |
|---|---|
| 当時と同じ手順が、根拠のページ付きで出た | データストアとメタデータの準備に進む |
| 説明書に無い手順を付け足して答えた | 指示と、関連する資料が無いときの設定で直る。構成は有効 |
| エラー表示の一覧の表や図が読めていない | レイアウトパーサーと、表・画像に説明を付ける設定を試す |
3行目は、古い説明書のスキャンで起きやすくなります。 文字の入っていない画像だけのPDFは、OCRのパーサーかレイアウトパーサーで読み込む必要があります。 試しの段階で、手持ちの説明書がどちらの形かを分けておきます。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 別の機種の説明書から答える | 台帳で機種を決め、filter で範囲を絞ってから検索する |
| 説明書に無い一般的な手順を答える | 関連する資料が無いときは回答を作らない設定にし、指示にも明記する |
| filter が何も返さない | 台帳とメタデータの機種名の書き方をそろえる |
| filter が効かず全文書が対象になる | メタデータの項目をスキーマで「インデックス可能」にする |
| エラー表示の一覧の表が拾えない | レイアウトパーサーと、表に説明を付ける設定を使う |
| チャンク分けを後から入れたい | 作成後に切り替えられない。 最初に有効にする |
| 「お客様ご自身で」を客室係の作業と扱う | 作業区分はホテルの一覧で決める。説明書の書きぶりで決めない |
| 対応記録の手順が説明書より優先される | source_type で分け、説明書の手順を先に書かせる |
| 煙や水漏れの質問に手順を返す | 検索の前に、言葉の一覧で緊急の連絡に切り替える |
| 改装後に古い説明書が残る | 台帳と説明書を同じ日に更新する手順にする |
上の2行が、この構成の失敗のほとんどです。 どちらも「それらしい手順」が返ってしまうことで起き、客室係はそれが正しいかを見分けられません。 機種で範囲を絞ることと、根拠の無い回答を作らせないことの2つを、設計で守ります。
下の2行も、同じくらい早く効いてきます。 安全に関わる症状への対応と、改装のときの更新の手順は、検索の精度とは別に、運用の決まりとして最初に作っておきます。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 機器の取扱説明書、館内の部屋番号と機器の対応、保全の対応記録です。宿泊客の個人情報は扱いません。
- 宿泊客の情報を質問に書かせない … 症状の欄に宿泊客の名前や様子を書かないよう、画面に注意を出します。部屋番号と機器の症状だけで足ります
- 安全に関わる判断を検索に任せない … 煙・焦げ・水漏れ・感電のおそれがあるときは、検索の前に人を呼ぶ判定を規則で置きます
- 作業区分はホテルが決める … 客室係がどこまで操作してよいかは、設備課と客室課で決めた一覧に従います。 説明書の書きぶりや回答の文で決めません
- 説明書の著作権に配慮する … 取扱説明書はメーカーの著作物です。社内の業務のために使う範囲にとどめ、回答を館外に公開しません
- 台帳を書き換えさせない … 検索の側から台帳を更新する経路を作らず、機種の変更は設備課が台帳で直します
- 回答の誤りを記録する … 「直らない」「機種が違う」の記録を残し、月に一度、設備課が見直します
誤りが起きた場合のリスクは、別の機種の手順で操作して機器を壊すことと、設備課が対応すべき作業を客室係が行うことの2つです。 前者は機種の絞り込みが外れると起き、後者は作業区分の判断を説明書の書きぶりに任せると起きます。どちらも台帳と一覧で防げるので、そこだけは設計で守ります。
10まず何から始めるか
1週目:金庫の台帳と説明書をそろえる
質問のいちばん多い機器(多くは金庫)について、設備台帳の機種名と、説明書のPDFのファイル名・メタデータの機種名を同じ書き方にそろえます。 台帳と現物が合っているかを、客室係に10室ほど見てもらいます。
2週目:20件で試す
第8章のとおり、過去の金庫の質問20件を、その部屋の機種の説明書だけを読み込ませて答えさせ、当時の設備課の答えと突き合わせます。
3週目:作業区分の一覧を作る
設備課と客室課で、金庫について客室係がしてよい操作と、設備課に回す作業を決めて一覧にします。煙・水漏れなどの緊急の言葉の一覧もここで作ります。
4週目:設備課の側で検索を使う
データストアを作り(チャンク分けを有効にして)、金庫の説明書とメタデータを入れます。設備課が電話を受けたときに、部屋番号と症状を入れて検索するところから始めます。
2か月目: 空調とテレビの説明書を足し、対応記録の取り込みを始めます。3か月目以降: 客室係のリーダー層にチャットを開き、1件10分が何分になったかを実測します。機種ごとの「直った」の割合を見て、説明書と作業区分の一覧を見直した時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Vertex AI Search が Agent Search へ改称中であること。answer メソッドが回答の文と、includeCitations による引用を返すこと。promptSpec.preamble で回答の口調や長さを指示できること。ignoreLowRelevantContent などで関連の低い場合に回答を作らない設定があること。回答を作らなかった理由(answerSkippedReasons)として NO_RELEVANT_CONTENT と LOW_GROUNDED_CONTENT が挙げられていること。groundingSpec の includeGroundingSupports で文ごとの裏付けのスコアを返せること。searchSpec.searchParams.filter で文書を絞れること。session で続きの質問に答えられること | Google Cloud: Get answers and follow-ups | 2026-10-06 |
レイアウトパーサーが段落・表・画像・リスト・題名・見出しを検出し、画像や表に説明を付ける機能を設定で有効にできること。チャンク分けが layoutBasedChunkingConfig で設定でき、chunkSize が100〜500トークン(既定500)、includeAncestorHeadings で見出しをチャンクに付けられること。チャンク分けはデータストアの作成後に切り替えられないこと。OCRのパーサーがPDFに適用されること | Google Cloud: Parse and chunk documents | 2026-10-06 |
構造化されていない文書にJSONLの structData でメタデータを付けられること。スキーマで「インデックス可能」にした項目を ANY() などの式で filter に使えること | Google Cloud: Filter generic search for structured or unstructured data | 2026-10-06 |
客室係がどこまで機器を操作してよいかは、自社の設備課と客室課の取り決めで決めてください。 本記事は公開仕様で確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0601)についてのご相談はこちらから。
