こんにちは、Cake.jp 技術部の釘野です。
昨今のAIの進化は目覚ましく「とりあえずAIを使って業務を楽にできないか?」と考える場面も増えてきました。
Cake.jpでも、技術部を始め社内のさまざまな業務でAI活用を模索しています。
今回はそんな中での「カスタマーサポート業務のFAQ検索を改善した取り組み」の話をさせていただきます。
カスタマーサポートが抱えていた課題
Cake.jpのカスタマーサポートでは、お問い合わせに対して
- 内容を確認
- 適切なFAQを探す
- FAQをもとに回答を作成
という流れで対応しています。
ただ、Cake.jpのサービス運営期間が長くなるにつれ、FAQの数も増え続けてきました。
結果として
- FAQが多く、検索に時間がかかる
- 慣れたスタッフでも毎回探すのが大変
- 新しいスタッフには特にハードルが高い
そんな状況がボトルネックになってきました。
そうだ、AIを使おう
この課題に対して「FAQ検索そのものをAIに任せられないか?」という対策案があがりました。
そこで採用したのがRAG(Retrieval-Augmented Generation:検索拡張生成)という仕組みです。
RAGをざっくり説明すると、
「あらかじめ用意した外部データ(FAQや社内ドキュメント)を検索させ、その結果をもとにAIが回答を生成する」
という仕組みになります。
LLMが普段おこなっている一般知識での回答はなく「こちらが用意した限定した情報を参照して答えさせる」のがポイントです。
カスタマーサポートのFAQ検索は、まさにRAGの活用例として良いケースとなりえると思いました。
n8nでRAGを構築する
今回の実装には『n8n』を利用しました。
n8nは、ノードと呼ばれる単位を組み合わせてワークフローを構築できる自動化ツールで、AI関連のノードも豊富に用意されています。
最初に作ったワークフローは、以下のような最低限の構成です。

使っているノードは次のとおりです。
|
ラベル |
ノードの種類 |
役割 |
|
FAQデータCSVをアップロード |
n8n Form Trigger |
|
|
FAQデータの入力 |
Simple Vector Store |
ベクターDBへのデータの入力をします。 |
|
Embeddings OpenAI |
Embeddings OpenAI |
ベクターDBでのデータの入力や検索を司るAIです。今回はOpenAIの「text-embedding-3-large」モデルを選択しました。 |
|
Default Data Loader |
||
|
FAQデータの検索 |
Simple Vector Store |
ベクターDBでFAQを検索して回答をします。 |
FAQデータ(CSV)は以下の3項目で、現在使われているFAQページから作りました。
- タイトル(質問)
- コンテンツ(回答)
- 該当ページのURL
しかし、検索精度が思ったほど出ない
さっそく「もらったはずのクーポンがありません」という問い合わせで検索してみたところ、返ってきたのは
- 配送状況がわかる送り状番号を知りたい
- eGiftの受け取りURLを紛失した
など、大きくズレたFAQでした。
クーポン関連のFAQは確かに入力して、登録されているのに、うまく回答されなかったのです。
原因を考えたところ
「入力されたFAQの文章では、AIが検索しやすい形になっていない」
ということだと推測されました。
そこでCSVの入力をそのまま登録するのではなく「AIが検索しやすい形に要約してからベクターDBに登録する」ことにしました。
具体的には、次のようにワークフローを拡張しました。

追加したノードや変更したノードは次のとおりです。
|
ラベル |
ノードの種類 |
役割 |
|
JSONに置換 |
Extract from File |
|
|
FAQの要約 |
AI Agent |
入力されたデータを要約します。プロンプトは後述。 |
|
OpenAI Chat Model |
OpenAI Chat Model |
FAQの文章の要約に使っているAIです。今回はOpenAIの「gpt-5-mini」モデルを選択しました。 |
|
Default Data Loader |
ベクターDBへ入力するデータの形式を指定します。「CSV」から「JSON」に変更しました。 |
改善後の検索結果
再度「もらったはずのクーポンがありません」という問い合わせでで検索してみると
- 届いたクーポンがマイページに表示されない
- クーポンを使用することができない
といった、質問の意図に合ったFAQが返ってくるようになりました。
n8nから返す結果としては「Metadata」に保存した元のFAQの文章を利用するため、 スタッフが見る情報はこれまでと変わりません。
そのうえで「探す時間」を大きく減らすことができました。
さいごに
今回の取り組みで、
- RAGはカスタマーサポートと相性が良い
- データの前処理(要約)が検索精度に大きく影響する
- n8nを使えば、比較的低コストで試せる
ということを感じました。
今後の課題としては、
- FAQデータの更新を手動ではなく自動化したい。
- 実運用の中でプロンプトや要約精度を改善していきたい。
などを考えています。
これからも、こうした新しい技術を取り入れながら、改善を積み重ねて日々の業務やサービスの品質向上に取り組んで行きたいと思います。