SIP対応IP電話機の最適解、Fanvil製品を国内正規取扱中|CCアーキテクトが運営する3CXクラウドサービスは顧客満足度99%以上|最新のユニファイドコミュニケーションの技術事情はCCアーキテクト社員が本ブログで随時更新中

Genesys Cloud Audio Connectorで外部の音声AIボットとつないでみた

はじめに

Genesys Cloudには標準でボット機能があります。それでも案件では、

  • 応対をもっと自然にしたい
  • 聞き取りの精度を上げたい
  • すでに使っているAIサービスにそろえたい

といった理由から、外部の音声AIサービスとつなぎたいというご相談をいただくことがあります。

その接続手段として用意されているのが、Audio Connectorです。では、実際につないでみると、どこまで簡単で、どこでつまずくのか。

そう思い、今回、クラウド型の音声AIエージェントサービス(以下、外部ボット)とAudio Connectorをつなぎ、電話で会話するところまで試してみました。確かめたのは、設定の手間と、会話が終わってフローに戻るときの挙動です。

Audio Connectorで外部ボットとつなぐ構成

Audio Connectorとは

Audio Connectorは、通話の音声を外部ボットへ流し、ボットの音声をお客様に返す仕組みです。ボットとの会話が終わると、通話はGenesys Cloudのフローに戻り、次の処理へ進みます。

ドキュメントに記載されている主な条件は、次のとおりです。

項目ドキュメントの記載
必要な契約Genesys Cloud CX 1〜4のライセンスに加え、BYOT Rate Eの追加(営業経由)
料金音声を流している時間に応じた分単位の課金
接続先「wss://」で始まるURL(暗号化された常時接続の通信)。ポートは443のみ
上限1組織あたり5つまで。1通話は既定で最大15分

企画の段階では、Genesys側の追加契約と、外部ボット側の利用料の両方を見積もっておく必要があります。

設定は「接続先・キー・ID」の3つだけ

結論から言うと、Genesys Cloud側の設定は簡単でした。必要な値は、外部ボットから発行される次の3つです。

  • 接続先のURL(Base Connection URI)
  • APIキー(接続を認証するための鍵)
  • Connector ID(どのボットにつなぐかを示すID)

URLとAPIキーは、インテグレーション(外部サービスとの連携設定)に登録します。資格情報の画面にはClient Secretという欄もありますが、ドキュメントには必須かどうかの記載がありません。今回の検証では任意の項目になっており、空欄のままでも接続できました。

Client Secretは接続要求に署名するための値なので、外部ボットが対応している場合は、認証を強める選択肢になります。

資格情報の入力欄(API Keyは必須、Client Secretは任意)

フローでは、Architectのツールボックスの「ボット」カテゴリにあるCall Audio Connector(日本語画面では「音声コネクターの呼び出し」)を置き、Connector IDを入力します。Inputsを使うと、フローからボットへ値を渡せます。今回はお客様名として「テスト太郎」を渡し、ボットの第一声で「テスト太郎様」と呼びかけられることを確認しました。

音声コネクターの呼び出しの設定(入力・出力・失敗の出力)

日本語の会話も自然で、話し終えてからボットが答え始めるまでの間は、体感で1秒あるかないかでした。外部ボットの管理画面の表示値でも、応答文を考えるAIの処理時間は0.2〜0.8秒程度でした。

注意点1:ボットが会話を終えないと、フローに戻らない

最初の通話では、用件を伝えた後もフローに戻りませんでした。ボットが締めの挨拶を繰り返し、こちらが電話を切るまで会話が続いたのです。

原因は、外部ボット側の「会話を終了する」機能が、作成直後は無効になっていたことでした。この機能を有効にし、ボットへの指示文(プロンプト)に「用件を確認したら必ず会話を終了する」と明記したところ、フローの成功パスに戻りました。

終了の設定なし・ありの比較

フローに戻らないと、オペレーターへの転送などの後続処理に進めません。外部ボットを選ぶ際は、どのような条件で会話を終えるかを、設定と指示文の両方で制御できるかを確認しておくと安心です。

注意点2:「成功」は「用件が聞けた」ではない

Call Audio Connectorには、成功と失敗の2つの出口があります。ドキュメントでは、ボットがセッションを正常に完了したときに、ボットから返された値をOutputs(出力変数)に入れると説明されています。

試しに、ボットの問いかけに何も答えずに黙ってみました。すると、ボット側が無音を理由に会話を終え、Genesysでは成功パスに進みました。Genesysから見ると、ボットが会話を終えれば「成功」で、用件を聞けたかどうかは関係ないということです。

ケースボット側の終わり方進んだパスGenesysに返った値
用件を話したボットが会話を終了成功null(空)
黙ったまま無音のため会話を終了成功null(空)

なお、表のとおり、用件を話したケースでもGenesysに返った値はnullでした。外部ボット側では用件(「解約」)を取得できていましたが、Genesysには届いていません。原因がGenesys側と外部ボット側のどちらにあるかは、今回は切り分けていません。

このため、フローは「成功なら次へ」とせず、成功パスの後で出力値の中身を確認し、空ならオペレーターにつなぐ形にしておくのが安全です。PoC(導入前の試行)では、出力値が実際に入るかを必ず確認してください。

成功パスのあとも出力値で分岐させるフロー

注意点3:エラーの原因は、Genesys側だけでは区別できない

設定ミスを2種類わざと起こし、失敗パスで受け取るエラーの種類(errorType)を確認しました。

起こしたミスerrorType外部ボット側の記録
ボットが必須とする値を、Inputsで渡さないNoResourceErrorエラーの記録あり(必要な値が不足と表示)
Connector IDを、存在しない値にするNoResourceError記録なし

どちらも同じNoResourceErrorで、エラーメッセージの文面も同じでした。ドキュメントでは、NoResourceErrorの例として「ボットが見つからない場合」が挙げられています。今回の検証では、値の渡し忘れでも同じエラーになりました。

実行履歴で失敗パスに進み、NoResourceErrorが読み上げられた画面

原因を区別できたのは、外部ボット側の記録の有無でした。本番運用に向けては、障害時にGenesysと外部ボットの両方のログを確認できる体制と、どちらが切り分けを担当するかを、導入前に決めておくことをおすすめします。

まとめ

Audio Connector自体は、接続先・キー・IDを設定するだけで簡単に使えました。手間や差が出たのは、会話の終え方や結果の返し方など、外部ボット側でした。

外部ボットを選ぶ際は、次の観点を確認してみてください。

観点確認すること
会話の終了終了の条件を、設定と指示文で制御できるか
結果の返却聞き取った内容を、GenesysのOutputsに返せるか(PoCで実際に確認する)
記録会話内容、応答速度、エラーの理由を、管理画面で確認できるか
フローの設計成功パスでも出力値で再分岐し、空や失敗のときの行き先を決めているか

外部ボットとの連携というと、つなぐまでが大変という印象を持たれがちです。実際に試してみると、つなぐこと自体よりも、つないだ後に「どう終わらせ、何を受け取るか」を設計することの方が大切だと感じました。

参考

Genesys Cloudの設計・設定・運用でお困りの点があれば、お気軽にお問い合わせください。

ホームページ:https://cc-arc.com/

メール:info@cc-arc.co.jp