DX・新事業推進統括部 新規開拓推進・CRMチームの池田かずひこです。札幌から単身赴任してもう十数年が経ちました。仕事も楽しいし、嫁さんも「亭主元気で留守がいい♪」と言っているし、大好きなラグビー観戦にも行けるので、単身赴任も悪くはないと思っています。
当社ではコンタクトセンター向け顧客管理システム enjoy.CRMⅢを提供しています。僕も技術担当として頑張っています!
最近、世の中で何かと話題になっている「ChatGPT」や「ノーコード・ローコード」。
enjoy.CRMⅢでも、こういった類のものをどうにか活用できないかな?と思い立ち、ジタバタとやってみたら、いろいろと楽しいことができましたので、皆さんに共有したいと思います。
2023年6月1日にenjoy.CRMⅢを皆さんにより知っていただくために「コンタクトセンター/CRMオンラインセミナー」を開催しました。僕もデモンストレーションを担当させていただきました。
enjoy.CRMⅢは、MicrosoftのDynamics 365と密な連携を行えることから、従来までのセミナーでは、
のデモ等を行ってきました。今回のセミナーでは、最近盛り上がっている「OpenAI」を取り入れたデモに挑戦してみました。
Microsoftでも、2023年1月から事前学習モデルをお手軽に利用できるCognitive Servicesに、Azure OpenAI Service(以後、Azure OpenAIと表記)が追加されました。Azure OpenAIはMicrosoft社が提供しているAzure環境で保護されているモデルなので、enjoy.CRMⅢからはセキュリティ面でも安心して利用できます。
また、今回はユーザーインターフェースも既に用意されているChatGPTサービスではなく、プログラムからいろいろ操作可能なAzure OpenAIのAPIを利用しました。
もう一つのキーワード「ノーコード・ローコード」もここ1~2年で急激に広まってきました。コンタクトセンターに勤務されている皆様が普段不便に思われている事を改善したいと相談を受けた際に、従来はC#言語等でのコーディングにより解決する事になり期間やコスト面から、改善見送りとなることが多かったと思います。(←当社比)ここも、ノーコード・ローコードプラットフォームであるMicrosoft Power Platformを活用することにより、短期間・低コストで実現可能となるケースが増えてきました。
本家のOpenAI社の環境は無料で使えると言うことで2023年の年明けに早速申し込んで使ってみました。自称技術屋としては、ChatGPTサービスより、いろいろできるAPIで楽しいことができないかを目指します。
gpt-3.5-turboというモデルが使いやすそうだったので、なんちゃってチャットアプリを組んでみました。
OpenAI側がどのような回答をするかは、「プロンプト」という指示文で指定することができるので、下記のように指示してみました。
他のプロンプトパターンも試してみました。
プロンプトを調整しないと余計なことや的外れな回答が出てきましたが、最終的にはいい感じに落ち着きました。特に、要約に関しては目的によって「抽出的要約」や「生成的要約」が可能なことも確認できました。(こりゃいい!)
ここで事件発生です。なんとかいい感じに動き始めたOpenAI APIを利用していた、なんちゃってアプリ:「かずひこちゃんに聞いてみよう!」が、突然動かなくなってしまいました。はじめて経験する「429 Too Many Requests」のエラーです。明後日にはお客さまに見せびらかしに行こうと予定しています。パニック!!
原因は、OpenAIのChatGPTはずぅ~と継続利用可能なのですが、OpenAI APIは18ドル分また3か月間のみ利用可能の無料枠と言うものが存在していたのでした。(2023年6月現在)これからOpenAI APIを無償枠で試そうとされている方々はご注意ください!動作しない原因が分かったので、本家OpenAIからMicrosoft Azure OpenAIに引っ越して、お客様へのデモは事なきを得ました。
通常、コンタクトセンターでのお客様との応対時の会話は、「通話録音ファイル」としてCTI(Computer Telephony Integration:電話機能を提供するシステム。OKIグループではCTstage 7DX/Cloudを提供)側が保存しています。この場合、応対内容がどの様な内容だったかを確認するためには、録音ファイルを再生して聞き直す必要がありました。
enjoy.CRMⅢでは、株式会社アドバンスド・メディアのAmiVoiceとの連携により音声-テキスト変換が可能です。これに加えて今回のデモでは、以下の2つをenjoy.CRMⅢに組み込んでみました。
お客様とオペレーターの応対をテキスト変換したイメージ
Azure OpenAI APIを利用しての要約結果
今回利用している、gpt-3.5-turboでは、上記のテキスト変換結果の文章を要約して表示するまで約5秒程度かかっているのですが、今後のモデルではレスポンスは改善方向になると思います。
現在はボタン押下タイミングで要約を行っていますが、速度改善によりリアルタイムに近い翻訳ができるようになると活用幅が広がるなぁと期待しています。
先ほどの「enjoy.CRMⅢへの組み込み」は、JavaScript言語やC#言語でゴリゴリ書いての実装でした。
今度は、スピーディーな対応を求めて、Power Platformを活用してノーコード・ローコードで実現してみました。
下記は、同じ応対履歴のテキストから、オペレーターの応対が10段階評価でどのレベルの応対だったかをローコードアプリで動かしています。
対応品質レベルとその評価理由、おまけに改善ポイントを回答してくれました。なかなかいい感じです!
ちなみに、画面全体もPower Platformが提供するPowerAppsキャンバスアプリで作成しています。皆さんも見覚えがある、PowerPointの画面と似たインターフェースで作成可能です。
このアプリ作成に要した時間は、ベースとなるアプリに2時間程度。Azure OpenAI APIの組み込みに1時間程度で完成しました。これを従来のプログラミング言語で作成すると数日かかったと思います。
応対品質分析の動作に気を良くした僕は、続いて、以下の4つの処理も組み込んでみました。
前述の応対品質分析で基本的な設定(ノーコード・ローコードだと、コーディングではなく設定のイメージです)で動かせたのでこれら4処理も1時間かからず動作確認できました。
もう少し、Azure OpenAI APIへのプロンプトの与え方を僕自身が学習すると、より現場での利用可能性が高まると思っています。(今はやりのプロンプトエンジニアリングのお勉強)
また、Power Platformを利用したノーコード・ローコードアプリケーションを利用することで、お客様と相談しながら、作りながら、動きを確認しながらの課題解決も短期間・低コストで可能になると思っています。
今回の例は、「お客様との会話」のデータを入力として、その範囲でAzure OpenAIに回答してもらいましたが、コンタクトセンターではインターネットで学習した情報のみの回答では不十分で、手元にある各種製品ドキュメントや独自の応対マニュアルの記載内容や情報も含めて、回答する必要があります。
次回のブログでは、上記のように社内の情報も考慮した回答を可能としてくれるエンベディング(Embedding)等の手法を「追加してみた!」をお伝えできればと思います。