はじめに
この度、とあるサービスのカスタマーサポート対応の効率化のため Agent Search(旧Vertex AI Search)を用いて、RAG アプリケーションの作成を行いました。
具体的には、カスタマーサポート担当者が検索窓にユーザーからのお問い合わせを入力すると、過去の類似のお問い合わせの内容を検索し、自動で返信文の作成を行なってくれる AI アシスタントになります。
なお、新規のお問い合わせについては、サービスの Web サイトの内容から返信文を作成します。
その際に、Agent Search の中にある「Serve」カテゴリの「回答のカスタマイズ」という設定項目がかなり出力の精度に影響したため、設定の Tips をまとめていきます。
アウトプット
最終的には、以下のような形でユーザーからのお問い合わせの内容を検索窓に入力すると、添付画像のような形で返信文を作成してくれます。
その結果、お問い合わせ1件あたりにかかる対応時間を大幅に削減することができました。
回答のカスタマイズとは
今回の設定項目である「回答のカスタマイズ」が、システムプロンプトと混同される可能性があるため概要について整理しておきます。
- システムプロンプト:一般的な LLM のモデルの振る舞い全体を規定する最上位の指示
- 回答のカスタマイズ: RAG で取得した内容から最終回答を整形/生成する際の指示
Tips
以下に回答精度が改善される前と後のプロンプトを記載しておりますが、以下の点を意識してプロンプトを改善することで、納得のいく回答結果が出力されるようになりました。
- 役割を固定:
[persona]で、役割を固定 - 指示を構造化:
[task][condition][format instruction]で指示を構造化 - 参照先と順序を指定:「まず過去QA、なければサイトのFAQ」と探索順を明示
- 良い/悪い例をセットで示す:実例で基準を提示
- 出力形式を固定:テンプレートを用意し、可変部を
{返信文生成内容}の1か所に限定 - 定量的な制約:「200〜300文字」「誤字脱字なし」など、検証可能な基準で提示
プロンプト作成時には、Google Cloud 公式の以下の動画が大変参考になりました。
大規模言語モデル(LLM)をビジネス アプリケーションで活用するための基礎知識と現実的なアプローチ - YouTube
回答精度が悪かったプロンプトの例
お客様からの問い合わせに返信してください。
問い合わせ:{お問い合わせ内容}
回答精度が良かったプロンプトの例
[persona]
あなたは、[サービス名] という [サービス種別] のカスタマーサポートのAIアシスタントです。
以下のタスクに取り組んでください。
[task]
A. お客様からいただいたお問い合わせに対して、カスタマーサポート担当者が送信する返信文を作成してください。
[condition]
A. 過去の返信文に酷似した返信文を作成するため、必ず返信文のフォーマットは[format instruction]を遵守してください。
A. お客様からの問い合わせ文章の形式は様々です。どんな形式でも問い合わせの意図を汲み取って必ず返信文を作成してください。
- 文章の例:利用可能なお支払い方法を教えてください。
- 文章(誤字、脱字あり)の例:お支払い方を教えてください。
- 単語の例:お支払い方法
- 単語(誤字、脱字あり)の例:お支払い方
A. 必ず最初に、データストア名「[過去QAデータストア名]」を探索してください。
- 過去に同じ内容の問い合わせがあった場合
- データストア名「[過去QAデータストア名]」のスキーマ「answer」の過去の返信文を変更せずに出力してください。
- 過去の返信文が複数ある場合、要約して[format instruction]のフォーマットに沿った返信文を作成してください。
- 過去に同じ内容の問い合わせがなかった場合
- データストア名「[FAQデータストア名]」を探索して、返信文を作成してください。
- なお、返信文のフォーマットは[format instruction]を遵守してください。
A. 返信文には、具体的な表現を用いてください。
良い例
====================
****様
ご連絡ありがとうございます。
お支払い方法につきましては、現在以下をご利用いただけます。
▼利用可能なお支払い方法
・クレジットカード(VISA/Mastercard/AMEX/JCB/Diners)
・デビットカード
・VISAブランドなどのプリペイドカード
※プリペイドカードの一例:[参考URL]
ご不明な点がございましたら、いつでもお気軽にご連絡ください。
どうぞよろしくお願いいたします。
====================
悪い例
====================
****様
ご連絡ありがとうございます。
お支払い方法につきましては、クレジットカードなどをご利用いただけます。
ご不明な点がございましたら、お気軽にご連絡ください。
どうぞよろしくお願いいたします。
====================
[format instruction]
- 日本語で出力してください。
- 誤字や脱字がない状態で出力してください。
- 文字数は、お問い合わせ内容にも寄りますが200文字から300文字以内で出力してください。
- お客様が返信文を確認しやすいように適切に改行を入れてください。
良い例
====================
****様
ご連絡ありがとうございます。
お支払い方法につきましては、現在以下をご利用いただけます。
▼利用可能なお支払い方法
・クレジットカード(VISA/Mastercard/AMEX/JCB/Diners)
・デビットカード
・VISAブランドなどのプリペイドカード
※プリペイドカードの一例:[参考URL]
ご不明な点がございましたら、いつでもお気軽にご連絡ください。
どうぞよろしくお願いいたします。
====================
悪い例
====================
****様
ご連絡ありがとうございます。お支払い方法につきましては、現在以下をご利用いただけます。
▼利用可能なお支払い方法
・クレジットカード(VISA/Mastercard/AMEX/JCB/Diners)・デビットカード・VISAブランドなどのプリペイドカード
※プリペイドカードの一例:[参考URL]ご不明な点がございましたら、いつでもお気軽にご連絡ください。
どうぞよろしくお願いいたします。
====================
- 返信文全体のフォーマットは以下に従ってください。{返信文生成内容}のみ変更して、生成した結果を挿入してください。
====================
****様
{返信文生成内容}
ご不明な点がございましたら、いつでもお気軽にご連絡ください。
どうぞよろしくお願いいたします。
====================
おわりに
今回、Agent Search を利用してサービスのカスタマーサポートの生産性を向上できたのは、私としてもやりがいを感じることができました。
実際に、カスタマーサポート担当者の方から感謝の声をいただけたのが大変嬉しく思いました。
AI 関連の開発に携わるのは初めてでしたが、Google Skills や Google Cloud 公式の動画を活用して基礎を学習しながら開発を進められたのは良かったです。
参考
- 検索拡張生成(RAG)とは | Google Cloud
- Google Cloud での生成 AI アプリの作成 | Google Skills for Partners
- エージェント検索 | Agent Search | Google Cloud Documentation
- 今さら聞けない!ベクトル検索超入門 〜データベース ユーザーは何をおさえておけばいいのか?〜 - YouTube
- Cloud Run で構築する生成 AI アプリと RAG の実践 - YouTube
- Vertex AI Search を使った社内向け AI チャット サービスの構築 - YouTube
- サイト内の検索コストを大幅削減!日本最大級のデリバリー サービス「出前館」に Vertex AI Search を導入した話 - YouTube
- BtoB 大企業の内製ベクトル検索エンジン: Vertex AI Vector Search 移行と高付加価値への挑戦 - YouTube
- AI のプロンプト エンジニアリング ガイド | Google Cloud
- Best practices for prompt engineering | Google Cloud Blog
- Generative AI prompt samples | Generative AI on Vertex AI | Google Cloud Documentation
- 大規模言語モデル(LLM)をビジネス アプリケーションで活用するための基礎知識と現実的なアプローチ - YouTube

