コラム

enjoy.CRMⅢにノーコード・ローコードとAzure OpenAIをぶち込んでみた

DX・新事業推進統括部 新規開拓推進・CRMチームの池田かずひこです。札幌から単身赴任してもう十数年が経ちました。仕事も楽しいし、嫁さんも「亭主元気で留守がいい♪」と言っているし、大好きなラグビー観戦にも行けるので、単身赴任も悪くはないと思っています。
当社ではコンタクトセンター向け顧客管理システム enjoy.CRMⅢを提供しています。僕も技術担当として頑張っています!

  • コンタクトセンターとは、お客様からの電話やメールやチャットでのお問い合わせ対応を的確に行うことで、顧客満足度や企業・製品イメージの向上を目的に活動されている所です。実際の応対を行う「オペレーター」とオペレーターを支援・指導をする「スーパーバイザー」がいます。

はじめに

最近、世の中で何かと話題になっている「ChatGPT」や「ノーコード・ローコード」。
enjoy.CRMⅢでも、こういった類のものをどうにか活用できないかな?と思い立ち、ジタバタとやってみたら、いろいろと楽しいことができましたので、皆さんに共有したいと思います。

  • ChatGPTは、OpenAI社が作成したモデルを利用したサービスです。以降、OpenAIと記載している箇所は、モデルを利用していると読み替えてください。

OpenAIやノーコード・ローコードが一気に広まってきた

2023年6月1日にenjoy.CRMⅢを皆さんにより知っていただくために「コンタクトセンター/CRMオンラインセミナー」を開催しました。僕もデモンストレーションを担当させていただきました。

enjoy.CRMⅢは、MicrosoftのDynamics 365と密な連携を行えることから、従来までのセミナーでは、

  • ノーコード・ローコードプラットフォームであるMicrosoft Power Platformによる業務の機能拡張
  • AI機能作成サービスであるMicrosoft Cognitive Servicesを活用したオペレーター支援

のデモ等を行ってきました。今回のセミナーでは、最近盛り上がっている「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のAPIが気になる

本家のOpenAI社の環境は無料で使えると言うことで2023年の年明けに早速申し込んで使ってみました。自称技術屋としては、ChatGPTサービスより、いろいろできるAPIで楽しいことができないかを目指します。
gpt-3.5-turboというモデルが使いやすそうだったので、なんちゃってチャットアプリを組んでみました。
OpenAI側がどのような回答をするかは、「プロンプト」という指示文で指定することができるので、下記のように指示してみました。

チャット画面

プロンプト

他のプロンプトパターンも試してみました。

  • コンタクトセンターのオペレーターさんとお問い合わせを行ったお客さまの会話の要約
  • その会話中にちりばめられている重要キーワードの抽出
  • オペレーターの応対品質がどの様なものだったかの10段階分析
  • 会話情報の中からお客様に関する情報の抽出

プロンプトを調整しないと余計なことや的外れな回答が出てきましたが、最終的にはいい感じに落ち着きました。特に、要約に関しては目的によって「抽出的要約」や「生成的要約」が可能なことも確認できました。(こりゃいい!)

  • 抽出的要約:文書に含まれる単語等をうまく抽出し組み合わせることで要約
  • 生成的要約:文書を一度中間表現に変換しこれを元に自然言語生成技術で要約

ここで事件発生です。なんとかいい感じに動き始めたOpenAI APIを利用していた、なんちゃってアプリ:「かずひこちゃんに聞いてみよう!」が、突然動かなくなってしまいました。はじめて経験する「429 Too Many Requests」のエラーです。明後日にはお客さまに見せびらかしに行こうと予定しています。パニック!!

原因は、OpenAIのChatGPTはずぅ~と継続利用可能なのですが、OpenAI APIは18ドル分また3か月間のみ利用可能の無料枠と言うものが存在していたのでした。(2023年6月現在)これからOpenAI APIを無償枠で試そうとされている方々はご注意ください!動作しない原因が分かったので、本家OpenAIからMicrosoft Azure OpenAIに引っ越して、お客様へのデモは事なきを得ました。

Azure OpenAIとPower Platformとenjoy.CRMⅢをガッチャンコ

通常、コンタクトセンターでのお客様との応対時の会話は、「通話録音ファイル」としてCTI(Computer Telephony Integration:電話機能を提供するシステム。OKIグループではCTstage 7DX/Cloudを提供)側が保存しています。この場合、応対内容がどの様な内容だったかを確認するためには、録音ファイルを再生して聞き直す必要がありました。
enjoy.CRMⅢでは、株式会社アドバンスド・メディアのAmiVoiceとの連携により音声-テキスト変換が可能です。これに加えて今回のデモでは、以下の2つをenjoy.CRMⅢに組み込んでみました。

  • Azure OpenAI APIを活用してボタンクリックにより、会話内容を生成的要約
  • 後にトークスクリプトとして活用可能な時系列的な箇条書きでの要約

OpenAIタブレット

お客様とオペレーターの応対をテキスト変換したイメージ

プロンプト

Azure OpenAI APIを利用しての要約結果

プロンプト

今回利用している、gpt-3.5-turboでは、上記のテキスト変換結果の文章を要約して表示するまで約5秒程度かかっているのですが、今後のモデルではレスポンスは改善方向になると思います。
現在はボタン押下タイミングで要約を行っていますが、速度改善によりリアルタイムに近い翻訳ができるようになると活用幅が広がるなぁと期待しています。

Power PlatformとAzure OpenAI APIを使ってenjoy.CRMⅢを拡張

先ほどの「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)等の手法を「追加してみた!」をお伝えできればと思います。

  • Microsoft、Azure、Dynamics 365、Power Platform、PowerPoint、その他のマイクロソフト製品およびサービスは、米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
  • enjoy.CRMは、株式会社OKIソフトウェアの日本における登録商標です。
  • CTstageは沖電気工業株式会社の日本における登録商標です。
  • AmiVoiceは株式会社アドバンスト・メディア社の日本における登録商標です。
  • その他本ページに表示または記載されている各社の会社名・ロゴ・サービス名・商品名等はすべて各社の商標または登録商標です。
  • YouTube

お問い合わせ

お問い合わせ