ECサイトの購入前の問い合わせに、商品マスタと仕様書・取扱説明書を根拠にチャットで答え、記載の無い質問を担当へ回して商品ページの記載不足として記録する
ECサイトの商品ページで客がサイズや対応機種をチャットで聞くと、その商品のマスタの値と仕様書・取扱説明書の記載から、出典付きで答えます。記載の無い質問は担当へ回し、商品ページの記載不足として記録します。
- 生成AI
- Gemini
- AIサービス
- Azure AI/Google Vertex AI/OpenSearch
- 連携・自動化
- Python
- 対象業界
- EC/小売/製造
- 対象部門
- カスタマーサポート
- 対象業務
- 問い合わせ対応/情報検索
- 主な課題
- 人手が足りない/問い合わせが多い/情報が見つからない
- AIで行う処理
- 対話
- 主な効果
- 対応スピード向上/工数削減/機会損失防止
- 導入難易度
- ★★★☆☆
- 実装レベル
- 本格構成
- 費用感
- RAG・個別開発(大)
- 人間の確認
- 必須
01導入前 / 導入後の業務フロー
- 客が商品ページの問い合わせフォームかメールで質問を送る
- 担当が、どの商品のどの色・サイズについての質問かを本文から読み取る
- 商品管理の画面でその商品のマスタを開き、該当する項目を見る
- マスタに無ければ、共有フォルダから仕様書と取扱説明書のPDFを開いて探す
- 見つかれば回答を書き、見つからなければメーカーに問い合わせるか「記載がありません」と返す
- 問い合わせ管理の画面に、回答と対応の種類を記録する
- 人客が商品ページのチャットを開き、質問を書く(例:「収納したときの大きさは」)
- 自動チャットが、開いた商品ページの商品コードと、選んでいる色・サイズを中継プログラムに渡す
- 自動中継プログラムが、質問を4つの種類(サイズ/素材/対応機種/付属品)と、それ以外に分ける
- 自動在庫・配送・価格・返品の質問は、答えを作らずにそれぞれの案内へ回す
- 自動商品マスタの項目で答えられるものは、マスタの値をそのまま返す
- 自動マスタに無いものは、Agent Search(旧 Vertex AI Search)の answer メソッドが、その商品の仕様書・取扱説明書だけを対象に回答を作り、出典を付けて返す
- 自動回答が作られなかった、または出典がその商品の文書でなかったときは、「記載がありません」と返し、担当へ回して記載不足として記録する
- 人担当は、回ってきた質問だけをメーカーに確かめて答える
- 人商品ページの担当が、記載不足の一覧を週に一度見て、商品ページに書き足す
各工程の詳しい説明を読む
- 客が商品ページの問い合わせフォームかメールで質問を送る
- 担当が、どの商品のどの色・サイズについての質問かを本文から読み取る
- 商品管理の画面でその商品のマスタを開き、該当する項目を見る
- マスタに無ければ、共有フォルダから仕様書と取扱説明書のPDFを開いて探す
- 見つかれば回答を書き、見つからなければメーカーに問い合わせるか「記載がありません」と返す
- 問い合わせ管理の画面に、回答と対応の種類を記録する
(a)返事を待つあいだに買うのをやめられる。 購入前の質問は、答えが届くまで買い物かごの中で止まっています。夜に届いた質問に翌朝答えても、そのときには客は別の店で買っています。 返事の速さが、そのまま売上に効く業務です。
(b)どの商品かが分からない。 「この寝袋の大きさは」とだけ書かれたメールでは、どの寝袋か、どの色かが分かりません。色やサイズで仕様が違う商品が多く、聞き返しで1往復増えます。
(c)PDFを探すのに時間がかかる。 取扱説明書は数十ページあり、対応機種の一覧は巻末、付属品は冒頭と、メーカーごとに場所が違います。探している項目がそもそも書かれていないと分かるまでに、全部のページを見ることになります。
(d)同じ質問が繰り返される。 「この充電器は○○に使えるか」のような質問が、商品ページに書かれていないために毎月同じように届きます。答えた内容が商品ページに戻らないので、件数が減りません。
4つとも、情報が無いことの問題ではありません。 答えの多くは仕様書に書いてあるのに、客にも担当にもすぐに届く場所に無いことの問題です。 そして、本当に書かれていなかった質問は、メーカーへの確認の待ちに入ったまま、商品ページに何が足りないのかという形では誰にも集計されていません。
- 【人】 客が商品ページのチャットを開き、質問を書く(例:「収納したときの大きさは」)
- 【自動】 チャットが、開いた商品ページの商品コードと、選んでいる色・サイズを中継プログラムに渡す
- 【自動】 中継プログラムが、質問を4つの種類(サイズ/素材/対応機種/付属品)と、それ以外に分ける
- 【自動】 在庫・配送・価格・返品の質問は、答えを作らずにそれぞれの案内へ回す
- 【自動】 商品マスタの項目で答えられるものは、マスタの値をそのまま返す
- 【自動】 マスタに無いものは、Agent Search(旧 Vertex AI Search)の answer メソッドが、その商品の仕様書・取扱説明書だけを対象に回答を作り、出典を付けて返す
- 【自動】 回答が作られなかった、または出典がその商品の文書でなかったときは、「記載がありません」と返し、担当へ回して記載不足として記録する
- 【人】 担当は、回ってきた質問だけをメーカーに確かめて答える
- 【人】 商品ページの担当が、記載不足の一覧を週に一度見て、商品ページに書き足す
2番目が、この設計の分かれ目です。 客に「どの商品か」を聞くのではなく、開いているページから商品コードを受け取ります。 これで第3章の(b)がなくなり、検索の対象をその商品の文書だけに絞れます。
5番目でマスタを先に見るのも、意図してのことです。 寸法や重さのようにマスタにある値は、文書を検索して言い換えさせるより、値をそのまま出すほうが正確です。 AIが文章を作るのは、マスタに無い値を文書から探すときだけです。
02今回想定するシステム構成
商品ページのチャット(客) ▼【トリガー】質問の送信(商品コード・色・サイズ付き) 中継プログラム(Python、Cloud Run) ├──▶ 質問の種類の判定(サイズ/素材/対応機種/付属品/その他) ├──▶ その他(在庫・配送・価格・返品)→ 各案内へ ├──▶ 商品マスタの項目で答えられるか → 値をそのまま返す ▼ Agent Search(Vertex AI Search)── answer メソッド │ データストア:メーカーの仕様書+取扱説明書(商品コードのメタデータ付き) │ 絞り込み:product_code/variant/doc_type ▼ 中継プログラム ── 出典がその商品の文書かを確かめる ├──▶ 回答と出典を返す └──▶ 記載なし → 担当の待ち行列+記載不足の一覧
| 役割 | 想定する製品 | 代替候補 |
|---|---|---|
| 検索基盤 | Vertex AI Search(Agent Search)の answer メソッド | Azure AI Search、Amazon OpenSearch Service |
| 生成AI | Gemini(answer メソッドの回答の生成に使うモデル) | ─ |
| 連携 | 中継プログラム(Python。Cloud Run で動かし、チャット・商品マスタ・検索・待ち行列をつなぐ) | Node.js で同じものを書く |
| 保管 | Cloud Storage(仕様書・取扱説明書のPDFとメタデータ) | ─ |
| 商品データ | 商品マスタの元のデータベース(読み取りだけ) | BigQuery に写したもの |
ECのカートと商品マスタと問い合わせ管理の画面は、新しく足すものではありません。 チャットの部品を商品ページに置き、回った質問は問い合わせ管理の画面に入れます。最初の準備は、共有フォルダのPDFに商品コードと色・サイズの対応を付けることです。
検索の土台は、Agent Search(Vertex AI Search から改称中)の answer メソッドです。 検索の結果から回答を作り、includeCitations で出典を付けられます。セッションを使った複数回のやり取りに対応します。 関係の薄い内容しか無いときは回答を作らず、answerSkippedReasons で理由を返します。
検索アプリを作るときに、生成の機能を有効にします。 公式の手順では、検索の要約や続けての質問のような機能を使うには、アプリの作成時に Generative Responses の選択肢を有効にする必要があるとされています。また、データストアを1つだけ付けたアプリは、後から別のデータストアを足せません。 商品マスタを後で構造化データとして足す可能性があるなら、最初から2つ付けて作ります。
03どうやって実装するのか
処理の起点を決める
起点は、客が商品ページのチャットで質問を送ったことです。 チャットの部品は、ページを開いた時点の商品コードと、選んでいる色・サイズを持っています。客が色を変えたら、チャットに渡す値も変えます。 色で素材が違う商品があるためです。
1つの商品の質問は、1つのセッションで続けます。 「収納したときの大きさは」のあとに「重さは」と続けて聞かれたとき、同じ商品の話として受けます。別の商品のページに移ったら、新しいセッションで始めます。 同じセッションで商品が変わると、前の商品の値が言い換えに混ざります。
処理は質問のたびに1件ずつ行います。 客は買い物かごの前で待っているので、まとめて処理する理由がありません。夜と週末も同じように動かし、担当へ回すものだけが翌営業日になります。
入力データを集める
| データ | 中身 | 取得元 |
|---|---|---|
| 質問 | 客の質問の文 | チャット |
| 商品の特定 | 商品コード、色・サイズのコード | 商品ページ |
| 商品マスタ | 商品名、寸法、重さ、素材、色、JANコード、付属品の欄 | 商品マスタの元のデータベース |
| 仕様書 | メーカーの仕様の一覧、対応機種、耐荷重、収納時の寸法 | 共有フォルダのPDF |
| 取扱説明書 | 付属品の一覧、使い方、注意事項、交換部品 | 共有フォルダのPDF |
| 回答の対象外の一覧 | 在庫・配送・価格・返品など、別の案内に回す話題 | サポートの担当が作る表 |
質を決めるのは、PDFと商品コード・色・サイズの対応です。 共有フォルダの名前が商品コードだけだと、色ごとに素材が違う商品で、別の色の仕様書が根拠になります。 仕様書が色・サイズ共通か、個別かを、対応の表に書きます。
商品マスタの付属品の欄は、空欄が多いものです。 空欄は「付属品が無い」ではなく「入力していない」なので、マスタの空欄で答えを作らず、取扱説明書の付属品の一覧に進みます。
データの取得方法を決める
仕様書と取扱説明書は、Cloud Storage に置いてデータストアに取り込みます。 メタデータは JSONL の各行に id、structData、content.mimeType、content.uri を書き、structData に商品コード、色・サイズのコード、文書の種類(仕様書/取扱説明書)、版を入れます。
| 取るもの | どこから | 何に使うか |
|---|---|---|
| 商品コード、色・サイズのコード | メタデータ | その商品の文書だけに絞る |
| 文書の種類 | メタデータ | 付属品は取扱説明書を先に見る |
| 版・状態 | メタデータ | 旧版の取扱説明書を除く |
| 寸法・重さ・素材 | 商品マスタ | 中継プログラムが直接引く |
絞り込みの式は、商品コードで必ず限ります。 項目を索引可能にしておけば、product_code: ANY("SL-2040") AND variant: ANY("SL-2040-NV", "common") AND status: ANY("current") のように書けます。商品コードで絞らずに検索すると、同じメーカーの似た型番の仕様書が根拠に出ます。 型番違いの対応機種は、たいてい少しずつ違います。
商品マスタは、中継プログラムが商品コードで1行だけ引きます。 マスタは「この商品の寸法はこの値」という事実の表で、似たものを探す対象ではありません。検索に入れると、名前の似た別の商品の行が根拠に出ます。 引いた行は、その時点の値として記録に残します。
取り込みは、商品の登録と仕様書の差し替えのたびに行います。 メーカーから新しい版の取扱説明書が届いたら、旧版を retired にしてから新版を取り込みます。
AIへ渡す前に整形する
- PDFに商品コードと色・サイズを付ける … 共有フォルダのファイルと商品マスタを突き合わせ、対応の表を作ります
- スキャンしたPDFを見分ける … 文字が選べないPDFは、取り込みの設定でOCRのパーサーを使います。OCRのパーサーが読むのは、1ファイルの最初の500ページまでです
- 表を読めるようにする … 対応機種や付属品は表で書かれていることが多いので、レイアウトパーサーで表と見出しを検出させます
- 見出しを断片に含める … データストアの作成時に分割を有効にし、
includeAncestorHeadingsを有効にします - 海外向けの版を除く … 同じ取扱説明書に、日本で売っていない型番の記載が並ぶものは、対象外の型番を注記します
- 回答の対象外の一覧を作る … 在庫・配送・価格・返品・効能の質問を、どの案内へ回すかを決めます
- マスタの単位をそろえる … 寸法の単位(mm/cm)と、重さに付属品を含むかを、項目の説明に書きます
4番目は、データストアを作る前に決めます。 分割はデータストアの作成のあとでは有効にも無効にもできず、見出しを含める設定は既定では無効です。 取扱説明書の「付属品」の見出しが断片に入っていないと、断片だけを読んでも何の一覧か分かりません。分割の大きさは100〜500トークンで、既定は500です。
7番目を軽く見ないでください。 「重さ 1.2kg」がケースを含むかどうかで、客にとっては別の答えになります。 マスタの値をそのまま返す以上、その値の意味は項目の説明として回答に添えます。
AIに処理させる
させるのは、商品マスタに無い値を、その商品の仕様書と取扱説明書から見つけ、書かれているとおりに短く答えることです。 どの商品か、どの話題を回すかは、中継プログラムが決めます。
| 質問の種類 | 先に見るもの | AIが探すもの |
|---|---|---|
| サイズ | 商品マスタの寸法・重さ | 収納時の寸法、適応する身長・体格 |
| 素材 | 商品マスタの素材 | 部品ごとの素材、表面の加工 |
| 対応機種 | ─ | 仕様書の対応機種の一覧 |
| 付属品 | 商品マスタの付属品の欄 | 取扱説明書の付属品の一覧、別売りの部品 |
サイズの質問で多いのは「自分の体格に合うか」です。 答えられるのは、仕様書に書かれた適応身長や胸囲の範囲までです。客の身長がその範囲に入るかを比べるのは中継プログラムの仕事にせず、範囲をそのまま示して客に判断してもらいます。 範囲の端にいる客に「合います」と答えると、返品の理由がそのまま店の回答になります。
answer メソッドの設定は次のようにします。
| 設定 | 値 | 理由 |
|---|---|---|
session | 商品ごとのセッション | 続けての質問をつなぐ |
includeCitations | 有効 | 回答に仕様書のページを付ける |
ignoreLowRelevantContent | 有効 | 記載の無い質問に答えない |
ignoreAdversarialQuery | 有効 | 想定外の文面に答えない |
ignoreNonAnswerSeekingQuery | 有効 | あいさつや雑談で検索しない |
filter | 商品コード、色・サイズ、状態 | その商品の現行の文書だけにする |
userPseudoId | 来訪者ごとの仮の識別子 | 会員の情報と結びつけない |
preamble | 下の指示 | 答え方の規則を与える |
ignoreLowRelevantContent が、この題材の要です。 記載の無い質問に、関係の薄い断片から答えを作らないための設定です。回答が作られなかったこと自体を、「記載が無い」という結果として使います。
| させないこと | 理由 |
|---|---|
| 一覧に無い機種で使えるかの推測 | 使えなかったときに返品と苦情になる |
| 素材の安全性や肌への影響の説明 | 店が根拠なく安全と答えることになる |
| 他の商品との比較やおすすめ | 根拠の無い比較は表示の問題になりうる |
| 在庫・配送・価格の回答 | 別のデータを引く必要がある |
| 単位の換算や計算 | 書かれた値と違う値が出る |
1行目がいちばん起きやすい失敗です。 対応機種の一覧に「○○ 2023年モデル」があり、客が「2024年モデルは」と聞くと、モデルは「後継機なので使える可能性が高い」と書きたがります。一覧に無い機種は、それだけで「記載がありません」です。
指示内容を固定する
answer メソッドの preamble に、次の指示を入れます。
あなたはECサイトで、購入を考えている客からの商品の質問に答える担当です。
読むのは、この商品を買うかどうかを決めようとしている客です。
【前提】
検索の対象は、客が見ている1つの商品の仕様書と取扱説明書だけです。
検索の文の最初に、商品名と色・サイズが書かれています。
【答え方】
1. 質問への答えを1〜3文で書いてください。
仕様書に書かれている値と単位を、そのまま使ってください。
2. 答えの根拠にした文書の種類(仕様書/取扱説明書)を書いてください。
3. 色やサイズで値が違う場合は、客の選んだ色・サイズの値だけを書いてください。
【厳守事項】
- 検索結果の文書に書かれていることだけで答えてください。
一般的な知識や、似た商品の情報で補わないでください。
- 対応機種は、文書の一覧に名前があるものだけを「対応」と書いてください。
後継機・同じシリーズ・似た型番について「使える可能性がある」と書かないでください。
- 単位を換算しないでください。計算しないでください。
- 素材が肌や健康に安全かどうか、アレルギーが起きないかを書かないでください。
素材の名前だけを書いてください。
- 他の商品と比べたり、他の商品を勧めたりしないでください。
- 在庫、お届け日、価格、返品については答えないでください。
- 該当する記載が見つからないときは、
「この商品の仕様書と取扱説明書に記載がありません。担当者が確認してご連絡します」
とだけ書いてください。
「後継機・同じシリーズについて書かない」を名指しで書くのが、この指示の要です。 「書かれていることだけで答える」と書くだけでは、モデルは一覧にある型番を根拠にして「シリーズとして対応」と書きます。禁じるのは、一覧の外へ広げる推論そのものです。
「単位を換算しない」も同じ理由です。 仕様書が「45×20cm」と書いているものを「約18インチ」と書き直すと、丸めの誤差が答えに入ります。 客が必要なら、客が換算します。
出力形式を固定する
answer メソッドの応答を、中継プログラムが次の形に整えて、チャットと記録に渡します。
{
"chat_id": "",
"session_id": "",
"product_code": "",
"variant": "",
"question_type": "size | material | compatibility | accessories | out_of_scope",
"source": "master | document | none",
"status": "answered | escalated | routed",
"answer_text": "",
"master_fields": [ { "field": "", "value": "", "note": "" } ],
"doc_refs": [ { "doc_type": "spec | manual", "product_code": "", "page": "", "uri": "" } ],
"gap": { "recorded": false, "attribute": "", "question": "" },
"feedback": "helpful | not_helpful | none"
}
1つ目の理由は、source で答えの出どころを分けられることです。 マスタの値で答えたものと、文書から作ったものと、答えられなかったものを分けて数えると、マスタの項目を増やすべきか、商品ページに書き足すべきかが分かります。
2つ目は、doc_refs の product_code で検査ができることです。 中継プログラムは、出典の商品コードが客の見ている商品と違う回答を見つけたら、回答を出さずに「記載がありません」として回します。 絞り込みの設定を誤ったときの最後の歯止めです。
3つ目は、gap で記載不足を集められることです。 回った質問は、商品コードと項目(収納時の寸法、対応機種、など)を付けて記載不足の一覧に入ります。商品ページの担当は、この一覧を件数の多い順に見ます。
master_fields の note には、項目の説明をそのまま入れます。 「重さ:1.2kg(収納袋を含む)」のように、前処理の7番目で書いた単位と含むものの説明を、値と一緒に客へ出します。値だけを返すと、客は自分の知りたい重さだと思って読みます。
システムへ連携する
| つなぎ先 | 方式 | 内容 |
|---|---|---|
| 商品ページのチャット | ページに置く部品 | 質問と商品コード・色・サイズを受け、回答を表示する |
| 商品マスタ | 読み取り | 寸法・重さ・素材・付属品の欄を引く |
| Agent Search | answer メソッドの呼び出し | その商品の文書から回答を作る |
| 問い合わせ管理の画面 | 書き込み | 回した質問を、商品と質問の文と一緒に載せる |
| 記載不足の一覧 | 書き込み | 商品コード・項目・質問を足す |
商品マスタと商品ページには書き込みません。 記載不足の一覧から商品ページに書き足すのは、商品ページの担当です。AIが見つけた値を自動で商品ページに載せると、誤りが全部の客に表示されます。
会員の情報や注文の履歴は引きません。 購入前の質問に答えるのに、客が誰かは要りません。userPseudoId には来訪者ごとの仮の識別子を入れ、会員の ID は入れません。
人が確認する
チャットの回答は、客に直接届きます。 だから人の確認を、回答の前ではなく、回答の後の抜き取りと、回ってきた質問に置きます。
- 回ってきた質問に答える … メーカーに確かめ、客に返します。答えた値は記載不足の一覧の同じ行に書きます
- 回答を抜き取って見る … 毎日、文書から作った回答を20件選び、出典のページと見比べます
- 評価の低い回答を見る … 客が「役に立たなかった」を選んだものを全件見ます
- 商品ページを直す … 週に一度、記載不足の多い商品から書き足します
2番目を省かないでください。 対応機種の推測や単位の換算は、客が気付かないまま購入まで進むので、評価には出てきません。 抜き取りでしか見つからない誤りがあります。
目標は、1,200件をならして1件2分です。 回答で解決した質問の記録の確認と抜き取り、回ってきた質問を担当が答える時間の平均です。
例外に対処する
| 起きること | 対応 |
|---|---|
| 商品コードが渡らない(ページの外から開いた) | 商品名か型番を聞き、商品マスタで特定できなければ担当へ回す |
| 色・サイズを選んでいない | 色・サイズで値が違う項目なら、先に選んでもらう |
| 在庫・配送・価格・返品の質問 | 答えを作らず、それぞれの案内のページを示す |
| 効能や安全性の質問 | 答えを作らず担当へ回す |
| 文書から回答が作られない | 「記載がありません」と返し、記載不足として記録する |
| 出典が別の商品の文書 | 回答を出さず、記載不足として回す |
| 仕様書が見つからない商品 | 商品マスタの値だけで答え、それ以外は回す。仕様書の取り寄せを商品の担当に出す |
| 検索の呼び出しが失敗する | 「回答を作れませんでした」と表示し、問い合わせフォームを示す |
| 客が「人と話したい」と書く | その時点の商品と質問を付けて担当へ回す |
7行目は、思ったより多く出ます。 メーカーから仕様書をもらわずに登録した商品は、共有フォルダにPDFがありません。記載不足の一覧で「仕様書なし」の商品を数えると、仕入れの担当に取り寄せを頼む順番が決まります。
記録を残す
- 質問の文、商品コード、色・サイズ、日時、来訪者の仮の識別子
- 質問の種類の判定と、マスタで答えたか文書で答えたか
- 中継プログラムが組み立てた検索の文と、使った絞り込みの式
- answer メソッドの応答の全文(回答、出典、回答しなかった理由)
- 客の評価と、担当が最終的に答えた内容
- 記載不足の一覧への記録と、商品ページに書き足した日
最後の行は、この構成の効果を測る材料になります。 書き足した商品で、同じ項目の質問がその後何件届いたかを見れば、商品ページを直したことで減った問い合わせが数えられます。
04実装レベルの3段階
半自動化で、1件5分が3分程度になります。 探す時間は縮みますが、担当が全件の回答を書いて送る形が残ります。本格構成で2分になり、この段階が本記事の想定です。 差が大きいのは、記載のある質問が担当を通らずにチャットで完結するからです。 段階を飛ばさないでください。 半自動化の1か月で、検索が別の商品の資料を出した件数を数えます。それがゼロに近づくまで、PDFと商品コードの対応を直してから客に開きます。
05工数削減シミュレーション
導入後 1,200件 × 2分 ÷ 60 = 40 時間/月
自社条件で導入効果を整理したい方へ
このユースケースを自社に当てはめた場合の前提値と削減見込みを、業務ヒアリングをもとに整理します。
06向いている企業・向いていない企業
- 数千点の商品を扱う自社ECサイトで、サイズ・素材・対応機種・付属品といった購入前の問い合わせがメールとフォームで月に千件前後届き、返事を待つあいだに購入をやめる客が出ている場合。商品マスタに寸法・重さ・素材などの項目がそろっており、メーカーの仕様書や取扱説明書のPDFを商品ごとに保管している場合。問い合わせを、商品ページの記載を直す材料として使いたい場合。
- 商品数が数百点以下で、問い合わせが月に数十件の場合。商品マスタの項目が空欄だらけで、仕様書も手元に無い場合(根拠にする情報が無いので、先にマスタを埋めるのが先です)。医薬品・医療機器・食品の効能や安全性のように、回答そのものに法令上の制約がある質問が多い場合。在庫や配送の状況を答えたい場合(受注と配送のデータを引く別の仕組みが要ります)。
07最小構成で試す方法
- 先月の問い合わせから30件を選ぶ(対応機種の質問と、仕様書に記載の無かった質問を数件入れる)
- その30件について、担当がどの資料を見て、どう答えたかを記録から拾う
- 30件の商品の仕様書と取扱説明書を、手元のAIサービスに資料として読み込ませる
- 商品名と色・サイズと質問を貼り、「添付の資料だけを根拠に答えてください。記載が無ければ『記載がありません』とだけ書いてください。一覧に無い機種について推測しないでください」と指示する
- 出てきた回答を、当時の担当の回答と突き合わせる
| 出てきた内容 | 判断 |
|---|---|
| 当時と同じ値と出典が出た | データストアの構築に進む |
| 一覧に無い機種で「使える可能性」と書いた | 指示の書き方で直る。構成は有効 |
| 別の色・型番の資料の値で答えた | PDFと商品コードの対応を作るのが先。 検索の問題ではない |
3行目が出ることは珍しくありません。 失敗ではなく、共有フォルダのPDFがどの色・型番のものかが、ファイルの側に書かれていないと分かったということです。 対応の表を作ってから、同じ30件で試し直してください。
08実装時につまずきやすいポイント
| 問題 | 対策 |
|---|---|
| 一覧に無い機種で「使える可能性」と答える | 後継機・同じシリーズに広げないと名指しで禁じ、抜き取りで見る |
| 別の色・型番の資料で答える | 商品コードと色・サイズで必ず絞り、出典の商品コードを照合する |
| マスタの空欄を「無い」と答える | 空欄は未入力として扱い、文書に進む |
| 単位を換算して答える | 換算と計算を禁じ、書かれた値をそのまま返す |
| 素材の安全性を答える | 素材の名前だけを書かせ、効能・安全性の質問は回す |
| 表の対応機種を読み落とす | レイアウトパーサーで表を検出させる |
| 見出しの無い断片で答える | 作成時に includeAncestorHeadings を有効にする。後から変えられない |
| 旧版の取扱説明書で答える | 差し替えのたびに旧版を retired にする |
上の2行が、この構成の失敗のほとんどです。 どちらも、答えとしてはもっともらしいのに、その商品のその色の記載ではないという失敗です。客は確かめようがなく、届いてから気付きます。
3行目は、マスタを先に見る設計の副作用です。 マスタの値を優先するぶん、空欄の扱いを決めておかないと、「付属品はありません」と答えてしまいます。
最後の行は、取り込みの運用で起きます。 取扱説明書の差し替えを商品の担当が共有フォルダで済ませ、データストアへの取り込みを忘れると、旧版の付属品の一覧で答え続けます。 差し替えの手順に取り込みを入れ、月に一度、フォルダとデータストアの版を突き合わせてください。
09セキュリティ・AIガバナンス上の注意点
この構成で扱うデータ: 商品マスタ、メーカーの仕様書と取扱説明書、客の質問の文です。質問の文には、客が自分の体格や持っている機器、ときには氏名や連絡先を書きます。
- 質問の文に個人の情報を書かせない … チャットの画面に「お名前や連絡先は書かないでください」と表示し、回すときに連絡先は問い合わせフォームで受けます
- 会員の情報と結びつけない …
userPseudoIdには来訪者ごとの仮の識別子を入れます - 一覧に無いものを「使える」と答えない … 返品と苦情の元になります。推測しないことを、指示と抜き取りの両方で守ります
- 効能・安全性を答えない … 店が根拠なく安全と表示したことになります。回答の対象外の一覧に入れて、必ず回します
- メーカーの資料の扱いを確かめる … 仕様書や取扱説明書を客への回答の根拠に使うことが、メーカーとの取り決めで認められているかを確かめます
- 記録の保存の期間を決める … 質問の文は、記載不足の集計に使う期間だけ残し、期間を過ぎたら消します
誤りが起きた場合のリスクは、使えない機器を使えると答えることと、別の商品の仕様で答えることの2つです。 前者は推論の禁止と抜き取りで、後者は商品コードの絞り込みと出典の照合で防ぎます。どちらも規則と設定で守り、AIの回答の文に頼りません。
10まず何から始めるか
1週目:PDFと商品コードの対応を作る
共有フォルダの仕様書と取扱説明書に、商品コードと色・サイズの対応を付けます。問い合わせの多い上位300点から始めます。この300点で、月の質問の大半が埋まります。
2週目:30件で試す
先月の問い合わせから30件を選び、手元のAIサービスに資料を読み込ませて答えさせます。一覧に無い機種で推測していないかを最優先で見ます。
3週目:回答の対象外の一覧を作る
在庫・配送・価格・返品・効能の質問を、どの案内に回すかを決めます。あわせて、商品マスタの寸法と重さの項目の説明(単位、付属品を含むか)を書きます。
4週目:データストアを作る
分割と見出しの設定を決め、300点の文書を取り込みます。担当が問い合わせ管理の画面から検索して、自分の回答と比べます。
2か月目: 中継プログラムとチャットの部品を作り、1つの商品カテゴリーで客に開きます。抜き取りの誤りと記載不足の件数を毎週数えます。3か月目以降: 全商品に広げ、1件5分が何分になったかを実測します。記載不足の一覧から書き足した商品で、同じ質問が減ったことを確かめた時点で、この構成は完成です。
11関連ユースケース
12この仕組みを理解するための記事
13技術仕様の確認日・参考情報
| 確認した内容 | 情報源 | 確認日 |
|---|---|---|
Vertex AI Search が Agent Search へ改称中であること。answer メソッドがセッションによる複数回のやり取りに対応すること。includeCitations、ignoreLowRelevantContent、ignoreAdversarialQuery、ignoreNonAnswerSeekingQuery、answerSkippedReasons、preamble、filter、userPseudoId | Google Cloud: Get answers and follow-ups | 2026-10-06 |
| 検索の要約や続けての質問などの機能に、アプリ作成時の Generative Responses の有効化が必要なこと。データストアを1つだけ付けたアプリは後から別のデータストアを足せないこと | Google Cloud: Create a search app | 2026-10-06 |
Cloud Storage から取り込むときのメタデータの JSONL(id、structData/jsonData、content.mimeType、content.uri) | Google Cloud: Create a search data store | 2026-10-06 |
絞り込みの ANY()、AND/OR/NOT、項目を索引可能にする必要があること | Google Cloud: Filter search for structured or unstructured data | 2026-10-06 |
レイアウトパーサーが表と見出しを検出すること。OCRのパーサーがPDFの最初の500ページまでを読むこと。分割の大きさが100〜500トークン(既定500)、includeAncestorHeadings が既定で無効、分割は作成後に切り替えられないこと | Google Cloud: Parse and chunk documents | 2026-10-06 |
商品の効能や安全性に関わる表示は、取り扱う商品の分野の法令と、メーカーとの取り決めに従ってください。 本記事は Google Cloud の公開ページで確認できた範囲だけを扱っています。
実装ステータス:構成例。 公開仕様に基づいて設計した構成であり、当社で実際に構築・検証したものではありません。工数の数値はモデル条件による試算です。
自社の業務に使えるAI活用候補を整理します
このユースケース(UC-0519)についてのご相談はこちらから。
