MAMORIOアプリのチャットサポートにAIオペレーターを導入するまで
はじめに
私が開発に携わっているMAMORIOはBluetoothを用いた落とし物防止タグなのですが、操作が必要なハードウェア製品で様々なバージョンが存在するためユーザーからの問い合わせが多い状況が続いていました。
そのため、2024年4月11日にMAMORIOはChannelTalkで表示していたアプリ内のサポートチャットに人間の代わりにAIがユーザーの質問に回答するAIチャット機能をリリースしました。
LLMを用いたAIチャットを導入する理由は多岐にわたります。
まず、人間のチャットサポートが業務時間内に限られるのに対し、AIは24時間365日対応可能であること。
さらに、API連携によってユーザーのリアルタイムの情報やマニュアルの内容を参照して返答可能であること。
加えて、1000文字の返答が4.5円とコストが非常に低いことも大きな利点です。
AIチャットの実装方法
AIチャットの実装にはChannelTalkのWebhookを利用しました。
ユーザーから質問があった際のイベントのWebhookの送り先を弊社のサーバーに設定し、それをトリガーに回答を用意した後、ChannelTalkのAPIをキックして返答するという仕組みです。
具体的な流れは以下の図の通りです。
LLMが参照するデータベースは、FAQとして公開・構築してきたNotionの公開ページを用いています。
また、Notionの内部情報の検索には、Notion社のAPIに全文検索機能がないため、Bingサーチを利用しています。
最後に、ユーザーが持っているMAMORIOの一覧や登録状況などをサーバーから取得し、それらを組み合わせて最終的な回答を生成します。
モデルにはGPT-4を採用しています。
外部サービスの活用と効率化
今回のAIサポートの構成で重要なのは検索ワード生成とNotionおよびBingサーチの活用です。
ユーザーの質問は必ずしもそれを調べるために必須のワードが含まれているとは限らないため、検索ワード生成のフェーズではChatGPTに質問の意図を汲みつつ検索しやすいワードの出力をさせ検索の精度を高めることができました。
次に、MAMORIO社のナリッジベースには社内の非エンジニアのメンバー達からもユーザー体験の良さが支持されているNotionを使っており、AIが回答をする際にも参照させているのですがNotionには全文検索APIが存在しないためBingサーチを検索に用いています。
これらの外部サービスを積極的に利用することにより、複雑な自然言語処理や全文検索エンジンを自前で実装してRAGを行うシステムを構築する手間を省きつつ要求水準を満たすサービスをリリースすることができました。
ユーザーコミュニケーションチームとの協働
AIの導入にあたり、サポートチームとは事前にミーティングを行い、アイデアを共有しました。
その中で特に強調したのは新しい部下を得たと思って自分たちの作業負荷を下げるためにAIを活用してほしいということでした。
AIチャット登場後のサポートチームの仕事の変化を最も端的に表したのが以下の図です。
つまり、AIチャット登場後のサポートチームには、労働負荷が下がるかわりにAIという部下を上手く動かすために指示出しを工夫したり業務フローの構築するようなマネージャー的な仕事も求められることになるだろうということです。
AIの回答に問題がある場合は、AIが参照しているNotionのFAQやプロンプトを更新したり、エンジニアに改善要望を出したりすることで対応します。
AIと人間にはそれぞれ得意不得意がありますので、返品などの対応が必要な処理やAIがFAQを参照しても答えられない例外的な事象やシステムのエラーでAIが応答できない場合は人間が対応し、反対に即応性や夜中などの人間が対応できない状況下では積極的にAIに任せていくというアプローチを取っています。
AIの活用における課題と対策
AIの返答には原理的に不完全さがありますので、AIが間違える可能性があることをユーザーに提示し期待値をコントロールすることが必要です。
また、それだけではない興味深いトラブルとして回答拒否の実装がありました。
社内で行われた実験では、「あなたのモデルは何ですか?」や「(偽のブランド)とのコラボ商品を買う方法は?」といったいたずらやカジュアルハックのような質問が多く投げかけられたため、そういった質問をブロックする機能を追加しようとしました。
しかしその結果、例えばMAMORIOのことをカタカナで「マモリオ」と入力されただけでブロックされてしまうなどの誤動作が発生するようになりました。
わずかでも揺らぎや不確実性のありそうな質問をすべてブロックするようになってしまったのです。
我々はこの件で、悪意ある質問に真面目に回答してしまうリスクと答えなければいけない質問への回答を拒否してしまうリスクのどちら取るべきかという判断を迫られました。
結果として取るべきなのは前者のリスクであり、間違った回答のリスクをユーザーに提示したり参照URLを載せたりユーザーIDを特定した上で事後的にペナルティを課すことで対処できると判断しました。
LLMの出力は安定せず手法もすぐに陳腐化しますので、リスクを完全になくすために時間をかけて品質をブラッシュアップするのではなく取るべきリスクを選択して先に進めることを優先した方がいいことが多いと思いました。
導入の成果
AIチャットサポートの導入はまだ始まったばかりですが、すでにいくつかの明確なメリットが得られています。
まず、営業時間や休日の設定が不要になったことです。
人間のカスタマーサポートは勤務時間内のみの対応となるため、対応可能な時間帯を明示し、毎年変更される祝日も都度更新する必要があったのですが、一方でAIは24時間FAQやCRMに保存されているユーザーの状態を踏まえて応答が可能です。
AIとオペレーターがそれぞれの強みを生かしながら業務時間内外でシームレスに対応できるようになったため、休止時間を設ける必要がなくなりました。
今後は、AIの応答記録やユーザー満足度のフィードバックを分析し、継続的な改善とユーザー体験の向上を目指していきます。
AIは急速に発展している技術ですので、完璧を目指して時間をかけるのではなく、既存の技術を最大限活用して素早く機能を実装し改善サイクルを回していくことが重要だと思います。
さらに、エンジニアだけでなく、社内の様々な部門のメンバーを巻き込み、AIと人間が協力して問題解決にあたる体制を作ることが不可欠です。
Discussion