(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-09
(45)【発行日】2024-02-20
(54)【発明の名称】双方向通信システムのためのサービスとしての機能クラウドチャットボット
(51)【国際特許分類】
H04L 67/141 20220101AFI20240213BHJP
【FI】
H04L67/141
(21)【出願番号】P 2022535626
(86)(22)【出願日】2020-12-11
(86)【国際出願番号】 US2020064532
(87)【国際公開番号】W WO2021119441
(87)【国際公開日】2021-06-17
【審査請求日】2022-07-29
(32)【優先日】2019-12-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】511094772
【氏名又は名称】ライブパーソン, インコーポレイテッド
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(74)【代理人】
【識別番号】100108855
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100179062
【氏名又は名称】井上 正
(74)【代理人】
【識別番号】100199565
【氏名又は名称】飯野 茂
(74)【代理人】
【識別番号】100212705
【氏名又は名称】矢頭 尚之
(74)【代理人】
【識別番号】100219542
【氏名又は名称】大宅 郁治
(74)【代理人】
【識別番号】100153051
【氏名又は名称】河野 直樹
(74)【代理人】
【識別番号】100162570
【氏名又は名称】金子 早苗
(72)【発明者】
【氏名】サム、クリスティアン
(72)【発明者】
【氏名】レイズ、ロバート
(72)【発明者】
【氏名】ギルクレスト、アラン
(72)【発明者】
【氏名】ロタール、アンドレアス
(72)【発明者】
【氏名】ペルチャー、サイモン
【審査官】鈴木 香苗
(56)【参考文献】
【文献】特表2019-537092(JP,A)
【文献】特表2019-518264(JP,A)
【文献】特開2018-073405(JP,A)
【文献】米国特許出願公開第2015/0082197(US,A1)
【文献】特表2020-520616(JP,A)
【文献】特表2021-501926(JP,A)
【文献】米国特許出願公開第2018/0107461(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 67/141
(57)【特許請求の範囲】
【請求項1】
システムを動作させる方法であって、
イベントに基づく応答を実行するように構成された
前記システム内のテンプレートにアクセスすることと、
ユーザデバイス
と前記システムとの双方向通信セッションを
始動することと、
前記テンプレートに対応するイベントトリガを識別するために前記双方向通信セッションのデータを処理することと、
前記イベントトリガに関連するサーバーレスクラウドベース機能の実行を要求することと、
前記イベントトリガに関連する前記サーバーレスクラウドベース機能の1つまたは複数の出力を前記双方向通信セッションに組み込むことと
を備える
、方法。
【請求項2】
前記双方向通信セッションの終了に基づいて前記サーバーレスクラウドベース機能の実行を終了すること
をさらに備える、請求項1に記載
の方法。
【請求項3】
前記サーバーレスクラウドベース機能に対応する機能終了トリガを識別するために前記双方向通信セッションのデータを処理することと、
前記機能終了トリガに基づいて前記サーバーレスクラウドベース機能を終了することとをさらに備える、請求項1に記載
の方法。
【請求項4】
前記サーバーレスクラウドベース機能を要求することが、前記サーバーレスクラウドベース機能に関連するコードを送信することを含み、ここにおいて、前記コードがサーバレスプロバイダにおいて受信されたとき、前記サーバレスプロバイダが、前記サーバーレスクラウドベース機能の前記1つまたは複数の出力を生成するために前記コードを実行する、請求項1に記載
の方法。
【請求項5】
前記イベントトリガに関連する前記サーバーレスクラウドベース機能を要求することは、
要求を送信すること、ここにおいて、前記要求がサービスとしての機能プラットフォームにおいて受信されたとき、前記サービスとしての機能プラットフォームが前記1つまたは複数の出力を生成する、
をさらに備える、請求項1に記載
の方法。
【請求項6】
前記テンプレートが、前記双方向通信セッションとエージェントに関連する端末デバイスとに関連するコンタクトセンター
に固有であるイベントに応答するためのデータを含む、請求項1に記載
の方法。
【請求項7】
クライアントシステムに関連する構成設定を受信することと、前記構成設定が、前記テンプレートを含む1つまたは複数のテンプレートと、前記1つまたは複数のテンプレートに対応する1つまたは複数のイベントトリガとを選択する、
前記1つまたは複数のテンプレートを、前記クライアントシステムに関連する双方向通信セッションに自動的に関連付けることと
をさらに備える、請求項1に記載
の方法。
【請求項8】
メモリと、
前記メモリに結合された1つまたは複数のプロセッサと
を備えるシステムであって、前記1つまたは複数のプロセッサが、
イベントに基づく応答を実行するように構成された
前記システム内のテンプレートにアクセスすることと、
ユーザデバイス
と前記システムとの双方向通信セッションを
始動することと、
前記テンプレートに対応するイベントトリガを識別するために前記双方向通信セッションのデータを処理することと、
前記イベントトリガに関連するサーバーレスクラウドベース機能の実行を要求することと、
前記イベントトリガに関連する前記サーバーレスクラウドベース機能の1つまたは複数の出力を前記双方向通信セッションに組み込むことと
を備える動作を実施するように構成された、システム。
【請求項9】
前記双方向通信セッションの終了に基づいて前記サーバーレスクラウドベース機能の実行を終了すること
をさらに備える、請求項
8に記載のシステム。
【請求項10】
前記サーバーレスクラウドベース機能に対応する機能終了トリガを識別するために前記双方向通信セッションのデータを処理することと、
前記機能終了トリガに基づいて前記サーバーレスクラウドベース機能を終了することとをさらに備える、請求項
8に記載のシステム。
【請求項11】
前記サーバーレスクラウドベース機能を要求することが、前記サーバーレスクラウドベース機能に関連するコードを送信することを含み、ここにおいて、前記コードがサーバレスプロバイダにおいて受信されたとき、前記サーバレスプロバイダが、前記サーバーレスクラウドベース機能の前記1つまたは複数の出力を生成するために前記コードを実行する、請求項
8に記載のシステム。
【請求項12】
前記イベントトリガに関連する前記サーバーレスクラウドベース機能を要求することは、
要求を送信すること、ここにおいて、前記要求がサービスとしての機能プラットフォームにおいて受信されたとき、前記サービスとしての機能プラットフォームが前記1つまたは複数の出力を生成する、
をさらに備える、請求項
8に記載のシステム。
【請求項13】
前記テンプレートが、前記双方向通信セッションとエージェントに関連する端末デバイスとに関連するコンタクトセンター
に固有であるイベントに応答するためのデータを含む、請求項
8に記載のシステム。
【請求項14】
クライアントシステムに関連する構成設定を受信することと、前記構成設定が、前記テンプレートを含む1つまたは複数のテンプレートと、前記1つまたは複数のテンプレートに対応する1つまたは複数のイベントトリガとを選択する、
前記1つまたは複数のテンプレートを、前記クライアントシステムに関連する双方向通信セッションに自動的に関連付けることと
をさらに備える、請求項
8に記載のシステム。
【請求項15】
デバイスの1つまたは複数のプロセッサによって実行されたとき、前記デバイスに、
イベントに基づく応答を実行するように構成された
前記デバイス内のテンプレートにアクセスすることと、
ユーザデバイス
と前記デバイスとの双方向通信セッションを
始動することと、
前記テンプレートに対応するイベントトリガを識別するために前記双方向通信セッションのデータを処理することと、
前記イベントトリガに関連するサーバーレスクラウドベース機能の実行を要求することと、
前記イベントトリガに関連する前記サーバーレスクラウドベース機能の1つまたは複数の出力を前記双方向通信セッションに組み込むことと
を備える動作を実施させる命令を備える、非一時的コンピュータ可読媒体。
【請求項16】
前記命令が、さらに、前記デバイスに、
前記双方向通信セッションの終了に基づいて前記サーバーレスクラウドベース機能の実行を終了すること
を備える動作を実施させる、請求項
15に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記命令が、さらに、前記デバイスに、
前記サーバーレスクラウドベース機能に対応する機能終了トリガを識別するために前記双方向通信セッションのデータを処理することと、
前記機能終了トリガに基づいて前記サーバーレスクラウドベース機能を終了することとを備える動作を実施させる、請求項
15に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記サーバーレスクラウドベース機能を要求することが、前記サーバーレスクラウドベース機能に関連するコードを送信することを含み、ここにおいて、前記コードがサーバレスプロバイダにおいて受信されたとき、前記サーバレスプロバイダが、前記サーバーレスクラウドベース機能の前記1つまたは複数の出力を生成するために前記コードを実行する、請求項
15に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001]本出願は、すべての目的のために、その開示全体が参照により本明細書に組み込まれる、2019年12月13日に出願された米国仮特許出願第62/948,038号の優先権の利益を主張する。
【0002】
[0002]本開示は、一般に、コールセンターを伴うものなど、双方向通信に関する。より詳細には、双方向通信セッションを促進するまたは改善するためのサーバレスクラウドベース機能を提供するための通信環境と統合されたサーバレスのサービスとしての機能(FaaS:function-as-a-service)プラットフォームを展開するための技法が提供される。
【背景技術】
【0003】
[0003]企業は、それらのブランド固有のニーズに合わせてサービスとしてのソフトウェア(SaaS:software-as-a-service)プラットフォームを調整する。SaaSプラットフォームは、一般に、カスタム特徴および拡張要求を生じ、それらの多くは、企業自体のバックエンドシステムとの統合に関係する。これらの特徴要求は、実装するのが複雑であり、国内でおよび国際的に調達するためにかなりの量の時間を必要とし、これにより、プロセス全体が、極めて費用がかかり、遅いものになり、それにより、顧客のニーズを適時に満たすことができない。
【0004】
[0004]その上、過去の環境は、コンタクトセンター産業のために特に設計されていない。過去の環境は、使用事例の特定のセットまたは特定の産業に対してアグノスティックである。既存の環境の主要な目標は、いくつかのプログラミング言語のための実行ランタイムを与えることである。たとえば、AMAZON Lambdaは、一意のユニフォームリソースロケータ(URL)によってJava(登録商標)Script機能の展開を可能にする。たとえば、URLをコールすることによって、URLから受信された機能が実行され、機能開発者は、実行時間の間、課金される。
【発明の概要】
【0005】
[0005]実施形態という用語および同様の用語は、本開示の主題と以下の特許請求の範囲とのすべてを広く指すことが意図される。これらの用語を含んでいる記述は、本明細書で説明される主題を限定せず、あるいは以下の特許請求の範囲の意味または範囲を限定しないと理解されたい。本明細書で包含される本開示の実施形態は、本発明の概要ではなく、以下の特許請求の範囲によって定義される。本発明の概要は、本開示の様々な態様の高レベルの概観であり、以下の発明を実施するための形態のセクションにおいてさらに説明される概念のうちのいくつかを紹介する。本発明の概要は、請求される主題の主要なまたは本質的な特徴を識別することが意図されず、請求される主題の範囲を決定するために独立して使用されることも意図されない。主題は、本開示の明細書全体、いずれかまたはすべての図面、および各請求項の適切な部分を参照することによって理解されたい。
【0006】
[0006]本明細書で説明される例は、「サーバレス」コンピューティングに関する。サーバレスコンピューティングは、クラウドプロバイダがサーバを稼働し、クラウドプロバイダのユーザが、そのユーザによって管理されるサーバなしに動作する、クラウドコンピューティング実行モデルである(たとえば、ユーザは、クラウドプロバイダのサーバに依拠することによってサーバレスである)。サーバレスコンピューティングは、クラウドプロバイダからの機械リソースの動的管理を可能にする。本明細書で説明される例は、双方向通信システムのための改善されたサーバレス動作を提供する。例は、動的に管理されるFaaSプラットフォームにおいてイベント管理とサーバレスコードテンプレートとを組み合わせることによって、双方向通信システムおよびそのようなシステム中のデバイスの動作を改善し、そのFaaSプラットフォームは、双方向通信セッションにおけるエージェントのためのリアルタイム自動化および機械支援を改善するためにアクセスされ得る。さらに、インターネットなどのワイドエリアネットワーク(WAN)上でユニフォームリソースロケータ(URL)をコールすることに明示的に基づくSaaSプラットフォームとは異なり、本明細書で説明される例は、双方向通信セッションにおけるイベントに対応することができるフレキシブルな呼出しを可能にし、双方向通信システムにおけるデバイスおよびネットワークの動作を改善する。
【0007】
[0007]たとえば、通信システムにおけるデバイスは、双方向通信におけるイベントを識別するために自然言語処理(NLP)を使用することができ、次いで、双方向通信を支援するためにFaaSシステムから機能をコールすることができる。異なるシステム実装形態が、機能の異なる意図グルーピングおよびカテゴリーを使用することができる。たとえば、ある機能が、医療に関係するユーザ質問に対処するために構成され得、別の機能が、ハードウェアデバイスのユーザサポートを提供するように構成され得る。そのようなシステムは、さらに、さらに特殊な機能を有し得る。医療システムのための通信システムは、「アポイントメントをスケジュールする」、「検査結果を得る」、および「処方薬を補充する」など、イベントトリガのための異なる関連する機能を有し得、デバイスサポートシステムは、「動作命令を得る」、「保証修理を要求する」、「技術者と話す」、または「トラブルシューティング支援を得る」など、代替カテゴリーのための機能を有することができる。これらのイベントの各々は、双方向通信セッションにおいてトリガテンプレートを使用して識別されたとき、クラウドベースFaaSシステムからサーバレス機能をコールするために使用され得る。そのようなサーバレスシステムの使用は、通信管理システムが、経時的に劇的に変動することがあるシステム負荷に基づいて動的にリソースを割り振ることを可能にする。さらに、FaaSシステムにおけるサーバレス機能テンプレートを構成することによって、インシステム更新を扱うのではなく、双方向通信システムが動作する間にクラウドベーステンプレートを更新することによって、FaaSクラウドにおいて利用可能な機能に対する更新が行われ、更新された機能が、準備ができているときに、クラウドを介してアクセスされることを可能にすることができる。
【0008】
[0008]本開示のいくつかの例は、コンピュータ実装方法を含む。本方法は、イベントに基づく応答を実行するように構成されたテンプレートにアクセスすることと、ユーザデバイスとの双方向通信セッションを促進することと、テンプレートに対応するイベントトリガを識別するために双方向通信セッションのデータを処理することとを含み得る。イベントトリガに関連するサーバレスクラウドベース機能の実行が要求され、イベントトリガに関連するサーバレスクラウドベース機能の1つまたは複数の出力が双方向通信セッションに組み込まれる。
【0009】
[0009]追加の例は、本明細書で説明されるシステム、デバイス、コンピュータ可読媒体、ならびに他の実装形態を含む。上記のことは、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照すると、より明らかになろう。
【0010】
[0010]本開示は、添付の図面に関連して説明される。
【図面の簡単な説明】
【0011】
【
図1A】[0011]本技術のいくつかの態様による、通信システムの例示的な実施形態を示す図。
【
図1B】[0012]本技術のいくつかの態様による、サービスとしての機能(FaaS)態様を含むサービスクラウドをもつ通信システムの例示的な実施形態を示す図。
【
図2】[0013]本技術のいくつかの態様による、通信システムの例示的な実施形態を示す図。
【
図3A】[0014]本技術のいくつかの態様による、接続管理システムを含む通信システムの例示的な実施形態を示す図。
【
図3B】本技術のいくつかの態様による、接続管理システムを含む通信システムの例示的な実施形態を示す図。
【
図3C】本技術のいくつかの態様による、接続管理システムを含む通信システムの例示的な実施形態を示す図。
【
図4】[0015]本技術のいくつかの態様による、接続構成要素の動作のプロトコルスタックマッピングの表現を示す図。
【
図5A】[0016]本技術のいくつかの態様による、通信システムの態様を示す図。
【
図5B】[0017]本技術のいくつかの態様による、通信システムの態様を示す図。
【
図6】[0018]本技術のいくつかの態様による、接続管理システムの例示的な実施形態を示す図。
【
図7】[0019]本技術のいくつかの態様による、FaaSボットテンプレートを展開する会話の態様を示す図。
【
図8】[0020]本技術のいくつかの態様による、FaaSシステムにおいて使用するための機能のプロパティおよび構成の一例を示す図。
【
図9】[0021]本技術のいくつかの態様による、コントローラボットの一例を示す図。
【
図10】[0022]本技術のいくつかの態様による、機能テンプレート作成の態様を示す図。
【
図11】[0023]本技術の態様による、機能テンプレートの編集および作成の一例を示す図。
【
図12】[0024]本技術の態様による、双方向通信の態様を示す図。
【
図13】[0025]本技術の態様による、機能展開および除去の態様を示す図。
【
図14】[0026]本技術のいくつかの態様による、方法実施形態のフローチャート。
【
図15】[0027]機械学習技法を使用して本明細書で説明される実施形態を拡張するためのネットワーク環境を表すブロック図。
【
図16】[0028]本技術のいくつかの実装形態による、意図駆動型(intent driven)通信システムの態様を実装するために使用され得る例示的なコンピューティングデバイスを示す図。
【発明を実施するための形態】
【0012】
[0029]添付の図では、同様の構成要素および/または特徴は、同じ参照ラベルを有することができる。さらに、同じタイプの様々な構成要素は、参照ラベルの後に、ダッシュと、それらの同様の構成要素同士を区別する第2のラベルとを続けることによって区別され得る。第1の参照ラベルのみが本明細書において使用される場合、説明は、第2の参照ラベルにかかわらず、同じ第1の参照ラベルを有する同様の構成要素のうちのいずれにも適用可能である。
【0013】
[0030]以下の説明は、例を与えるものであり、本開示の範囲、適用性または構成を限定するものではない。そうではなく、例の以下の説明は、例を実装することを可能にする説明を当業者に与える。添付の特許請求の範囲に記載された趣旨および範囲から逸脱することなく、様々な変更が、要素の機能と配置とにおいて行われ得ることを理解されたい。
【0014】
[0031]本明細書で説明される例は、双方向通信システムを介してユーザに情報を提供するように構成された通信システムに関する。そのような通信システムは、ユーザがエージェントによって情報を提供されることを可能にするために、ユーザをエージェントとペアリングするための接続管理システムを含むことができる。いくつかの例では、エージェントは、人工知能(AI)エージェントを伴う、人間のエージェント、機械分析駆動型システム、またはそのようなエージェントの任意の組合せであり得る。そのようなシステムは、たとえば、通信システムを分析し、改善するために、自然言語処理(NLP)、自然言語分析(NLA)、ニューラルネットワーク、ならびに様々なAIおよび機械学習ツールを使用することができる。
【0015】
[0032]本明細書で説明されるように、そのようなツールは、クラウドサービスから機能をコールするために使用され得るトリガのための双方向通信の態様を分析するために使用され得る。そのような機能は、本明細書で説明されるサービスとしての機能(FaaS)システムの一部として構造化され得る。上記で説明されたように、機能のためにサーバレスクラウドベースプロビジョニングシステムを使用することによって、双方向通信システムおよびそのようなシステム内のデバイスの動作が改善され得る。改善は、動的に管理されるFaaSプラットフォームにおける組み合わせられたイベント管理とサーバレスコードテンプレートとによる機能的改善を含むことができ、そのFaaSプラットフォームは、双方向通信セッションにおけるエージェントのためのリアルタイム自動化および機械支援を改善するためにアクセスされ得る。説明されるFaaS構造は、FaaSシステム動作中にリアルタイムで更新および変更され得る様々な機能を与えることと、個々の機能が、サーバレスクラウドプロビジョニングを使用してシステム動作中に動的におよびリアルタイムで更新されることを可能にすることの両方において、システムのための改善された動的プロビジョニングを可能にすることができる。さらに、インターネットなどのワイドエリアネットワーク(WAN)上でユニフォームリソースロケータ(URL)をコールすることに明示的に基づくSaaSプラットフォームとは異なり、本明細書で説明される例は、双方向通信セッションにおけるイベントに対応することができるフレキシブルな呼出しを可能にし、フレキシブルな通信オプションにより双方向通信システムにおけるデバイスおよびネットワークの動作を改善する。様々な態様は、詳細には、ユーザとエージェントとの間の増加された数の接続を管理するための接続管理システムと、増加された数の機械またはAIエージェント、あるいは、人間のエージェントのための機械ベース支援と、双方向通信を通して提供される改善された性能および情報品質とをもつ、通信システムにおいて使用され得る。
【0016】
[0033]
図1Aは、本明細書で説明されるいくつかの実施形態および特徴を実装およびサポートする通信システム100Aの一実施形態のブロック図を示す。特に、いくつかの実施形態は、(ユーザ110によって動作され得る)ユーザデバイス105と、(エージェント120によって動作され得る)端末デバイス115および/または(クライアント125によって動作され得る)クライアントデバイス130との間に接続を確立することに関する。接続管理システム150が、ユーザデバイス105を端末デバイス115とマッチさせることと、サービスクラウド180からコールされた機能へのアクセスを支援することの両方を行うのを支援することができる。
【0017】
[0034]いくつかの実施形態では、ユーザ110は、リモートサーバ140によって提供されるウェブサイトをブラウズしているかまたはオンラインサービスにアクセスしている個人であり得る。いくつかの実施形態では、ユーザ110は、自分のためにサービスが実施されることを期待している個人であり得る。そのようなサービスは、質問が答えられること、別のデバイスを動作させること、タスクまたはサービスに関してエージェントから助けを得ること、トランザクションを行うことなどを含むことができる。
【0018】
[0035]クライアント125は、ウェブサイトまたはオンラインサービスを提供するか、動作させるか、または稼働するエンティティであるか、あるいは本明細書で説明されるようにクライアント125にとって利用可能なタスクを実施するためにそのようなエンティティによって採用されたまたは割り当てられた個人であり得る。
【0019】
[0036]エージェント120は、ウェブサイトまたはオンラインサービスに関するサポートまたは情報(たとえば、オンラインストアにおいて入手可能な製品に関する情報)をユーザ110に提供するというタスクを与えられたサポートエージェントまたは販売担当者などの個人であり得る。多数のエージェントのうち、エージェントのサブセットが、特定のクライアント125にサポートまたは情報を提供するために適切であり得る。エージェント120は、クライアント125と提携することも、提携しないこともある。各エージェントは、1つまたは複数のクライアント125に関連付けられ得る。いくつかの非限定的な例では、ユーザ110は、パーソナルコンピューティングデバイスからオンラインストアで買物をしている個人であり得、クライアント125は、製品をオンラインで販売する企業であり得、エージェント120は、その企業によって採用された販売担当者であり得る。様々な実施形態では、ユーザ110、クライアント125、およびエージェント120は、他の個人またはエンティティであり得る。
【0020】
[0037]
図1Aは、単一のユーザデバイス105、端末デバイス115、およびクライアントデバイス130のみを示すが、通信システム100Aは、これらのタイプのデバイスのうちの1つまたは複数の各々のうちの複数または多数(たとえば、数十、数百または数千)を含むことができる。同様に、
図1Aは、単一のユーザ110、エージェント120およびクライアント125のみを示すが、通信システム100Aは、そのようなエンティティのうちの1つまたは複数の各々のうちの複数または多数を含むことができる。したがって、所与のネットワークデバイスと通信するために、どのエンドポイントが選択されるべきであるかを決定することが必要であり得る。さらに複雑なことには、リモートサーバ140も、ユーザデバイス105との通信を選択するために受信および応答するように構成され得る。
【0021】
[0038]接続管理システム150は、通信の戦略的ルーティングを促進することができる。通信は、(たとえば、タイピングされたまたは話された入力など、エンティティからの入力に基づいて定義された)コンテンツをもつメッセージを含むことができる。通信は、送信デバイスに関するデータ(たとえば、IPアドレス、アカウント識別子、デバイスタイプおよび/またはオペレーティングシステム)、宛先アドレス、クライアントの識別子、ウェブページもしくはウェブページ要素(たとえば、通信が生成されたときに訪問されているまたは他の方法で通信に関連付けられた、ウェブページまたはウェブページ要素)の識別子またはオンライン履歴データ、時間(たとえば、時刻および/または日付)、および/あるいは宛先アドレスなど、追加のデータをも含むことができる。他の情報が通信中に含まれ得る。いくつかの実施形態では、接続管理システム150は、通信全体を別のデバイスにルーティングする。いくつかの実施形態では、接続管理システム150は、(たとえば、初期通信に基づいて)通信を修正するかまたは新しい通信を生成する。新しいまたは修正された通信は、メッセージ(またはそれの処理されたバージョン)、(たとえば、送信デバイス、ウェブページまたはオンライン履歴および/もしくは時間に関する)追加のデータの少なくとも一部(またはすべて)、および/または接続管理システム150によって識別された他のデータ(たとえば、特定のアカウント識別子またはデバイスに関連するアカウントデータ)を含むことができる。新しいまたは修正された通信は、他の情報をも含むことができる。
【0022】
[0039]戦略的ルーティング促進の一部は、ユーザデバイス105と1つまたは複数の端末デバイス115との間の1つまたは複数の接続を確立、更新および使用することを含むことができる。たとえば、ユーザデバイス105から通信を受信すると、接続管理システム150は、通信が(もしあれば)どのクライアントに対応するかを推定することができる。クライアントを識別すると、接続管理システム150は、ユーザデバイス105との通信のためにクライアントに関連する端末デバイス115を識別することができる。いくつかの実施形態では、識別は、複数のエージェント(または専門家または代表)の各々のプロファイルを評価することを含むことができ、複数のエージェント中の各エージェント(たとえば、エージェント120)は、端末デバイス(たとえば、端末デバイス115)に関連付けられる。評価は、ネットワークデバイスメッセージ中のコンテンツに関係することができる。端末デバイス115の識別は、たとえば、すべての目的のために、その全体が参照により本明細書に組み込まれる、2010年3月17日に出願された、米国出願第12/725,799号において説明される技法を含むことができる。
【0023】
[0040]いくつかの実施形態では、接続管理システム150は、何らかの接続が、ユーザデバイス105と、クライアント(またはリモートサーバ140)に関連するエンドポイントとの間に確立されるかどうかと、そうである場合、そのようなチャネルが、その通信を含む一連の通信を交換するために使用されるべきであるかどうかとを決定することができる。
【0024】
[0041]ユーザデバイス105と通信するためのエンドポイントを選択すると、接続管理システム150は、ユーザデバイス105とエンドポイントとの間の接続を確立することができる。いくつかの実施形態では、接続管理システム150は、選択されたエンドポイントにメッセージを送信することができる。メッセージは、ユーザデバイス105と通信するための提案される割当ての受付けを要求するか、またはそのような割当てが生成されたことを識別し得る。メッセージは、ユーザデバイス105に関する情報(たとえば、IPアドレス、デバイスタイプ、および/またはオペレーティングシステム)、関連するユーザ110に関する情報(たとえば、話される言語、クライアントと対話した持続時間、スキルレベル、感情、および/またはトピック選好)、受信された通信、ユーザデバイス105への通信を生成および送信するためのコード(たとえば、クリック可能なハイパーリンク)、ならびに/またはユーザデバイス105への通信を生成および送信するための命令を含むことができる。
【0025】
[0042]いくつかの実施形態では、ユーザデバイス105とユーザデバイスなどのエンドポイントとの間の通信は、接続管理システム150を通してルーティングされ得る。そのような構成は、接続管理システム150が、通信交換を監視し、デバイスまたは拡張されたレイテンシのいずれかの非応答性などの(たとえば、ルールに基づいて定義された)問題を検出することを可能にすることができる。さらに、そのような構成は、たとえば、特定の通信後のターゲットを推進するために、通信交換の品質を査定し、および/またはルーティングルールを更新もしくは生成するための学習をサポートするために、後で使用され得る、通信の選択的なまたは完全な記憶を促進することができる。本明細書でさらに説明されるように、そのような構成は、ユーザ110と1つまたは複数のエンドポイントとの間の会話の管理を促進することができる。
【0026】
[0043]いくつかの実施形態では、接続管理システム150は、通信交換をリアルタイムで監視し、ライブ通信に基づいて、自動化されたアクション(たとえば、ルールベースのアクション、人工知能由来のアクション(artificial intelligence originated action)など)を実施することができる。たとえば、接続管理システム150が、通信が特定の製品に関係すると決定したとき、接続管理システム150は、製品に関する追加の情報(たとえば、在庫製品の量、製品に関係するサポート文書へのリンク、あるいは製品または同様の製品に関する他の情報)を含んでいる追加のメッセージをエンドポイントに自動的に送信することができる。
【0027】
[0044]いくつかの実施形態では、指定されたエンドポイントは、接続管理システム150を通して通信を中継することなしにユーザデバイス105と通信することができる。一方または両方のデバイス105、115は、通信監視および/またはデータ記憶を促進するために、特定の通信メトリックまたはコンテンツを接続管理システム150に報告することがある(または報告しないことがある)。
【0028】
[0045]接続管理システム150は、リモートサーバ140に選択通信をルーティングし得、サービスクラウド180の使用に加えて、所定の様式で情報を提供するように構成され得る。たとえば、サービスクラウド180によって提供される機能は、リモートサーバ140に関連する通信に応答して送信するために、定義された1つまたは複数のテキストパッセージ、音声記録および/またはファイルにアクセスし得る。そのような動作は、たとえば、受信された通信の分析(たとえば、セマンティックまたはマッピング分析)に基づいて、特定のテキストパッセージ、記録またはファイルを選択し得る。本明細書で説明される例は、(たとえば、ユーザデバイス105と端末デバイス115との間の)双方向通信を促進または拡張するために、リモートサーバ140と協働してサービスクラウド中のFaaSシステムの組合せを使用し得る。
【0029】
[0046]接続管理システム150において実施されるルーティングおよび/あるいは他の決定または処理は、1つまたは複数のクライアントデバイス130によって少なくとも部分的に定義または提供されたルールおよび/またはデータに基づいて実施され得る。たとえば、クライアントデバイス130は、エージェントの優先度付け、端末デバイスタイプ、および/またはトピック/スキルマッチングを識別する通信を送信し得る。別の例として、クライアントデバイス130は、ルーティング決定に潜在的に影響を及ぼす様々な変数(たとえば、言語適合性、予測される応答時間、デバイスタイプおよび能力、ならびに/または端末デバイス負荷分散)に適用されるべき1つまたは複数の重みを識別し得る。どの端末デバイスおよび/またはエージェントがクライアントに関連付けられるべきであるかは、動的であり得ることを諒解されよう。クライアントデバイス130および/または端末デバイス115からの通信は、所与の端末デバイスおよび/またはエージェントが、クライアントに関連するものとして追加または除去されるべきであることを示す情報を提供し得る。たとえば、クライアントデバイス130は、IPアドレスと、クライアントに関連する端末デバイスを識別するリストからそのアドレスをもつ端末デバイスが追加または除去されるべきであるかどうかに関する指示とを伴う通信を送信することができる。
【0030】
[0047](たとえば、デバイス間の、デバイスと接続管理システム150との間の、サービスクラウド180と接続管理システム150との間などの)各通信は、1つまたは複数のネットワーク170上で行われ得る。オープンまたはクローズドネットワークの任意の組合せが、1つまたは複数のネットワーク170中に含まれ得る。好適なネットワークの例は、インターネット、パーソナルエリアネットワーク、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、またはワイヤレスローカルエリアネットワーク(WLAN)を含む。他のネットワークも好適であり得る。1つまたは複数のネットワーク170は、イントラネット、エクストラネット、またはそれらの組合せ内に完全に組み込まれ得るか、あるいはイントラネット、エクストラネット、またはそれらの組合せを含むことができる。いくつかの実施形態では、1つまたは複数のネットワーク170中のネットワークは、Bluetooth(登録商標)またはBluetooth低エネルギーチャネルなどの短距離通信チャネルを含む。一実施形態では、2つまたはそれ以上のシステムおよび/またはデバイス間の通信は、セキュアソケットレイヤ(SSL)またはトランスポートレイヤセキュリティ(TLS)などのセキュア通信プロトコルによって達成され得る。加えて、データおよび/またはトランザクション詳細は、限定はしないが、データ暗号化規格(DES)、トリプルDES、リベスト-シャミア-エーデルマン暗号化(RSA)、ブローフィッシュ暗号化、高度暗号化規格(AES)、CAST-128、CAST-256、無相関化高速暗号(DFC:Decorrelated Fast Cipher)、小型暗号化アルゴリズム(TEA:Tiny Encryption Algorithm)、拡張TEA(XTEA)、補正ブロックTEA(XXTEA)、および/またはRC5など、任意の好都合な、知られている、または開発されるべき様式に基づいて暗号化され得る。
【0031】
[0048]ユーザデバイス105、端末デバイス115、および/またはクライアントデバイス130は、たとえば、ポータブル電子デバイス(たとえば、スマートフォン、タブレット、ラップトップコンピュータ、またはスマートウェアラブルデバイス)または非ポータブル電子デバイス(たとえば、1つまたは複数のデスクトップコンピュータ、スマートアプライアンス、サーバ、および/またはプロセッサ)を含むことができる。接続管理システム150は、ネットワーク、端末、IOTおよびクライアントデバイスとは別個に格納され得るか、または(たとえば、デバイスへのアプリケーションのインストールを介して)1つまたは複数のそのようなデバイスの一部であり得る。リモートサーバ140は、各デバイスおよび接続管理システム150とは別個に格納され得、ならびに/あるいは別のデバイスまたはシステムの一部であり得る。
図1A中の各デバイス、サーバおよびシステムは単一のデバイスとして示されているが、複数のデバイスが代わりに使用され得ることを諒解されよう。たとえば、ネットワークデバイスのセットが、単一のユーザからの様々な通信を送信するために使用され得るか、または、リモートサーバ140がサーバスタックを含み得る。
【0032】
[0049]ソフトウェアエージェントまたはアプリケーションが、図示されたデバイス、システムまたはサーバにインストールされ、および/またはそれらの上で実行可能であり得る。一事例では、ソフトウェアエージェントまたはアプリケーションは、様々な図示された要素が相補的様式で働くことができるように構成される。たとえば、デバイス上のソフトウェアエージェントは、デバイス使用に関するデータを収集し、別個の接続管理システムに送信するように構成され得、別個の接続管理システム上のソフトウェアアプリケーションは、そのデータを受信および処理するように構成され得る。
【0033】
[0050]異なる例では、ユーザデバイス105または端末デバイス115上で動作するソフトウェアエージェントまたはアプリケーションは、FaaSシステム動作の一部としてサービスクラウド180から機能をコールするために使用されるトリガを識別することができる。他の例では、接続管理システム150が、そのようなトリガを識別することができる。さらなる実施形態では、任意のそのようなトリガ識別の組合せが、異なる機能コールのために通信システム100Aまたは100B中のどこでも行われ得る。そのような機能コールの特定の詳細は、以下でより詳細に説明される。
【0034】
[0051]
図1Bは、本技術のいくつかの態様による、サービスとしての機能(FaaS)態様を含むサービスクラウドをもつ通信システム100Bの例示的な実施形態を示す。通信システム100Bは、
図1A中の通信システム100Aとして示されている通信システム100の代替態様を示す。
図1Bは、いくつかの例によれば、サービスクラウド180中のFaaSクラウド190としてのサービスとしての機能(FaaS)クラウドシステムのトポロジーの一例を示す。
図1Bに示されているように、いくつかの状況では、FaaSクラウド190システムは、改善された会話型商業設定のための機能191~196として実装される、イベントとサーバレスコードテンプレートとの組合せを利用することができる。
【0035】
[0052]サービスクラウド180システムは、ブランドおよび企業が、サービス(たとえば、サービス181、182、183、184、185、186)、および、本明細書で説明される例によれば、機能(たとえば、機能191、192、193、194、195、196)を伴って、それらの固有のビジネスニーズに合うように会話型商業プラットフォームを調整することを可能にすることができる、サーバレス環境であり得る。本明細書で説明されるサービスクラウド180内のFaaSクラウド190システムは、開発者に、会話型エクスペリエンスを革新し、迅速に拡張するために、開発者が必要とするツールを提供することができる。
【0036】
[0053]FaaSクラウド190プラットフォームは、クライアント125およびクライアントデバイス130によって表される顧客のために機能191~196(たとえば、コードスニペットまたはコードテンプレート)を実装することができる。機能191~196は、クライアント125が、機能をホストするためのクライアントサーバをセットアップする必要なしに、定義された機能内で実行され得る。FaaSクラウド190プラットフォームはまた、クラウドベースシステム(たとえば、サービスクラウド180)内でカスタムコードを展開および実行し、本明細書で説明される双方向通信システムの一部としてコアシステムに完全に組み込まれ得る。以下で説明される管理された通信システムの一部としてのFaaSクラウド190システムは、ボットリソース(たとえば、双方向通信システムにおける会話型エクスペリエンスを拡張することができる固有の会話型ライフサイクルイベントの組合せ)を更新または展開するための低減された時間およびリソースによる、効率的なデバイスプロビジョニングおよび更新、あるいは、通信システム中の他のそのような機能を、ことができる。
【0037】
[0054]
図2は、通信システム200の別の実施形態のブロック図を示す。概して、
図2は、ネットワークデバイス205が1つまたは複数の端末デバイス215と通信することを可能にするように構成および配置された様々な構成要素を示す。図示された事例は、3つのローカルエリアネットワーク235中に含まれる9つの端末デバイス215を含む。
【0038】
[0055]いくつかの実施形態では、ネットワークデバイス205からの通信は、どの端末デバイスが通信を受信するべきであるかを少なくとも部分的にまたは完全に示す宛先データ(たとえば、宛先IPアドレス)を含む。通信システム200は、宛先データを処理し、適切なルーティングを促進することができる、1つまたは複数のネットワーク間接続構成要素245および/または1つまたは複数のネットワーク内接続構成要素255を含むことができる。
【0039】
[0056]各ネットワーク間接続構成要素245は、複数のネットワーク235に接続され得、インストールされた複数のネットワークカード(たとえば、異なるネットワークに接続された各カード)を有することができる。たとえば、ネットワーク間接続構成要素245は、ワイドエリアネットワーク270(たとえば、インターネット)と、1つまたは複数のローカルエリアネットワーク235とに接続され得る。図示された事例では、通信がネットワークデバイス205から端末デバイスのうちのいずれかに送信されるために、図示されたシステム中で、通信は、複数のネットワーク間接続構成要素245によってハンドリングされなければならない。
【0040】
[0057]ネットワーク間接続構成要素245が、通信(または通信に対応するパケットのセット)を受信したとき、ネットワーク間接続構成要素245は、宛先に関連するネットワークに通信をパスするためのルートの少なくとも一部を決定することができる。ルートは、たとえば、あらかじめ定義されているか、(たとえば、別のルータからまたは別のデバイスからの)着信メッセージに基づいて生成されるか、または学習される、1つまたは複数のルートを含むことができる、(たとえば、ルータに記憶された)ルーティングテーブルを使用して決定され得る。
【0041】
[0058]ネットワーク間接続構成要素245の例は、ルータ260とゲートウェイ265とを含む。ネットワーク間接続構成要素245(たとえば、ゲートウェイ265)は、ネットワークシステムまたはプロトコル間でコンバートするように構成され得る。たとえば、ゲートウェイ265は、伝送制御プロトコル/インターネットプロトコル(TCP/IP)間およびネットワーク間パケット交換/逐次パケット交換(IPX/SPX:Internetwork Packet Exchange/Sequenced Packet Exchange)デバイス間の通信を促進し得る。
【0042】
[0059]ローカルエリアネットワーク235において通信を受信すると、さらなるルーティングが依然として実施される必要があり得る。そのようなネットワーク内ルーティングは、スイッチ280またはハブ285などのネットワーク内接続構成要素255を介して実施され得る。各ネットワーク内接続構成要素255は、(たとえば、ワイヤレスに、またはイーサネット(登録商標)ケーブルを介してなどワイヤードに)複数の端末デバイス215に接続され得る。ハブ285は、すべての受信された通信を、ハブ285が接続された各デバイスに再送するように構成され得る。各端末デバイスは、次いで、端末デバイスが宛先デバイスであるかどうか、または通信が無視されるべきであるかどうかを決定するために、各通信を評価することができる。スイッチ280は、通信を宛先端末デバイスのみに選択的にダイレクトするように構成され得る。
【0043】
[0060]いくつかの実施形態では、ローカルエリアネットワーク235は、複数のセグメントに分割され得、それらの各々は、独立したファイアウォール、セキュリティルールおよびネットワークプロトコルに関連付けられ得る。ネットワーク内接続構成要素255は、セグメント内ルーティングを促進するために、1つ、複数またはすべてのセグメントの各々の中に提供され得る。ブリッジ290は、セグメント275にわたって通信をルーティングするように構成され得る。
【0044】
[0061]ネットワークにわたってまたはネットワーク内で通信を適切にルーティングするために、様々な構成要素が、通信中の宛先データを分析する。たとえば、そのようなデータは、通信がどのネットワークにルーティングされるべきであるか、通信がネットワーク内のどのデバイスにルーティングされるべきであるか、または端末デバイスがどの通信を処理するべきであるか(反対に、無視するべきであるか)を示すことができる。しかしながら、いくつかの実施形態では、どの端末デバイス(また、さらにどのネットワーク)が、ネットワークデバイスからの通信に参加するべきであるかは、直ちに明らかでない。
【0045】
[0062]例示のために、端末デバイスのセットは、同様のタイプの応答通信を提供するように構成され得る。したがって、ネットワークデバイスからの通信中のクエリは、どのネットワークデバイスに通信がルーティングされるかにかかわらず、同様の様式で応答され得ることが予想され得る。この仮定は高レベルにおいて真であり得るが、端末デバイスに関係する様々な詳細は、他のものと比較して有利である特定のルーティングを生じることができる。たとえば、セット中の端末デバイスは、(たとえば)どの通信チャネルがサポートされるか、ネットワークデバイスへの地理的および/またはネットワーク近接度、ならびに/あるいは関連するエージェントの特性(たとえば、知識ベース、エクスペリエンス、話される言語、利用可能性、一般的なパーソナリティまたは感情など)に関して、互いに異なり得る。したがって、選択ルーティングは、ネットワークデバイス通信に対してより正確におよび/または完全に応答する、より高速な応答を促進し得る。厄介な問題は、ネットワークデバイスを端末デバイスにマッピングする静的ルーティングが、通信トピック、チャネルタイプ、エージェント利用可能性などの変動を考慮することに失敗し得ることである。
【0046】
[0063]
図3A、
図3B、
図3Cは、例示的な接続管理システム350Aおよび350Bを含む、接続管理システム350を含む通信システム300a、300b、300cの他の実施形態のブロック図を示す。図示されたシステム300a、300b、300cの各々は、簡単のために、2つのローカルエリアネットワーク235のみを示すが、実施形態は、ローカルエリアネットワークの数を増やすように拡張され得ることを諒解されよう。システム300a、300b、300cの各々は、どの端末デバイスがネットワークデバイス205と通信するべきであるかを識別することができ、接続を確立および管理する(たとえば、維持または閉鎖する)ことができ、交換において通信を再ルーティングすべきかどうか、およびいつ再ルーティングすべきかを決定することなどを行うことができる、接続管理システム150を含む。したがって、接続管理システム150は、ルーティング決定に影響を及ぼすために、通信、エージェント利用可能性、端末デバイスまたはエージェントの能力などを動的におよびリアルタイムで評価するように構成され得る。
【0047】
[0064]
図3Aでは、接続管理システム150は、ネットワークデバイス205およびリモートサーバ340の各々に関連付けられる(たとえば、接続管理システム150aは、ネットワークデバイス205に関連付けられ、接続管理システム150bは、リモートサーバ340に関連付けられる)。たとえば、接続管理システム150aおよび/または接続管理システム150bは、それぞれ、ネットワークデバイス205およびリモートサーバ340の各々の上にアプリケーションとしてインストールまたは記憶され得る。(1つまたは複数の)アプリケーションの実行は、たとえば、ネットワークデバイス205との通信交換に参加するために選択された端末デバイス215を識別するために、ネットワークデバイス205とリモートサーバ340との間の通信を促進することができる。識別は、本明細書で開示される1つまたは複数のファクタ(たとえば、利用可能性、通信のトピック/詳細のレベルとエージェントまたは端末デバイスの知識ベースとの間のマッチング、予測されるレイテンシ、チャネルタイプ利用可能性など)に基づいて行われ得る。
【0048】
[0065]クライアントデバイス330は、ルーティング決定がどのように行われるべきであるかを示すクライアントデータを提供することができる。たとえば、そのようなデータは、特定の特性がどのように重み付けまたはマッチされるべきであるかに関する指示、あるいは(たとえば、負荷分散または予測される応答レイテンシに関係する)制約またはバイアスを含むことができる。クライアントデータは、通信チャネルがいつ確立(または閉鎖)されるべきであるか、あるいは通信が異なるネットワークデバイスにいつ再ルーティングされるべきであるかに関係する仕様をも含むことができる。クライアントデータは、通信ルーティングについてのルールなど、様々なクライアント固有のルールを定義するために使用され得る。
【0049】
[0066]リモートサーバ340上で実行する接続管理システム150bは、どの通信チャネルがサポートされるか、ネットワークデバイスに対する地理的および/またはネットワーク近接度、端末デバイスとの通信レイテンシおよび/または安定性、端末デバイスのタイプ、端末デバイスの能力、端末デバイス(またはエージェント)が所与のネットワークデバイス(またはユーザ)と前に通信したかどうか、および/または関連するエージェントの特性(たとえば、知識ベース、エクスペリエンス、話される言語、利用可能性、一般的なパーソナリティまたは感情など)など、端末デバイスに関係する(たとえば、所与のクライアントに関係する)様々なメトリックを監視することができる。したがって、通信管理システム150bは、それらのメトリックに基づいて、ネットワークデバイス通信に対してより正確におよび/または完全に応答する、より高速の応答を促進するためのルーティングを選択することが可能にされ得る。
【0050】
[0067]
図3Aに図示された例では、ネットワークデバイス205とリモートサーバ340との間の通信交換は、宛先アドレスの早期識別を促進することができる。ネットワークデバイス205は、次いで、後続の通信をダイレクトするために宛先アドレスを使用し得る。たとえば、ネットワークデバイス205は、(たとえば、1つまたは複数のネットワーク間接続とワイドエリアネットワークとを介して)初期通信をリモートサーバ340に送り得、リモートサーバ340は、1つまたは複数の対応するクライアントを識別し得る。リモートサーバ340は、次いで、1つまたは複数の対応するクライアントに関連する端末デバイスのセットを識別し、それらの端末デバイスについてのメトリックを収集し得る。通信交換に関与すべき端末デバイスを選択し、端末デバイスに関係する情報(たとえば、IPアドレス)がネットワークデバイス205に送られ得るために、メトリックは、(たとえば、リモートサーバ340によって)評価され得る。いくつかの実施形態では、リモートサーバ340は、様々な端末デバイスについてのメトリックを連続的にまたは周期的に収集し、評価し、評価結果をデータストアに記憶し得る。そのような実施形態では、1つまたは複数の対応するクライアントに関連する端末デバイスのセットを識別すると、リモートサーバ340は、データストアからの記憶された評価結果にアクセスし、記憶された評価結果に基づいて、通信交換に関与すべき端末デバイスを選択することができる。
【0051】
[0068]
図3Bでは、接続管理システム150は、リレーおよび/または宛先アドレスとして働くように構成され得る。したがって、たとえば、ネットワークデバイス205のセットは、宛先として接続管理システム150を各々が識別する通信を送信し得る。接続管理システム150は、各通信を受信することができ、(たとえば、各端末デバイスについてのメトリックを生成するために)端末デバイスのセットを同時に監視することができる。監視とルールとに基づいて、接続管理システム150は、それが各通信を中継し得る端末デバイス215を識別することができる。実施形態によっては、端末デバイス通信が、さらなる中継のために(たとえば、接続管理システム150の)一貫した宛先に同様にダイレクトされ得るか、または、端末デバイスが、対応するネットワークデバイスと直接通信し始め得る。これらの実施形態は、効率的なルーティングと、徹底的な通信監視とを促進することができる。
【0052】
[0069]
図3Cに図示された実施形態は、
図3B中の実施形態と同様である。しかしながら、いくつかの実施形態では、接続管理システム150は、ネットワーク内構成要素(たとえば、端末デバイス、ネットワーク内接続など)に直接接続される。
【0053】
[0070]
図3A~
図3Cの多くの変形形態が企図されることを諒解されよう。たとえば、接続管理システム150は、接続管理システム150(またはそれの一部)に対応するアプリケーションが構成要素上にインストールされるように、接続構成要素(たとえば、ネットワーク間接続構成要素245またはネットワーク内接続構成要素255)に関連付けられ得る。アプリケーションは、たとえば、独立して、あるいは(たとえば、1つまたは複数の他の構成要素、ネットワークデバイスまたはリモートサーバ上で実行する)1つまたは複数の同様のまたは相補的アプリケーションと通信することによって実施し得る。
【0054】
[0071]
図4は、接続構成要素の動作のプロトコルスタックマッピング400の表現を示す。より詳細には、
図4は、様々な接続構成要素に対応するオープンシステム対話(OSI)モデル中の動作のレイヤを識別する。
【0055】
[0072]OSIモデルは、複数の論理レイヤ402~414を含むことができる。レイヤは、レイヤ402~412が各々上位レベルをサービスし、レイヤ404~414が各々下位レイヤによってサービスされるように、順序付きスタック中に配置される。OSIモデルは物理レイヤ402を含む。物理レイヤ402は、パラメータ物理通信(たとえば、電気的、光学的、または電磁的)を定義することができる。物理レイヤ402はまた、接続を確立および閉鎖するためのプロトコルなど、接続管理プロトコルを定義する。物理レイヤ402は、フロー制御プロトコルと送信モードとをさらに定義することができる。
【0056】
[0073]リンクレイヤ404は、ノード間通信を管理することができる。リンクレイヤ404は、エラー(たとえば、物理レイヤ402における送信エラー)を検出し、訂正し、アクセス許可を管理することができる。リンクレイヤ404は、媒体アクセス制御(MAC)レイヤと論理リンク制御(LLC)レイヤとを含むことができる。
【0057】
[0074]ネットワークレイヤ406は、(たとえば、データグラムとして)同じネットワーク中のノードにわたって(たとえば、可変長の)データを転送することを協調させることができる。ネットワークレイヤ406は、論理ネットワークアドレスを物理機械アドレスにコンバートすることができる。
【0058】
[0075]トランスポートレイヤ408は、送信および受信品質を管理することができる。トランスポートレイヤ408は、伝送制御プロトコル(TCP)など、データを転送するためのプロトコルを提供することができる。トランスポートレイヤ408は、送信のためのデータパケットのセグメント化/非セグメント化を実施することができ、レイヤ402、404、406において生じる送信エラーを検出および考慮することができる。セッションレイヤ410は、ローカルアプリケーションとリモートアプリケーションとの間の接続を始動、維持、および終了することができる。セッションは、リモートプロシージャ対話の一部として使用され得る。プレゼンテーションレイヤ412は、アプリケーションまたはネットワークレイヤによって受け付けられることが知られているデータタイプに基づいて、データを暗号化し、解読し、フォーマットすることができる。
【0059】
[0076]アプリケーションレイヤ414は、通信を制御または管理するソフトウェアアプリケーションと対話することができる。そのようなアプリケーションを介して、アプリケーションレイヤ414は、(たとえば)宛先、ローカルリソース状態または利用可能性、および/あるいは通信コンテンツまたはフォーマッティングを識別することができる。様々なレイヤ402、404、406、408、410、412、414は、利用可能および適用可能なとき、他の機能を実施することができる。
【0060】
[0077]ネットワーク内接続構成要素422、424は、物理レイヤ402およびリンクレイヤ404において動作するように示されている。より詳細には、動作が通信の受信および送信に関して制御され得るように、ハブが物理レイヤにおいて動作することができる。ハブは、通信に対処する能力またはデータをフィルタ処理する能力がないので、ハブは、上位レベルにおいて動作する能力を、ほとんどからまったく持たない。一方、スイッチは、それらがアドレス(たとえば、MACアドレス)に基づいて通信フレームをフィルタ処理することが可能であるので、リンクレイヤ404において動作することができる。
【0061】
[0078]一方、ネットワーク間接続構成要素426、428は、上位レベル(たとえば、レイヤ406、408、410、412、414)で動作するように示されている。たとえば、ルータが、アドレス(たとえば、IPアドレス)に基づいて通信データパケットをフィルタ処理することができる。ルータは、パケットを適切なネットワークにダイレクトするために、アドレスに基づいてパケットを特定のポートにフォワーディングすることができる。ゲートウェイが、ネットワークレイヤ以上において動作し、同様のフィルタ処理およびダイレクティング、ならびに(たとえば、プロトコルまたはアーキテクチャにわたる)データのさらなる変換を実施することができる。
【0062】
[0079]接続管理システム450が、様々な実施形態では、様々なレイヤのうちの1つ、複数、すべてまたはいずれかと対話し、および/あるいはそれらの上で動作することができる。たとえば、接続管理システム450は、ハブがどの端末デバイスと通信するかを動的に調節するために、ハブと対話することができる。別の例として、接続管理システム450は、構成要素が宛先(たとえば、MAC、論理または物理)アドレスとしてどの端末デバイスを選択するかに影響を及ぼすために、ブリッジ、スイッチ、ルータまたはゲートウェイと通信することができる。さらなる例として、接続管理システム450は、トランスポートレイヤ408上でのデータパケットのセグメント化、セッションレイヤ410上でのセッション持続時間、ならびに/あるいはプレゼンテーションレイヤ412上での暗号化および/または圧縮を監視、制御、またはダイレクトすることができる。いくつかの実施形態では、接続管理システム450は、特定のレイヤ上で動作する機器(たとえば、リンクレイヤ404上で動作するスイッチ)と通信を交換する(たとえば、それにコマンドを送る)ことによって、特定の様式で(たとえば、ネットワークデバイスと端末デバイスとの間の)既存の通信をルーティングまたは修正することによって、ならびに/あるいは既存の通信に基づいて特定の情報(たとえば、新しい宛先アドレス)を含んでいる新しい通信を生成することによって、様々なレイヤと対話することができる。したがって、接続管理システム450は、様々なデバイスとの対話を介して、および/または様々なプロトコルスタックレイヤにおける動作に影響を及ぼすことを介して、通信ルーティングおよびチャネル確立(または維持または終了)に影響を及ぼすことができる。
【0063】
[0080]
図5Aは、本技術のいくつかの態様による、通信システムの態様を示す。
図5Aは、ユーザデバイス105と、接続管理システム150と、クライアントデバイス130と、サービスクラウド180(ならびにサービスクラウド180内のFaaSクラウド190)との間の動作および通信を示す。
図5Aは、単一のクライアントデバイスについて本明細書で説明される例による、およびリストされた個々の要素による、FaaSクラウドを介して機能を呼び出し、使用するための動作および通信を示す。1つまたは複数の接続管理システムおよびサービスクラウド構造の任意の構造または組合せを使用して、任意の数のクライアントおよびユーザデバイスに同様の機能を提供するための、追加の例が使用され得る。
【0064】
[0081]
図5Aの例は、接続管理システム150とクライアントデバイス130とが、テンプレートおよびトリガを構成するための動作502のために通信503を交換することを示す。接続管理システム150は、次いで、FaaSシステムをプロビジョニングするための動作512の一部として通信513を交換する。そのような動作および通信は、システム中のテンプレートまたは機能にアクセスし、それらを更新するための、サービス品質、利用可能な動作、テンプレートおよびコマンドの構造化、あるいは本明細書で説明される任意の他のそのような動作を含むことができる。FaaSプロビジョニング動作512が完了した後に、サービスクラウド180は、本明細書で説明されるFaaSシステムの一部として、FaaS呼出し通信(たとえばFaaS要求動作528)を受け付け、機能出力を提供するか、または任意の他のそのようなトリガされたアクションを実施するように構成される。
図5Aは、クライアントデバイス130が接続管理システム150を介してサービスクラウド180中のFaaS機能を実装することについて説明する。他の例では、クライアントデバイス130は、クライアントビジネスが、直接、または任意の中間ステップを通して(たとえば、接続管理システム150または他のそのような中間システムを介して)のいずれかで、機能動作、または、通信システムを通してクライアントのサービスに影響を及ぼす機能の任意の態様を更新することを可能にするために、サービスクラウド180またはFaaSクラウド190のインターフェースと直接対話することができる。
【0065】
[0082]サービスクラウド180とのFaaSセットアップのプロビジョニングの完了に続いて、ユーザデバイス105は、接続管理システム150によって管理される双方向通信に関与する。双方向通信は、エージェントシステム(たとえば、端末デバイス115)、または接続管理システム150によって管理される任意の他のデバイスとのものであり得る。双方向通信は、双方向通信を始動するための動作522から始まり、(1つまたは複数の)通信523から始まる。双方向通信は、たとえば、ユーザが業者(merchant)(たとえば、クライアントデバイス130に関連する業者)のための販売ウェブサイト中の双方向通信インターフェースを選択したとき、ユーザデバイス105によって始動され得る。双方向通信は、たとえば、クライアントデバイス130を管理する業者に関連する販売リード(sales lead)を使用して自動接続要求を行うことによって、接続管理システム150によっても始動され得る。
【0066】
[0083]双方向通信システムは、次いで、始動当事者とターゲット当事者とが両方とも双方向通信セッションに同意した場合、通信セッションの動作524および526と、関連する通信527とを進める。通信セッション動作526中のある時点において、動作528は、動作528においてトリガを識別する。トリガは、ユーザデバイス105においてまたは接続管理システム150において識別され得る。トリガは、動作502および512においてサービスクラウド180において構成およびプロビジョニングされたトリガである。トリガが識別されると、関連する機能が、FaaS要求動作530を使用して呼び出され、FaaS要求動作530は、通信531における要求の通信を含む。サービスクラウド180内のFaaSクラウドは、要求を受信し、動作532において、関連する機能を実行する。本明細書で説明されるように、実行される機能は、通信531の一部としての要求により送られ得るか、または前に提供された機能を識別する通信531によりサービスクラウド180中の識別子で前に構造化され得るかのいずれかである。
【0067】
[0084]機能の詳細がどのように提供されるかにかかわらず、動作534においてサービスクラウド180から機能出力が生成される。動作534からの機能出力データは、通信535において接続管理システム150に送られ、動作536においてFaaS出力データとして管理される。そのような情報は、トリガに関連する応答に関する詳細、自動ツールデータ、または、双方向通信のために構成され、所与のトリガに関連する、任意の他のそのような情報を含むことができる。動作536において受信されたデータは、動作538において通信541により双方向通信セッションに組み込まれ、通信セッションの態様を促進するために使用される。促進は、情報を提供すること、機械インターフェースツールを提供すること、双方向通信の一方の側をより適切な相手当事者(たとえば、異なるクライアント、またはクライアントのための異なるカスタマイズされたボット)に転送するのを支援すること、または、通信システムとのユーザエクスペリエンスおよびインターフェースを改善するための、本明細書で説明される任意の他のそのような促進を含むことができる。トリガと出力データ応答とは、双方向通信内で任意の回数繰り返され得る。さらに、通信システムは、多数のユーザデバイスと端末との間の(たとえば、ユーザとエージェントとの間の)多くの双方向通信を含むことができ、各セッションは、トリガの異なるセットをもつ異なるクライアント(たとえば、業者サービスプロバイダ)システムのためにカスタマイズされたトリガを使用する。
【0068】
[0085]
図5Bは、本技術のいくつかの態様による、通信システムの態様を示す。
図5Bは、FaaSサービスが(たとえば、クライアントデバイス130によって)前に構成されており、端末デバイス115が、接続管理システム150とサービスクラウド180(ならびにFaaSクラウド190)とを含む双方向通信システムを使用する、ユーザデバイス105との双方向通信の呼出しおよび関連する促進に関与するものとして示されている、
図5Aの場合と同じシステムのための動作の追加の例を示す。
【0069】
[0086]
図5Bは、接続管理システムによって管理される、ユーザデバイス105と端末デバイス115との間の双方向通信を示す。双方向通信セッションは、ユーザデバイス105と端末デバイス115との間の通信セッションを確立する、動作552および通信553から始まる。セッション始動のときに、双方向通信はまた、セッションが始まる前にプロビジョニングされた、特定のクライアントに関連するトリガおよび機能のカスタムセットに関連付けられ得る。トリガの特定のセットは、セッションが、クライアント(たとえば、業者)ウェブサイトを通して、または特定のクライアントのためのおよびクライアントのトリガの特殊なセットを伴う、接続管理システム150により始動された販売リードの一部として始動されたときに、識別され得る。
【0070】
[0087]通信セッションが、確立され、動作554において通信557を介して進むと、接続管理システム150は、トリガに関連付けられた、動作556における通信セッションの詳細を識別する。本明細書で説明されるように、トリガは、(たとえば、
図7、および以下の関連する説明によって示されるように)双方向通信セッション中のテキストからのものであるか、またはシステムの他のそのような動作によるものであり得る。たとえば、いくつかの実装形態では、特定の業者に関連する接続始動が、ユーザデバイス105と任意の端末デバイス115との間の通信が行われる前に、1つまたは複数の機能をトリガすることができる。
図5Bの例では、機能は、通信559において送られたFaaS要求動作558により呼び出される。サービスクラウド180は、次いで、動作560において機能を実行し始め、動作560は、通信559および561において送られるデータおよび機能出力の任意の数の追加のセットを伴って、双方向通信セッションによりリアルタイムで実行されるように進むことができる。接続管理システム150は、動作562において出力を受信し、動作564において出力に基づいてアクションをとり、これは、動作566および/または554の一部として通信セッションを促進する通信565を生じることができる。たとえば、動作556におけるトリガは、特定の特殊なトピックのために自然言語処理を実施することと、特定のトピックまたは業者カテゴリーのためにカスタマイズされた、ユーザ入力に対する応答を与えることと行うように構成された、特殊な支援機械(たとえば、ボット)を呼び出すことができる。ボットは、双方向通信セッションが動作570ならびに通信571および573において終了されるまで、特定の双方向通信のためのボットにプロビジョニングされたクラウドリソースにより、サービスクラウド180を介してリアルタイムで実行され得る。通信セッションが終了されたとき、接続管理システム150は、動作572において機能の実行を終えるように通信573においてサービスクラウド180にシグナリングするために、動作572を実施する。上記のボット例では、カスタマイズされたトピックのためのリアルタイムの特殊な自然言語処理を提供するためにプロビジョニングされたリソースが終了されることになる。それらのリソースは、次いで、他の動作のために利用可能であるようにクラウドリソースのプールに返され得る。同じボットを使用する将来の通信が、サービスクラウド180中のボット機能の新しいインスタンスを呼び出し、リソースが、新しいインスタンスのために提供されることになる。
【0071】
[0088]
図6は、接続管理システム600の一実施形態のブロック図を示す。接続管理システム600は、いくつかの例では、接続管理システム150または任意の他のそのような接続管理システムとして使用され得る。メッセージ受信機インターフェース605は、メッセージを受信することができる。いくつかの実施形態では、メッセージは、たとえば、ネットワークデバイスまたはエンドポイントなど、(たとえば、接続管理システム150とは別個に、または同じハウジング内に格納された)ソースデバイスによって送信される通信の一部として受信され得る。いくつかの実施形態では、通信は、2つのデバイス(たとえば、ネットワークデバイスおよびエンドポイント)間でルーティングされる一連のメッセージまたは通信交換を含むことができる、一連の通信または通信交換の一部であり得る。このメッセージまたは通信交換は、デバイス間の対話の一部であり得、および/またはそれを定義し得る。通信チャネルまたは動作可能なチャネルは、デバイス間のルーティングと通信交換とを促進するために使用される1つまたは複数のプロトコル(たとえば、ルーティングプロトコル、タスク割当てプロトコルおよび/またはアドレス指定プロトコル)を含むことができる。
【0072】
[0089]いくつかの実施形態では、メッセージは、ユーザインターフェースにおいて受信された入力に基づいて生成されるメッセージを含むことができる。たとえば、メッセージは、ボタンまたはキー押下、あるいは記録されたスピーチ信号、あるいはスピーチテキスト化(speech to text)ソフトウェアに基づいて生成された、メッセージを含むことができる。一事例では、メッセージは、ネットワークデバイスが特定のアプリページまたはウェブページを提示しているかあるいは特定の入力コマンド(たとえば、キーシーケンス)を提供したことを検出すると生成されるものなど、自動的に生成されるメッセージを含む。メッセージは、通信交換を始動するためのものなど、命令または要求を含むことができる。
【0073】
[0090]いくつかの実施形態では、メッセージは、話されるのかタイピングされるのかにかかわらず、自然言語通信であり得る。本明細書で使用される自然言語通信は、人間の間で通信するために使用される言語の通常の使用を指し、固有の仮想アシスタントまたは人工知能ツールと通信するために必要とされるプロトコルによって定義される言語の使用と対比される。自然言語通信は、通信が人工知能にアドレス指定されることを人工知能ツールにアラートするための起動ワードの使用など、制約を必要とするべきでない。さらに、自然言語通信は、通信をどのようにサービスすべきかを理解するために、ユーザが、特定のキーワードを識別するか、固有のフレーズを識別するか、またはサービスを明示的に指名することを必要とするべきでない。いくつかの実施形態では、自然言語は、エモーティコンと、現代の通信の他の形態とを含み得る。
【0074】
[0091]本技術は、自然言語通信を利用するが、通信は、特定のキーワードを識別するか、固有のフレーズを識別するか、またはサービスを明示的に指名することができる。たとえば、メッセージは、クライアントの識別子を含むか、またはそれに関連付けられ得る。たとえば、メッセージは、クライアント(またはクライアントに関連するデバイス)を明示的に識別することができるか、メッセージは、クライアントに関連するウェブページまたはアプリを含むかまたはそれに関連付けられ得るか、メッセージは、クライアントに関連する宛先アドレスを含むかまたはそれに関連付けられ得るか、あるいはメッセージは、クライアントに関連する(たとえば、クライアントによって販売の申し出をされている、クライアントによって販売された、またはクライアントがサービスするものである)アイテム(たとえば、製品)またはサービスの識別情報を含むかまたはそれに関連付けられ得る。例示のために、ネットワークデバイスは、エージェントに通信を送信するためのオプションを与え得る、特定のクライアントのアプリページを提示していることがある。メッセージに対応するユーザ入力を受信すると、通信は、メッセージと特定のクライアントの識別子とを含むように生成され得る。
【0075】
[0092]処理エンジン610は、受信された通信および/またはメッセージを処理し得る。処理は、たとえば、1つまたは複数の特定のデータ要素(たとえば、メッセージ、クライアント識別子、ネットワークデバイス識別子、アカウント識別子など)を抽出することを含むことができる。処理は、(たとえば、特定のデバイスタイプ、オペレーティングシステム、通信チャネルタイプ、プロトコルおよび/またはネットワークに適合するように)フォーマッティングまたは通信タイプを変換することを含むことができる。
【0076】
[0093]テンプレート選択エンジン614は、通信システム中で使用されるべきトリガテンプレートまたは機能テンプレートを識別または修正するために、クライアントデバイスまたはシステムオペレータによって使用され得る。処理エンジン610は、テンプレート選択エンジン614を使用して選択されたテンプレートでシステムを構成するためにテンプレート選択エンジンと協働することができる。処理は、双方向通信セッションの一部として機能トリガについて検査するときの使用のために、接続管理システム、端末デバイス、またはユーザデバイスに、選択されたテンプレートをプッシュすることを含むことができる。そのプロセスは、任意のそのようなデバイスに機能をプッシュすることをも含むことができるか、または、機能がクラウドシステムに記憶された場合、機能はクラウドにプッシュされ、(たとえば、端末デバイスなどのトリガリングデバイスが、呼出し通信がFaaSクラウドに送られるときに使用されるべき機能を識別することを可能にするために)識別子がトリガリングデバイスにプッシュされる。
【0077】
[0094]トリガ管理エンジン615は、(たとえば、抽出または受信された)メッセージを査定し得る。このメッセージは、インターフェース605によって受信されたメッセージを管理する、メッセージデータストア620からアクセスされ、トリガ管理エンジン615によって査定され得る。査定は、たとえば、メッセージのための1つまたは複数のトリガを識別することを含むことができる。トリガの例は、(たとえば)特定のトピック、感情、複雑さ、および緊急度を示す、テキストを含むことができる。トピックは、限定はしないが、件名、製品、サービス、技術的問題、使用の質問、苦情、払い戻し要求または購入要求などを含むことができる。いくつかの例では、トリガは、たとえば、(たとえば、キーワード、文構造、繰り返されるワード、句読文字および/または非冠詞ワードを識別することによる)メッセージのセマンティック分析、(たとえば、選択された1つまたは複数のカテゴリーを有する)ユーザ入力、および/またはメッセージ関連の統計(たとえば、タイピングスピードおよび/または応答レイテンシ)に基づいて決定され得る。トリガ管理エンジン615の態様は、ユーザからの着信通信(たとえばテキスト)を意図カテゴリーに関連付けるためのシステムを生成および改訂するために機械学習を使用することができる。たとえば、機械学習モデルは、ワードと意図カテゴリーとの間の関連付けを生成および更新するために、着信通信中のワードおよびフレーズ間の関連付けの前のデータおよび結果、ならびに現在の通信および履歴通信からの自然言語データを使用することができる。学習は、構築されたデータセットと履歴データとを用いた教師あり学習、システム中の現在のルーティング経路とシステム使用ターゲットとのための期待値または予測モデルに基づく教師なし学習の、任意の組合せで行われ得る。いかなるそのようなデータも、自然言語データを生成するためにまたは機械学習モデルを更新するために、自然言語処理(たとえば、自然言語理解、自然言語推論など)のための動作において使用され得る。そのようなデータは、次いで、動的メッセージ処理を改善するために(たとえば、改善された意図インジケータデータ結果または応答メッセージ生成)、クライアントシステムによって使用されるか、あるいはネットワークデバイス上でまたはサーバ上で実行するアプリケーションと共有され得る。いくつかの例では、畳み込みニューラルネットワークが、出力意図カテゴリーと一緒に着信ワードおよびフレーズのセットとともに使用され得る。そのようなニューラルネットワークは、入力ワードおよびフレーズによりトレーニングされ、意図カテゴリーとの相関を出力することができる。リアルタイムシステム動作は、次いで、着信ユーザ通信と、ユーザ通信中のワードと、システム中の意図カテゴリーとの間の関連付けに関するデータを生成するために、そのようなニューラルネットワークのインスタンスを使用することができる。そのようなニューラルネットワークの出力に基づいて、意図カテゴリーが、通信に関与するユーザまたはユーザアカウントに割り当てられ得、関連するアクションが割り当てられ得る。いくつかの実装形態では、ニューラルネットワーク設定は、ユーザ通信中のワードと、これらのワードに基づいて選択された意図カテゴリーおよびアクションとの間の関連付けをシフトするために、使用からのリアルタイム動的フィードバックにより修正され得る。これらの選択は確率的であり得、したがって、AIおよび機械学習システムは、システム性能を改善するために、ユーザフィードバックと使用データとを組み合わせることによってユーザの期待のシフトを自動的に追跡することができる。たとえば、ユーザが特定の意図カテゴリーまたはサブカテゴリーのためのエンドポイントアクションにダイレクトされたとき、ユーザは、ユーザが異なるアクションを探していることを示すフィードバック通信を提供することができる。これは、将来の意図カテゴリー割当てに関連する確率およびアノテーションをシフトするために、システムにおいてリアルタイムフィードバックとして使用され得る。
【0078】
[0095]いくつかの実施形態では、トリガは、質問を明瞭にすることまたは単に追加情報を要求することを含むことができる会話にユーザ110を関与させることによってユーザ意図を明瞭にするために使用される機能を呼び出すことができる。そのような機能は、機能を双方向通信の意図とマッチさせるために、特に、呼び出される機能のための、および関連する詳細に基づいて特殊な、追加のトリガを関連付けていることがある。そのような例は、したがって、条件付きトリガを含むことができ、したがって、呼び出される機能は、機能動作の一部としてのみアクティブである条件付きトリガに関連付けられ得、機能が(たとえば、双方向通信をルーティングすることによって)終了したとき、関連するトリガはもはやアクティブでない。まさに上記のように、様々な機械学習およびAIシステムが、ユーザに応答するためのシステムを生成および更新するために使用され得る。たとえば、いくつかのシステムでは、各意図カテゴリーおよびサブカテゴリーは、異なる関連する畳み込みニューラルネットワークを有することができる。いくつかの例では、ユーザからのワードを処理したことに応答してとられるアクションは、意図カテゴリーおよび意図カテゴリーのためのニューラルネットワークをユーザとの通信に関連付けること、ならびに割り当てられたニューラルネットワークを使用してユーザ通信を処理することである。本明細書で説明されるように、複数の異なるニューラルネットワークが会話の過程において使用され得(たとえば、ユーザとシステムとの間の複数の往復通信)、そのような通信についてのデータが、ユーザとの将来の対話のために使用されるニューラルネットワークまたは他のシステムを更新するための機械学習動作と、意図カテゴリーおよびアクションをユーザ通信からのワードに関連付けるための動作とにおいて使用され得る。ユーザによる使用データは、意図カテゴリー割当てを改善するためにニューラルネットワークにおける重みを調節することと、ユーザ意図傾向の変化(たとえば、初期ユーザ通信に基づく割り当てられた意図と比較した、システムとのユーザ会話の終わりに識別された最終のユーザ意図結果)を追跡することとを行うために使用され得る。意図管理エンジン615によって生成されたデータは、関連するメッセージデータとともにメッセージデータストア620に記憶され得、このデータは、本明細書で説明されるように、システムに対する連続リアルタイム分析更新または他の動的フィードバックおよび修正のためのデータを管理することを含む、様々な更新のために使用され得る。
【0079】
[0096]対話管理エンジン625は、通信がどのエンドポイントにルーティングされるべきであるかと、受信デバイスおよび送信デバイスがどのように通信するべきであるかとを決定することができる。これらの決定の各々は、たとえば、特定のネットワークデバイス(または特定のユーザに関連する任意のネットワークデバイス)が前にエンドポイントのセット中のエンドポイント(たとえば、接続管理システム150に関連する任意のエンドポイント、または1つまたは複数の特定のクライアントに関連する任意のエンドポイント)と通信したかどうかに依存することができる。いくつかの例では、対話管理エンジン625は、ユーザ通信に割り当てられた意図、トリガ、または機能カテゴリーに基づいて、ユーザ通信を異なるエンドポイントにルーティングするためのアクションとして呼び出され、特定のトリガを双方向通信セッションのサブ部分に関連付けるために使用される(たとえば、ここで、いくつかのトリガが、セッションの部分に適用されるが、他の部分には適用されない)。そのような例は、エンドポイントが達成されるまで、セッションに関連するトリガのみによる、ユーザとの会話中に使用されているエンドポイント(たとえば特定のエージェントまたはAIボットリソース)に対する更新を伴うことができる。
【0080】
[0097]いくつかの実施形態では、ネットワークデバイス(あるいは同じユーザまたはアカウントに関連する他のネットワークデバイス)が、前に所与のエンドポイントと通信したとき(たとえば、特定のトピックまたはシステムクライアントまたはビジネスに関係する事柄に関する、特定のエージェントまたはAIシステムとの通信)、通信ルーティングは、概して、同じエンドポイントのほうへバイアスされ得る。ルーティングに影響を及ぼし得る他のファクタは、たとえば、前の通信に関係する、推論または識別されたユーザまたはエージェントの感情、現在の通信のトピック(たとえば、および、それが、1つまたは複数のエンドポイントとの前の通信ならびに/またはそれらのエンドポイントに関連する知識ベースに関係する程度)、エンドポイントが利用可能であるかどうか、および/あるいはエンドポイントの予測された応答レイテンシを含むことができる。そのようなファクタは、他のエンドポイントに対応する同様のメトリックに対して絶対的または相対的に考慮され得る。再ルーティングルール(たとえば、クライアント固有のまたは一般的なルール)は、エージェント一貫性を控えるべきかどうかを決定するために、そのようなファクタがどのように査定され、重み付けされるべきであるかを示すことができる。意図カテゴリー割当てについてまさに上記のように、AI分析は、システムにおける再ルーティングルールを決定するために使用され得る。たとえば、機械学習システムによって処理された履歴データがいくつかのタイプのユーザ通信といくつかの再ルーティング動作との間の相関を識別しないとき、そのような再ルーティング動作は中止され得る。対照的に、そのような機械学習分析が再ルーティングルールと相関する肯定的結果を識別したとき、そのようなルールは、再ルーティングを優先するために強調または強化され得る(たとえば、追加のシステムを再ルーティングに専用すること、エージェント割当てにおいて再ルーティングオプションを優先することなど)。いくつかの例では、トリガは、上記で説明されたように、機械学習システムによる成功したエンドポイントルーティングに関連するものとしてフラグを付けられるか、または識別され得る。
【0081】
[0098]どのようにデバイスが通信するべきであるかを決定することに関して、対話管理エンジン625は、(たとえば)エンドポイントが(たとえば)電子メール、オンラインチャット、SMSメッセージ、音声コール、ビデオチャットなどを介して通信に応答するべきであるかどうかを決定することができる。通信タイプは、たとえば、(たとえば、クライアントまたはユーザによって少なくとも部分的に定義された)通信タイプ優先度リスト、(たとえば、一貫性を推進するための)ネットワークデバイスから前に受信された通信のタイプ、受信されたメッセージの複雑さ、ネットワークデバイスの能力、および/または1つまたは複数のエンドポイントの利用可能性に基づいて選択され得る。明らかに、いくつかの通信タイプは、(たとえば、高速メッセージ応答が予想される)リアルタイム通信を生じることになるが、他のものは、(たとえば、メッセージ間の(たとえば、数分または数時間の)遅延が許容できる)非同期通信を生じることができる。
【0082】
[0099]いくつかの実装形態では、通信タイプは、テキストメッセージングまたはチャットアプリケーションであり得る。これらの通信技術は、ユーザのネットワークデバイス上で新しいソフトウェアがダウンロードされ、実行される必要がないという利益を与える。いくつかの例では、通信タイプは音声通信タイプであり得る。そのような例では、音声テキスト化(voice to text)システムが、音声通信を処理して、本明細書で説明される例示的なシステムによって分析されるべきワードにするために使用され得る。いくつかの例では、システムによって分析されるワードは、オーディオデータによって表されるワードを含むことができる。したがって、本明細書で説明されるように、ワードは、メモリに記憶されたシンボル(たとえば情報交換用米国標準コード(ASCII)データ)の組合せによって表され得るか、またはオーディオデータ(たとえば、音の組合せを表すデータ)によって表され得る。
【0083】
[00100]対話管理エンジン625は、様々なコンテキストにおいてアカウントエンジン630と対話することができる。たとえば、アカウントエンジン630は、ネットワークデバイスまたはエンドポイントに対応するアカウントを識別するために、アカウントデータストア635中でそのデバイスの識別子をルックアップし得る。さらに、アカウントエンジン630は、前の通信交換(たとえば、時間、(1つまたは複数の)関与する他のデバイス、チャネルタイプ、解決段階、(1つまたは複数の)トピック、および/または関連するクライアント識別子)、(たとえば、1つまたは複数のクライアントの各々について、チャネルが存在するかどうか、各チャネルに関連するエンドポイント、確立時間、使用頻度、最後の使用の日付、チャネル制約および/または通信のサポートされるタイプを示す)通信チャネル、(たとえば、端末デバイス選択、応答レイテンシ、端末デバイス一貫性、エージェント専門知識、および/あるいは通信タイプ選好または制約に関する)ユーザまたはエージェント選好または制約、ならびに/あるいはユーザまたはエージェント特性(たとえば、年齢、話されるまたは選好される(1つまたは複数の)言語、地理的ロケーション、関心など)に関するデータを維持することができる。
【0084】
[00101]さらに、対話管理エンジン625は、アカウントデータストア635が現在のチャネルデータを反映するように更新され得るように、アカウントエンジン630に様々な接続チャネルアクションについてアラートすることができる。たとえば、チャネルを確立すると、対話管理エンジン625は、その確立をアカウントエンジン630に通知し、ネットワークデバイス、エンドポイント、アカウント、およびクライアントのうちの1つまたは複数を識別することができる。アカウントエンジン630は、その後、ユーザが、エージェント一貫性が役立っていることに気づいていることがあるように、チャネルの存在をユーザに通知することができる。
【0085】
[00102]対話管理エンジン625は、さらに、通信を1つまたは複数のクライアント(および/または関連するブランド)にマッピングすることができる、クライアントマッピングエンジン640と対話することができる。いくつかの実施形態では、ネットワークデバイス自体から受信される通信は、クライアントに対応する識別子(たとえば、クライアント、製品、サービス、ウェブページ、またはアプリページの識別子)を含む。識別子は、(たとえば、クライアントマッピングエンジン640が検出し得る)メッセージの一部として含まれるか、またはメッセージを包含している通信中の他のデータとして含まれ得る。クライアントマッピングエンジン640は、次いで、クライアントおよび/またはクライアントの識別子に関する追加のデータを取り出すために、クライアントデータストア645中の識別子をルックアップし得る。
【0086】
[00103]いくつかの実施形態では、メッセージは、どんなクライアントにも特に対応しないことがある。たとえば、メッセージは、一般的なクエリを含み得る。クライアントマッピングエンジン640は、たとえば、メッセージに対してセマンティック分析を実施し、1つまたは複数のキーワードを識別し、(1つまたは複数の)キーワードに関連する1つまたは複数のクライアントを識別し得る。いくつかの実施形態では、単一のクライアントが識別される。いくつかの実施形態では、複数のクライアントが識別される。各クライアントの識別情報は、次いで、ユーザが(たとえば、関連するエンドポイントを介して)通信すべきクライアントを選択することができるように、ネットワークデバイスを介して提示され得る。
【0087】
[00104]クライアントデータストア645は、クライアントに関連する1つまたは複数のエンドポイント(および/またはエージェント)の識別情報を含むことができる。端末ルーティングエンジン650は、ルーティング決定に影響を及ぼすために、1つ、複数またはすべてのそのようなエンドポイント(および/またはエージェント)の各々に関係するデータを取り出すかまたは収集することができる。たとえば、端末ルーティングエンジン650は、エンドポイントのデバイスタイプ、オペレーティングシステム、通信タイプ能力、インストールされたアプリケーションアクセサリー、地理的ロケーションおよび/または識別子(たとえば、IPアドレス)などの情報を記憶することができる、エンドポイントデータストア655を維持し得る。情報はまた、エクスペリエンスレベル、位置、スキルレベル、知識ベース(たとえば、エージェントがよく知っているトピック、および/または様々なトピックについての知識レベル)、パーソナリティメトリック、勤務時間(working hours)、話される(1つまたは複数の)言語および/または人口統計学的情報など、エージェント情報を含むことができる。一部の情報は動的に更新され得る。たとえば、エンドポイントが利用可能であるかどうかを示す情報は、(たとえば)(たとえば、デバイスがスリープであるか、オフ/オンにされているか、アイドル/アクティブであるかどうかを識別するか、または入力が時間期間内に受信されたかどうかを識別する)エンドポイントからの通信、(たとえば、エンドポイントが、通信交換の一部に関与するかまたは通信交換の一部になるように割り当てられているかどうかを示す)通信ルーティング、あるいは通信交換が終わったまたは始まったことを示すネットワークデバイスまたはエンドポイントからの通信に基づいて、動的に更新され得る。
【0088】
[00105]様々なコンテキストにおいて、1つまたは複数の通信交換に関与することは、エンドポイントが別の通信交換に関与するために利用可能でないことを必ずしも示すとは限らないことが諒解されよう。(たとえば、概してまたはユーザに関して)通信タイプ(たとえば、テキスト、メッセージ、電子メール、チャット、電話)、クライアント識別されたまたはユーザ識別されたターゲット応答時間、および/あるいはシステム負荷などの様々なファクタは、エンドポイントがいくつの交換に関与し得るかに影響を及ぼし得る。
【0089】
[00106]対話管理エンジン625が、通信交換または接続に関与すべきエンドポイントを識別したとき、それは、端末ルーティングエンジン650に通知することができ、端末ルーティングエンジン650は、宛先(たとえば、IP)アドレス、デバイスタイプ、プロトコルなど、エンドポイントに関する何らかの関係するデータをエンドポイントデータストア655から取り出し得る。処理エンジン610は、次いで、特定のフォーマットを有すること、特定のプロトコルに準拠することなどのために、メッセージを包含している通信を修正するか、または(メッセージを含む)新しい通信を生成することができる。いくつかの実施形態では、新しいまたは修正されたメッセージは、ネットワークデバイスに対応するアカウントデータ、メッセージクロニクル、および/またはクライアントデータなど、追加のデータを含み得る。
【0090】
[00107]メッセージ送信機インターフェース660は、次いで、エンドポイントに通信を送信することができる。送信は、たとえば、別個のハウジング中に格納されたデバイスへのワイヤードまたはワイヤレス送信を含み得る。エンドポイントは、接続管理システム150と同じまたは異なるネットワーク(たとえば、ローカルエリアネットワーク)中のエンドポイントを含むことができる。したがって、エンドポイントに通信を送信することは、ネットワーク間またはネットワーク内接続構成要素に通信を送信することを含むことができる。
【0091】
[00108]
図7は、本技術のいくつかの態様による、FaaSボット702テンプレートを展開する会話の態様を示す。FaaSシステムは、標準メッセージングイベントからFaaS機能を呼び出すことができる。たとえば、新しい会話開始イベントが、機能を呼び出すためのトリガとして選定され得る。
図7は、ヘッダ710と、テキスト712と、FaaSトリガ714と、テキスト716とを含む通信を示す。FaaSトリガ714は、トリガテンプレートにマッチされる通信の一部としてのテキストの特定のセットであり得る。通信が受信されたとき、トリガテンプレートのセットが、FaaSトリガ714を識別するためにテキストと比較される。上記で説明されたように、トリガテンプレートのセットは、システムのすべてのクライアントのためのトリガを含むことができるか、またはクライアントによってカスタマイズされ得る。いくつかの例では、クライアントデバイスは、システムが動作しているとき、リアルタイムで動的にテンプレートのセットを更新するために、あるいは個々のテンプレートを修正または改変するために、システムにアクセスすることができる。更新が行われているとき、サービスクラウドにおける既存の機能実行(たとえば、クラウド180における動作560)は、古い機能を稼働し続けることができ、更新が完了すると、サービスクラウドにおける新しい呼出しが、更新された機能を使用することになる。機能トリガが、(たとえば、機能を実行するためのコードとともに)サービスクラウドに送られる通信を呼び出す場合、機能を呼び出すユーザデバイスまたは端末デバイスに対する更新は、同様に、ユーザデバイスおよび端末デバイスにおけるシステムに対するそのような動的リアルタイム更新を可能にすることになる。
【0092】
[00109]
図7の例は、メッセージテキストからのトリガを識別することについて説明するが、ヘッダ710の詳細、または、本明細書で説明されるシステムにおける通信の任意の他のそのような識別可能な要素を含む、任意の他のそのようなトリガが使用され得る。
【0093】
[00110]FaaSトリガ714が上記で説明されたように識別されるとき、FaaSトリガ714を識別するデバイスは、機能アクセス722のための通信720を始動することによって、対応する機能を呼び出す。呼出しと一緒に、機能は、通信720において、新しい会話に関するメタデータを含むペイロードとともにFaaSシステムに送られ得る。他の例では、機能または機能テンプレートは、FaaSシステム(たとえば、FaaSクラウド190)において事前構成され、単に、トリガによって始動された呼出し通信によって識別され得る。任意のそのような例では、ペイロードは、次いで、機能実行においてならびに任意のさらなる処理および参照において、FaaSシステム(たとえば、FaaSクラウド190)によって実行される機能において使用され得る。FaaSシステムは、JavaScript(登録商標)、Python、構造化照会言語、PHP、ルビー、C、C++、Cシャープ、Visual Basic、Java、Objective-C、Perl、または意図された目的に好適なおよび当業者によって理解される任意の他のプログラミング言語など、様々なプログラミング言語をサポートし得る。機能の結果または出力は、通信724において返され、テキスト716を促進するかまたはそれに影響を及ぼすために、双方向通信セッションの一部として通信されるべき新しいテキストまたはデータを生成するために、あるいは通信システムの改善された動作を促進するための任意の他のアクションをとるために、使用され得る。
【0094】
[00111]FaaSシステムは、FaaSプラットフォームにおけるイベントに応答したカスタム論理をもつカスタム機能を実行することができる。イベントは、常に行われ、「会話が開始した」、「会話調査がサブミットされる」、「エージェントがプラットフォームにログイン/ログアウトする」、ならびに意図された目的に好適なおよび当業者によって理解されるトリガを誘起することができる任意の他のイベントなど、イベントを含むことができる。カスタム論理を定義するこれらのイベントは、カスタマイズされるように構成可能であり得る。開発者は、会話型エクスペリエンスをさらに開発するために、単純で複雑な機能をさらに準備し、書き込むことができる。ボタンのクリックにより、LivePerson Cloudまたは他のクラウドサービスなど、クラウドベースプラットフォームが展開され得る。FaaSシステムはまた、より良い会話型エクスペリエンスのためのコードテンプレートの実装において開発者および企業をサポートするための、サーバプロビジョニング、セキュリティ、展開、およびスケーリングをサポートすることができる。
【0095】
[00112]FaaSシステムは、システムを構成する構成要素の実装において様々な要素を含むことができる。たとえば、「イベントゲートウェイ」は、プラットフォームイベントが、メッセージング会話において何か関心を引くことが生じた(たとえば、会話がアイドルになる、参加者が加わる/去るなど)ときに機能を呼び出すためのトリガとして働くことを可能にすることができる。イベントゲートウェイは、外部開発者が、追加のコードにより、より容易にFaaSプラットフォームを接続および拡張することを可能にすることができる。
【0096】
[00113]FaaS環境は、ユーザおよび開発者に、会話型商業環境中にいながら、コンタクトセンターのコンテキストにおいてイベントトリガとコーディングテンプレートとを組み合わせる能力を可能にすることができる。FaaSプラットフォームは、コンタクトセンター産業のほうへ適合されたイベントタイプを与えることができる。たとえば、「営業外時間(Off-Hours)中にラインをメッセージングする」は、消費者が、勤務時間中に開始した会話においてメッセージを書き込んだが、その間に、コンタクトセンターが営業外時間に切り替わったときに、トリガされ得る。FaaSプラットフォーム上で、上記のイベントに応答してJavaScript機能がトリガされ得る。他のサーバレスプロバイダは、同様のイベントにこの種類の応答を与えることができない。FaaSプラットフォームは、コンタクトセンター産業に固有である所与の数のイベントに応答するための様々なテンプレートを提供することができる。
【0097】
[00114]本明細書で説明されるFaaSシステムおよび方法は、それのサーバレス環境のためにコンタクトセンター固有のイベントを提供するだけでなく、FaaSシステムは、意図された目的に好適なおよび当業者によって理解される、任意の産業とのイベントのためのワーキングコードテンプレートをも提供することができる。機能開発者が「営業外時間中にラインをメッセージングする」イベントを選択した場合、FaaSプラットフォームは、受信時に構成可能である準備完了(ready-to-go)コードテンプレートを提供することができる。そのような例は、機能開発者が既存のインフラストラクチャを活用することを可能にし、テンプレートを生成するためにかかる時間を低減することによって、関連するコンピューティングデバイスの動作を改善する。改善されたデバイス機能も作成され、したがって、機能開発者はまた、機能開発者のニーズを満たし、イベントに対する追加の応答を与えるように、テンプレートをカスタマイズすることができる。
2つの可能な(相互排他的な)関連するメタデータをもつトリガイベントの一例は、メタデータA.エージェントが会話を閉じた、またはB.消費者が会話を閉じた、をもつ、トリガ1.メッセージング会話終わり、である。2つの(相互排他的でない)関連するメタデータをもつトリガイベントの別の例は、メタデータオプションA.エージェントが反応しない、および/またはB.消費者が反応しない、をもつ、トリガ2.メッセージング会話アイドル、である。上記で説明されたように、トリガは、双方向会話の一部として、あるいは接続管理システムまたはシステムの任意の他の部分におけるシステムイベントによって識別され、FaaSシステムにおける機能を呼び出すために使用され得る。FaaSシステムへの通信は、FaaSシステムにおいて前に構成された機能を識別することができるか、またはFaaS動作のために構成されたサービスクラウドのサーバレスリソースによって実行されるべき機能を含むことができるかのいずれかである。通信は、FaaSシステムによって使用され得る(たとえば、会話終わりイベントが、消費者が双方向通信を閉じることによってトリガされたことを示す)メタデータをさらに含むことができる。他の例では、上記の追加情報は、別個であるが関係するトリガを識別するためのテンプレートの一部であり、したがって、上記の1.A.は、消費者が会話を閉じたときの1.B.のためのトリガとは異なる、エージェントが会話を閉じるための異なる関連する機能によるトリガであることになる。そのような例では、呼出し通信によって識別されるかまたはそれの中に含まれる機能は、異なるトリガについて異なることになる。別個のトリガ(たとえば、2トリガ)の例は、単一のトリガ(たとえば、メッセージ会話が終わる)が異なるメタデータオプションを有する、前の例とは対照的である。トリガ例の追加の非網羅的リストは、以下のトリガ、すなわち、3.会話ルーティングをメッセージングする、4.営業外時間中にラインをメッセージングする、5.新しい会話をメッセージングする、6.参加者変更をメッセージングする、7.応答までの時間(TTR:Time-to-Respond)をメッセージングする、および8.チャットポスト調査電子メールトランスクリプト(CSAT:Chat Post Survey Email Transcriptルール)を含む。
【0098】
[00115]上記のトリガまたは任意のそのようなトリガの各々は、トリガに応答して使用されるべき関連する情報または関連する機能を識別する、任意の数の関連するメタデータを有することができる。さらなる例は、そのようなトリガに関して異なる変形形態を含むことができる。たとえば、トリガ6(たとえば、参加者が変わる)は、新しい参加者と古い参加者との組合せおよび関連する参加者カテゴリーに基づく異なるトリガにより、参加者の異なるカテゴリーを識別することができる。
【0099】
[00116]いくつかの例では、システムは、機能呼出しのためのメッセージングイベント(たとえば、関連する双方向通信データなしのメッセージングイベント、または他のそのようなメッセージングイベントに基づくトリガ)を伴って構成され得る。いくつかのそのような例では、FaaSプラットフォームは、いくつかのメッセージングイベントをオーバーライドすることができる。以下の「会話状態変化イベント」は、以下を実行するための機能をトリガするために使用され得る例である。
9. 新しい会話
A. このイベントは、消費者が新しい会話を作成した場合、実行され得る。
10. TTRが変更される
A. 消費者は、会話を緊急またはその逆とマークすることによってイベントをトリガすることができる。
B. エージェントは、TTRを変更することによってイベントをトリガすることができる。
11. 参加者変更
A. このイベントは、誰かが会話に加わるかまたは会話を去る場合、実行され得る。
12. 会話アイドル
A. このイベントは、消費者またはエージェントが、構成されたアイドルタイムアウトにおいて応答していない場合、実行され得る。
13. 会話ルーティング
A. このイベントは、会話が異なるスキルにルーティングされた場合、実行され得る。
14. 営業外時間中にラインをメッセージングする
A. このイベントは、会話が営業時間(office-hours)中に開かれ、会話中の新しい消費者ラインが営業外時間中に書き込まれた場合(たとえば、営業外時間メッセージ)、実行され得る。
15. 会話終わり
A. このイベントは、会話が閉じられた後に実行され得る。
【0100】
[00117]これらのイベントをオーバーライドすることによって、展開された機能が、コールされ、その機能によって処理され得る。機能の結果においてシステムメッセージが設定されない場合、デフォルト自動メッセージがトリガされ得る。
【0101】
[00118]FaaSプラットフォームは、呼出し側(invoker)へのコールバックコマンドを実行するためのオプションを有することができる。会話型イベント呼出しでは、機能を呼び出すサービスは、コントローラボットであり得る。このサービスはまた、システムメッセージを会話の中に送ることを担当し得る。呼出し側としてのコントローラボットにより、FaaSプラットフォームは、コントローラボットとの以下のコールバックコマンドを実行することができる。
16. システムメッセージを送る
17. 異なるスキルに会話を転送する
18. 会話を閉じる
【0102】
[00119]FaaSプラットフォームは、コールバックコマンドを実施しないためのオプションをも有することができる。これは、ユーザまたは開発者が、機能をトリガするためにコントローラボットの呼出し能力のみを使用することを望む場合、重要であり得る。
【0103】
[00120]FaaSプラットフォームは、さらに、応答に複数のコマンドを追加することができる。結果は、アレイまたは単一のオブジェクトであり得る。タイプごとに2つ以上のコマンド(たとえば、2つのシステムメッセージ)が追加された場合、このタイプの第1のコマンドのみが処理され得る。
【0104】
[00121]コールバックの一例は、以下を含むことができる。
let result=
[{type:“systemMessage”,//会話の中にシステムメッセージを返す
テキスト:“あなたのメッセージ”},
{type:“transfer”,//新しいスキルskillId:「123456」に会話を転送する
},{type:“closeConversation”//会話を閉じる}]
コールバック(null,result)
【0105】
[00122]上記で説明されたように、サービスクラウド(および関連するFaaSクラウド190)をもつ
図5Aおよび
図5Bの通信などのFaaSメッセージングは、ペイロードを含むことができる。たとえば、ペイロードは、各メッセージング「XXX」テンプレート機能中に含まれ得る。FaaSプラットフォーム(たとえば、FaaSクラウド190)では、ユーザは、より高速にカスタム特徴要求を実装し、迅速なタイムテーブルにおいてテンプレートをロールアウトし、それにより、生産性を増加させることができる。さらに、FaaSプラットフォームは、ブランド開発者に、ブランド開発者自体の特徴要求を実装するためにFaaSを使用する権限を与えることができる。これは、専用の専門サービスを有しない中小規模の顧客/ブランドにとって魅力的である。
【0106】
[00123]FaaSプラットフォームは、企業が、プラットフォーム上に企業自体の技術者を有することと、FaaSプラットフォームにおけるいくつかのイベントに応答してトリガされ得るカスタム特徴を開発することとを可能にすることができる。拡張は、さらに、第三者企業によって書き込まれ、ボタンのクリックによりLivePerson Cloud中に展開され得る。
【0107】
[00124]
図8は、いくつかの例による、機能のプロパティおよび構成の一例を示す。
図8は、機能テンプレート800を示す。FaaSプラットフォーム(たとえば、サービスクラウド180中のFaaSクラウド190)は、会話ライフサイクルのほうへあまり適合されないことがある、機能テンプレートおよびより高いレベルのイベントタイプの別個のセットを与えることができる。機能テンプレート800は、機能テンプレートのセットの一部として使用され得る機能テンプレートの一例である。機能テンプレートの他の例は、他の構造を含むことができる。
図8の例示的な機能テンプレート800は、ヘッダ810と、機能名820と、ロケーション830と、制御設定840と、トリガ850とを含む。
【0108】
[00125]ヘッダ810は、機能テンプレートを編成するために使用され得る。たとえば、ヘッダ810の示されているランタイム/機能/管理は、機能テンプレートのセットを編成するための入れ子構造であり得、機能テンプレート800は、セット中の多くの機能テンプレートのうちの1つである。他の例では、他のそのような編成構造が使用され得る。
【0109】
[00126]名前820は、固有の機能テンプレートを識別するために使用され得る。
図8の例では、「こんにちはSMS」は、機能テンプレート800のための識別名である。同様に、ロケーション830は、機能テンプレートに関連する機能を実装するためのデータまたはコードについての識別経路情報であり得る。たとえば、ロケーション830の示されているセキュアハイパーテキスト転送プロトコル(HTTPS)は、機能テンプレート800の命令のために使用される記憶スペースに関連付けられ得る。いくつかの例では、コードがFaaSクラウドに記憶された場合、ロケーション830は、FaaSクラウド内のロケーションであり得る。他の例では、ロケーション830は、アクセスされ、機能のためのコードをFaaSクラウドに送るために使用され得る、任意の他の記憶ロケーションであり得る。制御設定840およびトリガ850は、通信システムにおける機能テンプレート800の使用のための構成設定である。制御設定840は、機能テンプレート800の使用のためのセキュリティまたは動作制御を管理するために使用され得る。(1つまたは複数の)トリガ850は、機能テンプレート800が通信システムの一部として実装されるときに使用されるべきトリガを識別することができる。たとえば、機能テンプレート800は、着信音声コールのためのトリガと着信テキストメッセージのための別個のトリガとを含む、複数のトリガを有することができる。上記で説明されたように、機能テンプレート800がシステムにおいて(たとえば、ユーザデバイス105、CMS150、またはクライアントデバイス130において)使用されるとき、またはアクションおよび通信が、処理され、トリガと比較され得る。トリガがアクションまたは通信にマッチされたとき、機能は、FaaSクラウドにおいてコードを呼び出すこと、またはFaaSクラウドにおいて実行されるべき機能のためのコードにアクセスし、それをFaaSクラウドに送ることのいずれかによって、(たとえば、ロケーション830を使用する)FaaSクラウドにおいて呼び出される。
【0110】
[00127]
図9は、いくつかの例による、コントローラボット900の一例を示す。上記で詳述されたように、いくつかの例では、機能テンプレート800などの機能テンプレートは、FaaSシステムへのリアルタイム追加と修正の両方を可能にするためにそのシステムにおいて使用され、ならびに、内部システムソースと独立した第三者ソースの両方による、機能の追加および修正を可能にすることができる。たとえば、いくつかの実装形態では、クライアント(たとえば、業者システム)は、更新のためにシステムを停止することなしに、リアルタイム動作中に、クライアントに関連する通信のためのシステムに機能を追加することができる。そのような機能は、機能テンプレートをとり、FaaSクラウドからの関連する機能を呼び出すことになるトリガを管理するための通信システムにおいてその機能テンプレートを実装するための、「コントローラボット」の使用を通して、システムに追加され得る。FaaSシステムおよび方法の一例は、以下で説明される実装形態を含むことができる。
1.コントローラボットをセットアップする
コントローラボットがセットアップされた場合、ユーザは、「FaaSを有効にする」に直接進むことができる
1.1.LPA(LPAdminアクセス)を高める
A.サーバコマンドをクリックする
B.LPAdminアクセスにスクロールし、アカウントが稼働していることがある、第2の列中の正しいサーバを選定する
C.第3の列中のサイト=の後にアカウント番号を入力する(たとえば、サイト=le63413568)
D.表示されたステップに従う
1.2.コントローラボットを有効にする
A.このステップは、高められたLPAのために、ステップ1.1の後に実施され得る
B.ナビゲーション中のコントローラボットを選定する
C.アカウントに関して有効にする、をクリックする
D.タブ構成->構成検査を選定し、すべてを有効にする、をクリックする
コントローラボットがシステムにおいて有効にされると、システムにおける新しいアクションが、コントローラボットによって実装された関連する機能テンプレートからのトリガについて検査するために、コントローラボットによって分析されることになる。トリガが識別されたとき、機能経路(たとえば、ロケーション830)が、サービスクラウド(たとえば、サービスクラウド180)のFaaSクラウド(たとえば、FaaSクラウド190)部分における機能のためのコードの実行を促進するために使用される。
【0111】
[00128]
図10は、いくつかの例による、新しい機能を作成するためのユーザインターフェース1000の一例を示す。新しい機能は、「xxxをメッセージングする」テンプレートを使用することによってFaaSプラットフォームユーザインターフェースによって作成され得る。FaaSプラットフォームユーザは、(たとえば、CMS150に関連する)通信システムのためのシステムアドミニストレータ、あるいは通信システムのクライアントまたは業者のいずれかであり得る。テンプレートタイプごとの1つまたは複数の機能が生成され得る。同じイベント呼出しが原因である複数のタイプの機能がある場合、これらの機能は、同じlambdaにコーディングされ得る。新しい機能が、生成され、記憶されると、関連するヘッダ(たとえば、ヘッダ810)と、名前(たとえば、名前820)と、記憶ロケーション(たとえば、ロケーション830)とを含む、関連するテンプレートのためのコア情報が、機能テンプレート中に含まれるべき機能のために利用可能である。いくつかの例では、同じ機能が、複数の異なる機能テンプレートにおいて使用され得、異なる機能テンプレートは、異なる制御設定および/または異なるトリガを有する。
【0112】
[00129]
図11は、いくつかの例による、
図10の新しい機能など、機能を編集または作成するためのユーザインターフェース1100の一例を示す。機能実装は、機能を修正することによって要件に従ってテンプレートからのコーディングを調節することを含むことができる。ユーザインターフェースは、システムに記憶された利用可能な機能からの機能の検索を可能にする。たとえば、機能は、既存の機能テンプレートにおける、ヘッダ中の組織構造によって、名前によって、トリガまたは制御設定によって、あるいは任意の他のそのような使用によって、検索され得る。いくつかの例では、システムは、機械学習における使用、ならびに、機能編集の一部としての検索の両方のために、使用情報をデータベースに記憶することができる。たとえば、通信システムは、絶対的に(たとえば、コール/日)、または所与の期間にわたるシステムにおける通信の割合(たとえば、業者Aに関連する通信の50%が過去の月において機能XYZをコールした)としてのいずれかで、機能がコールされた頻度を記憶することができる。そのような機能使用データは、利用可能な機能を検索および分類するために、ならびに本明細書で説明される機械学習またはAIフィードバックを提供するために、使用され得る。
【0113】
[00130]
図12は、いくつかの例による、会話の例示的なユーザインターフェース1200を示す。左側に、会話に関連するデータ1210が示されている。右側に、ペイロードデータ1220の一例が示されている(たとえば、サイドバーがペイロードを示す)。ペイロードデータは、会話に関する情報、または任意の他のそのような情報を含むことができる。結果は、単一のコマンド、またはコマンドのアレイであり得る。テンプレートコードでは、現在の利用可能なコマンドが示されている。
【0114】
[00131]
図13は、いくつかの例による、機能を展開および除去するための例示的なユーザインターフェース1300を示す。展開機能の一例が示されており、より多くの機能および展開機能をクリックすることによって、FaaSプラットフォームによる新しい機能を展開することができる。機能の成功した展開の後に、展開された機能は、対応するイベントにおいてコントローラ-ボットによってコールされ得る。
【0115】
[00132]開示される単一エントリデュアル機能システムが、コンピューティングシステムを使用して実施され得る。例示的なコンピューティングシステムは、プロセッサ(たとえば、中央処理ユニット)と、メモリと、不揮発性メモリと、インターフェースデバイスとを含むことができる。メモリは、データおよび/または1つまたは複数のコードセット、ソフトウェア、スクリプトなどを記憶し得る。コンピュータシステムの構成要素は、バスを介してあるいは何らかの他の知られているまたは好都合なデバイスを通して一緒に結合され得る。プロセッサは、たとえば、たとえばメモリに記憶されたコードを実行することによって本明細書で説明される方法の全部または一部を行うように構成され得る。ユーザデバイスまたはコンピュータ、プロバイダサーバまたはシステム、あるいは中断されたデータベース更新システムのうちの1つまたは複数は、コンピューティングシステムの構成要素またはそのようなシステムの変形形態を含み得る。
【0116】
[00133]上記で説明されたユーザインターフェースは、通信システム内での本明細書で説明される機能の効率的な動的展開を可能にすることによって双方向通信システムにおけるコンピューティングデバイスの動作を改善する。そのような通信システムは、各々、異なる通信目標および機能をもつ、多くの異なるクライアントのために数千のタイプの通信を管理するように構造化され得る。説明されるインターフェースにおける統合、作成、検索、編集、および展開制御によって、そのような通信システムにおけるボット、トリガ、および機能の効率的な管理が、通信システムにおいて動作する関連するトリガとともに多くの(たとえば、数十、数百、数千、またはそれ以上の)機能をもつ複雑な環境のために、ローカルリソースを限定し、オンデマンドコンピューティングリソースを使用するためのFaaSクラウドの使用と一緒に、可能にされる。
【0117】
[00134]いくつかの例では、そのようなユーザインターフェースは、ディスプレイスクリーンを備えるコンピューティングデバイスで具現され得、コンピューティングデバイスは、上記の例によれば、スクリーン上にインターフェースを表示するように構成される。そのようなユーザインターフェースは、上記で説明された例の機能、機能テンプレート、ボットコントローラ、または任意のそのような態様に関連する、データの概要のスクリーン上での表示を含むことができる。データの概要は、通信システムに対する動的およびリアルタイム更新のための機能の修正を可能にするための機能のための命令に直接アクセスするために使用され得る。そのようなユーザインターフェースは、機能、テンプレート、ボットコントローラ、または機能に関連する他のそのような要素を生成するための、および、通信システムが、機能を使用するために動的に更新されることを引き起こすための、データをさらに含むことができる。さらに、上記で説明された任意の他のそのようなインターフェースは、そのような実施形態の一部として実装され得る。
【0118】
[00135]
図14は、本技術のいくつかの態様による、方法実施形態のフローチャートを示す。説明される方法は、意図を分析する実施形態について説明する。いくつかの例では、方法1400は、コンピューティングデバイスによって実施される。いくつかの例では、方法1400は、デバイスの1つまたは複数のプロセッサによって実行されたとき、デバイスに、方法1400の動作を実施させる命令として具現される。
【0119】
[00136]方法1400は、イベントに基づく応答を実行するように構成されたテンプレートにアクセスするためのステップ1402を含む。上記で説明されたように、テンプレートは、ロケーション(たとえば、ロケーション830)と、システムによって使用され得る任意の他の関連するデータとによって識別される機能をもつ機能テンプレート800と同様のテンプレートであり得る。いくつかの例では、アクセスすることは、機能テンプレートのトリガを通信システム内の出来事とマッチさせるために通信システムにおけるデータまたはアクションを分析するためにデバイスによって実装されるコントローラボットを始動するために使用される。
【0120】
[00137]方法1400は、ユーザデバイスとの双方向通信セッションを促進するためのステップ1404を含む。そのような双方向通信セッションは、ユーザが、業者または他の通信システムクライアントに関連する意図をもつ通信を始動するとき、行われ得る。そのような意図は、購入を行うこと、情報を識別すること、アポイントメントをスケジュールすること、技術的サポートを受けること、または任意の他のそのような意図であり得る。双方向通信は、テキスト通信、オーディオ通信、任意の他のタイプの通信、または任意のそのような通信の任意の組合せを含むことができる。
【0121】
[00138]方法1400は、テンプレートに対応するイベントトリガを識別するために双方向通信セッションのデータを処理するためのステップ1406を含む。たとえば、上記で説明されたように、通信内のコントローラボットまたは他の機構は、ステップ1402のテンプレートに関連するトリガのためのシステム内のイベント(たとえば、通信の要素、またはシステムにおける通信をサポートするアクション)を分析することができる。
【0122】
[00139]方法1400は、イベントトリガに関連するサーバレスクラウドベース機能の実行を要求するステップ1408を含む。そのようなサーバレスクラウドベース機能は、FaaSクラウドに前に記憶されたまたは要求とともにFaaSクラウドに送られた機能のための命令の実行を伴うことができる。FaaSクラウドは、その命令を実行し、双方向通信セッションを拡張するために使用され得る1つまたは複数の出力を生成する。
【0123】
[00140]方法1400は、イベントトリガに関連するサーバレスクラウドベース機能の1つまたは複数の出力を双方向通信セッションに組み込むためのステップ1410を含む。FaaSクラウドからの出力に基づく拡張は、通信の内容を改善すること、通信システムの動作を改善すること、通信中に含まれるべき新しいエージェントまたはノードを識別すること、(たとえば、後の分析または機械学習のために)、または任意の他のそのような目的のために、通信において使用されるべきデータまたは通信について説明するデータを生成することを含むことができる。方法1400は、多くの機能または複雑な機能が、通信システム動作を効率的に改善するためにサーバレスクラウドベースリソースを活用することによって使用されることを可能にする。対照的に、サーバベースシステムは、通信システムへのリソースのオーバーコミットメントを防ぐために、利用可能な機能を限定するか、または、説明されるサーバレスクラウドベース構造によって達成され得るものと等価な機能を提供するためのリソースの使用において非効率的であるかのいずれかである。
【0124】
[00141]いくつかのそのような例は、双方向通信セッションの終了に基づいてサーバレスクラウドベース機能の実行を終了することによってさらに動作することができる。同様に、いくつかの例は、サーバレスクラウドベース機能に対応する機能終了トリガを識別するために双方向通信セッションのデータを処理することと、機能終了トリガに基づいてサーバレスクラウドベース機能を終了することとによってさらに動作することができる。まさに、サーバレスクラウドベースシステムが、上記で説明されたように拡張された機能利用可能性を与えるように、システム非効率性が、機能が必要とされないときに機能実行を終了することによって回避され、クラウドベースリソースが他の機能または他の使用に再割り振りされることを可能にする。
【0125】
[00142]いくつかの例では、方法1400は動作することができ、ここで、サーバレスクラウドベース機能を要求することは、サーバレスクラウドベース機能に関連するコードを送信することを含み、ここにおいて、コードがサーバレスプロバイダにおいて受信されたとき、サーバレスプロバイダは、サーバレスクラウドベース機能の1つまたは複数の出力を生成するためにコードを実行する。他の例では、イベントトリガに関連するサーバレスクラウドベース機能を要求することは、要求を送信することをさらに備え、ここにおいて、要求がサービスとしての機能プラットフォームにおいて受信されたとき、サービスとしての機能プラットフォームは1つまたは複数の出力を生成する。さらなる例では、そのような要求に応答して他のアクションがとられ得る。
【0126】
[00143]方法1400のいくつかの例では、テンプレートは、双方向通信セッションとエージェントに関連する端末デバイスとに関連するコンタクトセンターについてのコンタクトセンターデータを含む。
【0127】
[00144]他の例では、方法1400は、クライアントシステムに関連する構成設定を受信することと、構成設定が、テンプレートを含む1つまたは複数のテンプレートと、1つまたは複数のテンプレートに対応する1つまたは複数のイベントトリガとを選択する、1つまたは複数のテンプレートを、クライアントシステムに関連する双方向通信セッションに自動的に関連付けることとをさらに備える。
【0128】
[00145]任意のそのような例は、エージェントに関連する端末デバイスへのユーザデバイスの接続を促進することをさらに備えることができ、ここで、イベントトリガは、自動エージェントから人間エージェントへの切替えを示す通信データであり、ここにおいて、1つまたは複数の出力は、エージェントと端末デバイスとを示す。上記の任意のそのような例が、繰り返されるステップ、または中間ステップをさらに含むことができる。したがって、方法1400は、特に上記に含まれる変形形態と一緒に一例について説明するが、他の方法も、本明細書に含まれる様々な例および説明に従って企図される。
【0129】
[00146]さらに、様々な実装形態では、上記のシステムは、AIおよび機械学習要素と統合され得る。そのような要素は、システム性能およびシステム使用の改善を提供するために、(たとえば、処理される所与のリソース限界として)リアルタイムで動的におよび連続的に更新され得る。そのような例は、システムの性能に関する情報を提供することと、システムのエラーまたは改善が識別されることを可能にすることとによって、通信システムの動作を改善する。追加のそのような要素は、FaaSシステムにおける機能使用を識別したことに応答して、追加された機能およびアクションについての更新を促進することと、AIまたは機械学習システムによって識別されたパターンに基づいて機能テンプレートおよびリソース割振りを動的に選択することとによって、通信システムの動作を改善する。さらに、上記のAIおよび機械学習システムは、FaaSシステム動作のみからの説明される改善を越えてデバイスの性能に改善を提供する。そのようなさらなる改善は、増加された応答性能と、浪費されるリソースを処理することの低減とを含み、機能は非効率的にコールされるか、またはFaaSシステムのためのサーバレスクラウドリソースは非効率的に割り振られる。機能リソースについての動的割振りのならびに機能選択の説明される改善は、関与するコンピューティングデバイスの効率を改善し、システムクライアントのためにユーザに通信および処理ユーティリティを提供しながら電力およびシステムリソースを節約する。
【0130】
[00147]様々なステップが上記で説明されたが、いくつかのステップが繰り返され得、介在するステップも実施され得ることが明らかであろう。さらに、システム中の異なるデバイスが、対応するステップを実施することになり、様々なデバイスが、同時に複数のステップを実施していることがある。たとえば、デバイスは、複数のエージェントに同時に要求をルーティングするためのステップを実施することができ、複数の異なるエージェントのデバイスは、対応する動作を実施し、エージェントデバイスはユーザデバイスと通信する。
【0131】
[00148]
図15は、機械学習技法を使用する機能選択(たとえば、FaaSクラウドシステムにおけるトリガと機能との間の関連付け)のためのネットワーク環境1500を表すブロック図を示す。ネットワーク環境1500は、(ユーザによって動作される)ネットワークデバイス1505と、通信サーバ1510と、(たとえば、サービスクラウド180中のFaaSクラウド190などの)FaaSクラウド1515と、端末デバイス1520とを含み得る。通信サーバ1510は、ネットワークデバイス1505と端末デバイス1520との間の双方向通信における、FaaS1515からの少なくとも1つの機能の使用を促進することができる。
【0132】
[00149]通信サーバ1510は、インテリジェント選択システム1525と、メッセージ推奨システム1530と、メッセージデータストア1535とを含み得る。インテリジェント選択システム1525およびメッセージ推奨システム1530の各々は、いくつかの動作を実装するための命令を実行するプロセッサとメモリとをもつ1つまたは複数のコンピューティングデバイスを含み得る。いくつかの実装形態では、インテリジェント選択システム1525は、双方向通信中に選択された機能からの繰り返されるフィードバックデータを管理するように構成されたボットであり得る。フィードバックは、前の双方向通信における(1つまたは複数の)選択されたおよび使用された機能が、所与のトリガのための最良の機能であったかどうか、または所与のトリガのための異なる選択された機能が、改善された結果を提供することができるかどうかを決定するために、使用され得る。そのようなフィードバック動作の一部として、上記で説明されたシステムにおけるトリガは動的に更新され得、したがって、任意の時間における所与のトリガのための機能は、その時間までのフィードバック結果に基づき、選択された機能は、追加のフィードバックが経時的に受信されるにつれて、改変または改良され得る。そのようなフィードバックを管理および使用するための分析の一部として、インテリジェント選択システム1525は、いくつかの実施形態では、A/Bテストを管理することができ、ここで、複数の機能がトリガに関連付けられ、異なる機能が、着信トリガ要求のためにランダムに割り当てられる。このA/Bテストから導出された結果データは、どの機能が優れた結果を提供するかを決定することができる。たとえば、トリガは、入力テキスト「カレンダーをお願いします」に関連付けられ得る。基本的な例では、FaaSクラウド1515からの単一の関連する機能が、ネットワークデバイス1505に関連するスケジュールされたアポイントメントのリストを提供し得る。経時的に受信されたフィードバックは、FaaSクラウド1515からの初期機能がアポイントメント作成機能に変更されることを引き起こし得る。A/Bの例は、「カレンダーをお願いします」トリガに基づいて、(1つまたは複数の)異なるネットワークデバイス1505をスケジュール報告機能またはアポイントメント作成機能のいずれかにランダムに割り当て、次いで、システムにおいて優れた結果を提供する機能を選択し得る。ネットワークデバイス選好が経時的にシフトする場合、A/Bテストを繰り返すこと、または追加の他の機能によるテストを自動的に始動すること、または複数の異なる機能(たとえば、単一のテスト中のA/B/Cまたはそれ以上の機能)を行うために、しきい値が確立され得る。機能とトリガとの間の関連付けを自動的に再査定するための基準は、たとえば、(たとえば、(1つまたは複数の)ネットワークデバイス1505の)ユーザが、あるレベルを下回るフィードバックスコアを提供するかどうか、または、双方向通信が、「カレンダーをお願いします」トリガの受信に続く時間のしきい値割合よりも多く、異なる機能を提供するものとして識別されるかどうかであり得る。
【0133】
[00150]インテリジェント選択システム1525は、1つまたは複数の機械学習技法または人工知能技法に、トリガ入力と機能との間の関連付けをインテリジェントに選択させるコードを実行するように構成された、1つまたは複数のプロセッサを含み得る。上記で説明されたように、トリガは、(たとえば、自然言語処理などにより)テキストから識別されるか、またはシステムによってとられたアクション(たとえば、双方向通信の始動、いくつかのルーティング経路またはシステム負荷の識別、単一のネットワークデバイス1505との繰り返される双方向通信など)から識別され得る。いくつかの実装形態では、インテリジェント選択システム1525は、ネットワークデバイス1505から受信されたメッセージがFaaSクラウド1515中の所与の機能によって成功裏に対処され得るかどうかを予測するモデルをトレーニングするために、1つまたは複数の機械学習技法を実行することができる。
【0134】
[00151]別の非限定的な例として、インテリジェント選択システム1525は、通信サーバ1510(たとえば、ユーザが様々なデバイスにわたって互いに通信することを可能にするように構成されたネイティブアプリケーション)によって確立または促進された通信チャネルを通してネットワークデバイス1505からメッセージを受信し得る。インテリジェント選択システム1525は、上記で説明されたいくつかの実施形態に従って、着信メッセージを評価し得る。たとえば、インテリジェント選択システム1525は、トレーニングされた機械学習モデルを使用して、受信されたメッセージ中に含まれるコンテンツ(たとえば、テキスト、オーディオクリップ、画像、エモーティコン、または他の好適なコンテンツ)を評価し得る。メッセージのコンテンツは、予測される機能(たとえば、特定の端末デバイスまたはボット)を生成するために、または予測される機能が、コンテンツのためのトリガに現在関連する同じ機能であることを検証するために、機械学習モデルに入力され得る。機械学習モデルは、ネットワークデバイス1505から受信されたフィードバック信号1540に基づいて連続的にトレーニングされ得る。いくつかの実装形態では、インテリジェント選択システム1525は、予測された機能のネットワークデバイス1505に肯定応答を要求し得る。非限定的な例として、インテリジェント選択システム1525は、機械学習技法を使用してメッセージを評価し得、評価の結果は、双方向通信をルーティングまたは再ルーティングするための機能を含み得る(たとえば、メッセージに関連付けられるべきFaaS1515内の特定の機能またはボットというプレディケーション)。確認するために、インテリジェント選択システム1525はフィードバック信号1540を自動的に要求し得る。たとえば、フィードバック信号1540は、ネットワークデバイス1505が、識別された機能がそのメッセージに正確に関連付けられたかどうかを肯定応答するための要求(たとえば、「技術的サポートは正確な宛先ですか?」)を含み得る。ネットワークデバイス1505が肯定応答を送信した場合、インテリジェント選択システム1525は、受信されたメッセージに厳密なまたはそれと同様のコンテンツ(たとえば、コンテンツ中の10パーセントの差異など、類似性のしきい値)を含む将来のメッセージが、選択された機能に関連付けられるべきであることを予測するように、機械学習モデルをトレーニングし得る。しかしながら、インテリジェント選択システム1525が、識別されたインテリジェント選択システム1525に関する問題があることを示すフィードバック信号1540を受信した場合、機械学習モデルを、所与のトリガをもつ将来のメッセージがFaaSクラウド1515の異なる機能またはボットに関連付けられることをトレーニングすることができる。いくつかの実装形態では、インテリジェント選択システム1525は、機械学習モデルを直ちに更新またはトレーニングしないことがあり、むしろ、インテリジェント選択システム1525は、更新を行う前に、不正確な機能のしきい値数、またはフィードバックのしきい値セットを待ち得る。
【0135】
[00152]メッセージデータストア1535は、1つまたは複数のネットワークデバイスから過去に受信された(たとえば、すべてではないが)いくつかのまたはすべてのメッセージを記憶し得る。さらに、メッセージデータストア1535は、ネットワークデバイスとの前の通信セッション中に端末デバイスまたはボットによって送信されたいくつかのまたはすべてのメッセージをも記憶し得る。メッセージデータストア1535は、通信セッション中にネットワークデバイスによってボットに送信されたいくつかのまたはすべてのメッセージをも記憶し得る。さらに、メッセージデータストア1535は、通信セッション中にボットによってネットワークデバイスに送信されたいくつかのまたはすべてのメッセージを記憶し得る。いくつかの実装形態では、メッセージデータストア1535は、通信サーバ1510(たとえば、それによって送信されたまたはそれにおいて受信された)処理されたすべてのメッセージのデータベースであり得る。
【0136】
[00153]メッセージ推奨システム1530は、メッセージデータストア1535において記憶されたメッセージのデータベースを分析し得る。いくつかの実装形態では、メッセージ推奨システム1530は、1つまたは複数の機械学習アルゴリズムまたは人工知能アルゴリズムを使用して、メッセージデータストア1535において記憶されたメッセージを評価し得る。たとえば、メッセージ推奨システム1530は、メッセージデータストア1535に記憶されたメッセージのデータベースに対して、K-meansクラスタリング、ミーンズシフト(means-shift)クラスタリング、ノイズをもつアプリケーションの密度ベース空間クラスタリング(DBSCAN:Density-Based Spatial Clustering of Applications with Noise)クラスタリング、混合ガウスモデル(GMM)を使用する期待値最大化(EM:Expectation-Maximization)クラスタリング、および他の好適な機械学習アルゴリズムなど、1つまたは複数のクラスタリングアルゴリズムを実行し得る。いくつかの実装形態では、エージェントを支援するための応答メッセージを予測するために、リカレントニューラルネットワーク(RNN)または畳み込みニューラルネットワーク(CNN)が使用され得る。いくつかの実装形態では、メッセージ推奨システム1530は、通信セッション中にネットワークデバイスから受信された着信メッセージに対する応答を予測するためにすべての前のメッセージを評価するために、サポートベクターマシン(SVM)、教師あり、半教師あり、アンサンブル技法、または教師なし機械学習技法を使用し得る。メッセージ推奨システムは、いくつかのそのような例では、新しいトリガおよび関連する機能を自動的に生成することができる。たとえば、メッセージ推奨システム1530は、ネットワークデバイスから受信されたメッセージ(あるいはボットまたは端末デバイスから通信サーバ1510において受信されたメッセージ)のコンテンツを評価し、評価の結果を、メッセージデータストア1535に記憶された、双方向通信セッションのための前のメッセージまたはメッセージのセットとそれらのセッション中に使用された機能との1つまたは複数のクラスタと比較し得る。クラスタが識別されると、メッセージ推奨システム1530は、所与のトリガのための最も関連する応答または機能を識別することができる。そのようなシステムは、(たとえば、データストア1535に記憶された)履歴通信セッション中にエージェントによって選択された機能に基づいて、関連する機能をもつ新しいトリガを生成するために、マニュアル(たとえば、エージェントベースの)機能選択からのデータを自動的に使用することができる。メッセージ推奨システム1530は、信頼性しきい値に基づいて、メッセージのクラスタ内の1つまたは複数のトリガおよび関連する機能を選択することができる。非限定的な例として、信頼性アルゴリズムが、信頼性スコアを生成するために実行され得る。信頼性スコアは、割合が低いほど、その応答が着信メッセージのための良好な予測である可能性が低くなり、割合が高いほど、その応答が着信メッセージのための良好な予測である可能性が高くなる、割合値であり得る。最小信頼性しきい値は、各発見されたパターンに関連する確実性または信用性の測度として定義され得る。さらに、信頼性アルゴリズムの一例は、アプリオリアルゴリズム、2つのデータセット間の類似性を示す類似性アルゴリズム、および他の好適な信頼性アルゴリズムであり得る。
【0137】
[00154]
図16は、いくつかの実装形態による、バスなどの接続1606を使用して互いに電気通信している様々な構成要素を含むコンピューティングシステムアーキテクチャ1600を示す。例示的なシステムアーキテクチャ1600は、処理ユニット(CPUまたはプロセッサ)1604と、ROM1618およびRAM1616などのシステムメモリ1620を含む様々なシステム構成要素をプロセッサ1604に結合するシステム接続1606とを含む。システムアーキテクチャ1600は、プロセッサ1604と直接接続された、プロセッサ1604に極めて近接した、またはプロセッサ1604の一部として統合された、高速メモリのキャッシュ1602を含むことができる。システムアーキテクチャ1600は、プロセッサ1604による迅速なアクセスのために、メモリ1620および/または記憶デバイス1608からキャッシュ1602にデータをコピーすることができる。このようにして、キャッシュは、データを待っている間のプロセッサ1604遅延を回避する性能の向上を提供することができる。これらおよび他のモジュールは、様々なアクションを実施するようにプロセッサ1604を制御することができ、またはプロセッサ1604を制御するように構成され得る。
【0138】
[00155]他のシステムメモリ1620も、使用のために利用可能であり得る。メモリ1620は、異なる性能特性をもつ、複数の異なるタイプのメモリを含むことができる。プロセッサ1604は、任意の汎用プロセッサと、プロセッサ1604ならびに専用プロセッサを制御するように構成された、記憶デバイス1608に記憶されたサービス1 1610、サービス2 1612、およびサービス3 1614など、ハードウェアまたはソフトウェアサービスとを含むことができ、ここで、ソフトウェア命令が実際のプロセッサ設計に組み込まれる。プロセッサ1604は、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含んでいる、完全自己完結型コンピューティングシステムであり得る。マルチコアプロセッサは、対称的または非対称的であり得る。
【0139】
[00156]コンピューティングシステムアーキテクチャ1600とのユーザ通信を可能にするために、入力デバイス1622は、スピーチのためのマイクロフォン、ジェスチャーまたはグラフィカル入力のためのタッチセンシティブスクリーン、キーボード、マウス、動き入力、スピーチなど、任意の数の入力機構を表すことができる。出力デバイス1624も、当業者に知られているいくつかの出力機構のうちの1つまたは複数であり得る。いくつかの事例では、マルチモーダルシステムは、ユーザが、コンピューティングシステムアーキテクチャ1600と通信するために複数のタイプの入力を提供することを可能にすることができる。通信インターフェース1626は、概して、ユーザ入力とシステム出力とを統制および制御することができる。任意の特定のハードウェア構成上で動作することに対する制限はなく、したがって、ここでの基本的特徴は、改善されたハードウェア構成またはファームウェア構成が開発されるにつれて、それらで容易に代用され得る。
【0140】
[00157]記憶デバイス1608は、不揮発性メモリであり、磁気カセット、フラッシュメモリカード、固体メモリデバイス、デジタル多用途ディスク、カートリッジ、RAM1616、ROM1618、およびそれらのハイブリッドなど、コンピュータによってアクセス可能であるデータを記憶することができるハードディスクまたは他のタイプのコンピュータ可読媒体であり得る。
【0141】
[00158]記憶デバイス1608は、プロセッサ1604を制御するためのサービス1610、1612、1614を含むことができる。他のハードウェアモジュールまたはソフトウェアモジュールが企図される。記憶デバイス1608は、システム接続1606に接続され得る。一態様では、特定の機能を実施するハードウェアモジュールは、その機能を行うために、プロセッサ1604、接続1606、出力デバイス1624など、必要なハードウェア構成要素に関して、コンピュータ可読媒体に記憶されたソフトウェア構成要素を含むことができる。
【0142】
[00159]開示されるギフト選択、帰属、および配信システムが、コンピューティングシステムを使用して実施され得る。例示的なコンピューティングシステムは、プロセッサ(たとえば、中央処理ユニット)と、メモリと、不揮発性メモリと、インターフェースデバイスとを含むことができる。メモリは、データおよび/または1つまたは複数のコードセット、ソフトウェア、スクリプトなどを記憶し得る。コンピュータシステムの構成要素は、バスを介してあるいは何らかの他の知られているまたは好都合なデバイスを通して一緒に結合され得る。プロセッサは、たとえば、たとえばメモリに記憶されたコードを実行することによって本明細書で説明される方法の全部または一部を行うように構成され得る。ユーザデバイスまたはコンピュータ、プロバイダサーバまたはシステム、あるいは中断されたデータベース更新システムのうちの1つまたは複数は、コンピューティングシステムの構成要素またはそのようなシステムの変形形態を含み得る。
【0143】
[00160]本開示は、任意の好適な物理的形態をとるコンピュータシステムを企図する。限定ではなく例として、コンピュータシステムは、組込み型コンピュータシステム、システムオンチップ(SOC)、(たとえば、コンピュータオンモジュール(COM)またはシステムオンモジュール(SOM)などの)シングルボードコンピュータシステム(SBC)、デスクトップコンピュータシステム、ラップトップまたはノートブックコンピュータシステム、対話型キオスク、メインフレーム、コンピュータシステムのメッシュ、携帯電話、携帯情報端末(PDA)、サーバ、あるいはこれらのうちの2つまたはそれ以上の組合せであり得る。適切な場合、コンピュータシステムは、ユニタリーであるかまたは分散された、複数のロケーションにわたる、複数の機械にわたる、および/あるいは1つまたは複数のネットワーク中の1つまたは複数のクラウド構成要素を含み得るクラウド中に存在する1つまたは複数のコンピュータシステムを含み得る。適切な場合、1つまたは複数のコンピュータシステムは、実質的な空間的または時間的限定なしに本明細書で説明または例示されている1つまたは複数の方法の1つまたは複数のステップを実施し得る。限定ではなく例として、1つまたは複数のコンピュータシステムは、本明細書で説明または例示されている1つまたは複数の方法の1つまたは複数のステップにわたってなど、イベントが行われるとき、または複数のイベントをアグリゲートするバッチモードで、実施し得る。1つまたは複数のコンピュータシステムは、適切な場合、異なる時間においてまたは異なるロケーションにおいて、本明細書で説明または例示されている1つまたは複数の方法の1つまたは複数のステップを実施し得る。
【0144】
[00161]プロセッサは、たとえば、Intel Pentium(登録商標)マイクロプロセッサまたはMotorola power PCマイクロプロセッサなどの従来のマイクロプロセッサであり得る。「機械可読(記憶)媒体」または「コンピュータ可読(記憶)媒体」という用語がプロセッサによってアクセス可能である任意のタイプのデバイスを含むことを、当業者は認識されよう。
【0145】
[00162]メモリは、たとえば、バスによってプロセッサに結合され得る。メモリは、限定ではなく例として、ダイナミックRAM(DRAM)およびスタティックRAM(SRAM)など、ランダムアクセスメモリ(RAM)を含むことができる。メモリは、ローカルであるか、リモートであるか、または分散され得る。
【0146】
[00163]バスはまた、プロセッサを不揮発性メモリおよび駆動ユニットに結合することができる。不揮発性メモリは、しばしば、磁気フロッピー(登録商標)またはハードディスク、光磁気ディスク、光ディスク、CD-ROM、EPROM、またはEEPROM(登録商標)などの読取り専用メモリ(ROM)、磁気または光学カード、あるいは大量のデータのための別の形態の記憶装置である。このデータの一部は、しばしば、直接メモリアクセスプロセスによって、コンピュータ中のソフトウェアの実行中にメモリに書き込まれる。不揮発性記憶装置は、ローカルであるか、リモートであるか、または分散され得る。システムが、メモリ中で利用可能なすべての適用可能なデータを用いて作成され得るので、不揮発性メモリは随意である。典型的なコンピュータシステムは、通常、少なくともプロセッサと、メモリと、メモリをプロセッサに結合するデバイス(たとえば、バス)とを含むことになる。
【0147】
[00164]ソフトウェアは、不揮発性メモリおよび/または駆動ユニットに記憶され得る。実際、大きいプログラムでは、メモリにプログラム全体を記憶することが可能でないことさえある。それにもかかわらず、ソフトウェアが稼働するために、必要な場合、処理に適したコンピュータ可読ロケーションに移動され、説明のために、そのロケーションは、本明細書ではメモリと呼ばれることを理解されたい。ソフトウェアが実行のためにメモリに移動されたときでも、プロセッサは、ソフトウェアに関連する値を記憶するためにハードウェアレジスタと、理想的には、実行を高速化するように働くローカルキャッシュとを利用することができる。本明細書で使用されるソフトウェアプログラムは、そのソフトウェアプログラムが「コンピュータ可読媒体において実装される」と呼ばれるとき、任意の知られているまたは好都合なロケーション(不揮発性記憶装置からハードウェアレジスタまで)に記憶されると仮定される。プログラムに関連する少なくとも1つの値がプロセッサによって読取り可能なレジスタに記憶されるとき、プロセッサは、「プログラムを実行するように構成される」と見なされる。
【0148】
[00165]バスはまた、プロセッサをネットワークインターフェースデバイスに結合することができる。インターフェースは、モデムまたはネットワークインターフェースのうちの1つまたは複数を含むことができる。モデムまたはネットワークインターフェースがコンピュータシステムの一部であると見なされ得ることが諒解されよう。インターフェースは、アナログモデム、統合サービスデジタルネットワーク(ISDN0モデム、ケーブルモデム、トークンリングインターフェース、衛星送信インターフェース(たとえば、「直接PC」)、またはコンピュータシステムを他のコンピュータシステムに結合するための他のインターフェースを含むことができる。インターフェースは、1つまたは複数の入力および/または出力(I/O)デバイスを含むことができる。I/Oデバイスは、限定ではなく例として、キーボードと、マウスまたは他のポインティングデバイスと、ディスクドライブと、プリンタと、スキャナと、ディスプレイデバイスを含む他の入力および/または出力デバイスとを含むことができる。ディスプレイデバイスは、限定ではなく例として、陰極線管(CRT)、液晶ディスプレイ(LCD)、あるいは何らかの他の適用可能な知られているまたは好都合なディスプレイデバイスを含むことができる。
【0149】
[00166]動作中、コンピュータシステムは、ディスクオペレーティングシステムなどのファイルルーティングシステムを含むオペレーティングシステムソフトウェアによって制御され得る。関連するファイルルーティングシステムソフトウェアをもつオペレーティングシステムソフトウェアの一例は、ワシントン州RedmondのMicrosoft CorporationからのWindows(登録商標)として知られるオペレーティングシステムのファミリーおよびそれらの関連するファイルルーティングシステムである。それの関連するファイルルーティングシステムソフトウェアをもつオペレーティングシステムソフトウェアの別の例は、Linux(登録商標)オペレーティングシステムおよびそれの関連するファイルルーティングシステムである。ファイルルーティングシステムは、不揮発性メモリおよび/または駆動ユニットに記憶され得、データを入力および出力することと、不揮発性メモリおよび/または駆動ユニット上にファイルを記憶することを含むメモリにデータを記憶することとをオペレーティングシステムが行うために関与する様々な行為を実行することをプロセッサに行わせることができる。
【0150】
[00167]詳細な説明のいくつかの部分は、コンピュータメモリ内のデータビットに対する動作のアルゴリズムおよび記号表現に関して提示され得る。これらのアルゴリズムの説明および表現は、データ処理分野の当業者によって、自身の仕事の本質を他の当業者に最も効果的に伝達するために使用される手段である。アルゴリズムは、本明細書では、および一般には、所望の結果をもたらす自己無撞着な一連の動作であると想到される。動作は、物理量の物理的操作を必要とするものである。通常、必ずしも必要とは限らないが、これらの量は、記憶、転送、結合、比較、および他の方法で操作されることが可能な電気信号または磁気信号の形態をとる。主に一般的な用法という理由で、これらの信号をビット、値、要素、記号、文字、項、数、などと呼ぶことが時々便利であることがわかっている。
【0151】
[00168]ただし、これらおよび同様の用語のすべては、適切な物理量に関連付けられるべきものであり、これらの量に適用される便利なラベルにすぎないことに留意されたい。別段にアライに記されていない限り、以下の説明から明らかなように、説明全体にわたって、「処理する」または「算出する」または「計算する」または「決定する」または「表示する」または「生成する」などの用語を利用する説明は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表されるデータを操作し、コンピュータシステムのメモリあるいはレジスタあるいは他のそのような情報記憶、送信またはディスプレイデバイス内の物理量として同様に表される他のデータに変換する、コンピュータシステムまたは同様の電子コンピューティングデバイスのアクションおよびプロセスを指すことを諒解されたい。
【0152】
[00169]本明細書で提示されるアルゴリズムおよびディスプレイは、任意の特定のコンピュータまたは他の装置に本質的に関係しない。様々な汎用システムは、本明細書の教示に従ってプログラムとともに使用され得るか、またはいくつかの例の方法を実施するためにより特殊な装置を構築するのに便利であるとがわかり得る。様々なこれらのシステムのための関与する構造が以下の説明から明らかになるであろう。さらに、技法は、任意の特定のプログラミング言語を参照しながら説明されず、したがって、様々な例は、様々なプログラミング言語を使用して実装され得る。
【0153】
[00170]様々な実装形態では、システムは、スタンドアロンデバイスとして動作するか、または他のシステムに接続(たとえば、ネットワーク化)され得る。ネットワーク化された展開では、システムは、クライアントサーバネットワーク環境におけるサーバまたはクライアントシステムの容量で、あるいはピアツーピア(または分散)ネットワーク環境におけるピアシステムとして動作し得る。
【0154】
[00171]システムは、サーバコンピュータ、クライアントコンピュータ、パーソナルコンピュータ(PC)、タブレットPC、ラップトップコンピュータ、セットトップボックス(STB)、携帯情報端末(PDA)、セルラー電話、iPhone(登録商標)、Blackberry、プロセッサ、電話、ウェブ機器、ネットワークルータ、スイッチまたはブリッジ、あるいはそのシステムによってとられるべきアクションを指定する命令のセット(連続またはそれ以外)を実行することが可能な任意のシステムであり得る。
【0155】
[00172]概して、本開示の実装形態を実装するために実行されるルーチンは、オペレーティングシステムの一部またはアプリケーション、構成要素、プログラム、オブジェクト、モジュールまたは「コンピュータプログラム」と呼ばれる一連の命令として実装され得る。コンピュータプログラムは、一般に、コンピュータ中の様々なメモリおよび記憶デバイス中の様々な時間における1つまたは複数の命令セットを含み、命令セットは、コンピュータ中の1つまたは複数の処理ユニットまたはプロセッサによって読み取られ、実行されたとき、コンピュータに、本開示の様々な態様に関与する要素を実行するために動作を実施させる。
【0156】
[00173]さらに、完全に機能するコンピュータおよびコンピュータシステムの文脈で例が説明されたが、様々な例が様々な形態のプログラムオブジェクトとして分散されることが可能であること、および分散に実際に影響を及ぼすために使用される特定のタイプの機械またはコンピュータ可読媒体にかかわらず本開示が等しく適用されることを、当業者は諒解されよう。
【0157】
[00174]機械可読記憶媒体、機械可読媒体、またはコンピュータ可読(記憶)媒体のさらなる例は、限定はしないが、特に、揮発性および不揮発性メモリデバイス、フロッピーおよび他のリムーバブルディスク、ハードディスクドライブ、光ディスク(たとえば、コンパクトディスク読取り専用メモリ(CD ROM)、デジタル多用途ディスク(DVD)など)などの記録可能タイプ媒体と、デジタルおよびアナログ通信リンクなどの送信タイプ媒体とを含む。
【0158】
[00175]いくつかの状況では、バイナリ1からバイナリ0への、またはその逆の状態の変化など、メモリデバイスの動作は、たとえば、物理的変換などの変換を含み得る。特定のタイプのメモリデバイスでは、そのような物理的変換は、異なる状態または物への物品の物理的変換を含み得る。たとえば、限定はしないが、いくつかのタイプのメモリデバイスの場合、状態の変化は、電荷の累積および蓄積、あるいは蓄積された電荷の解放を伴い得る。同様に、他のメモリデバイスでは、状態の変化は、磁気方位の物理的変化または変換あるいは結晶状からアモルファスへのまたはその逆の分子構造の物理的変化または変換を含み得る。上記は、メモリデバイスにおけるバイナリ1のバイナリ0へのまたはその逆への状態の変化が物理的変換などの変換を含み得る、すべての例の網羅的なリストであることを意図されない。むしろ、上記は例示的な例として意図される。
【0159】
[00176]記憶媒体は、一般に、非一時的であるか、または非一時的デバイスを含み得る。このコンテキストでは、非一時的記憶媒体は、有形であるデバイスを含み得、これは、デバイスが具体的な物理的形態を有することを意味するが、デバイスはそれの物理的状態を変化させ得る。したがって、たとえば、非一時的は、状態のこの変化にもかかわらず有形のままであるデバイスを指す。
【0160】
[00177]上記の説明および図面は、例示的なものであり、主題を開示される正確な形態に限定するものと解釈されるべきではない。上記の開示に照らして多くの修正形態および変形形態が可能であることを、当業者は諒解することができる。本開示の完全な理解を与えるために、多数の詳細が説明された。しかしながら、いくつかの事例では、説明を不明瞭にすることを回避するために、よく知られているまたは従来の詳細が説明されていない。
【0161】
[00178]本明細書で使用される「接続された」、「結合された」という用語またはそれの任意の変形態は、システムのモジュールに適用されるときに、2つまたはそれ以上の要素の間での直接的または間接的な任意の接続または結合を意味し、要素間の接続の結合は、物理的、論理的、またはそれらの任意の組合せであり得る。さらに、「本明細書で(herein)」、「上記で(above)」、「以下で(below)」という用語、および同様の意味の用語は、本明細書で使用されるとき、本明細書の任意の特定の部分ではなく、本明細書を全体として指すものとする。文脈が許せば、単数または複数を使用する、上記の発明を実施するための形態における用語は、それぞれ複数または単数をも含み得る。2つまたはそれ以上の項目のリストに関する「または(or)」という用語は、リスト中の項目のうちのいずれか、リスト中の項目のうちのすべて、またはリスト中の項目の任意の組合せという用語の解釈のうちのすべてをカバーする。
【0162】
[00179]開示される主題が、以下に示されていない他の形態および様式で具現され得ることを、当業者は諒解されよう。第1の(first)、第2の(second)、上部の(top)および下部の(bottom)などの関係を示す用語の使用は、もしあれば、1つのエンティティまたはアクションを、そのようなエンティティまたはアクションの間のいかなるそのような実際の関係または順序を必ずしも必要とするかまたは暗示することなしに、別のものと区別するためにのみ使用されることを理解されたい。
【0163】
[00180]プロセスまたはブロックが所与の順序で提示されているが、代替実装形態は、異なる順序で、ステップを有するルーチンを実施するか、またはブロックを有するシステムを採用し得、いくつかのプロセスまたはブロックは、代替または部分組合せを提供するために削除、移動、追加、再分割、置換、結合、および/または修正され得る。これらのプロセスまたはブロックの各々は、様々な異なる方法で実装され得る。また、プロセスまたはブロックは、時々連続して実施されているように示されているが、これらのプロセスまたはブロックは、代わりに並行して実施され得るか、または異なる時間に実施され得る。さらに、本明細書において言及された任意の数は例にすぎず、代替実装形態は、異なる値または範囲を採用し得る。
【0164】
[00181]本明細書で提供される開示の教示は、必ずしも上記で説明されたシステムに限らず他のシステムに適用され得る。上記で説明された様々な例の要素および行為は、さらなる例を与えるために組み合わされ得る。
【0165】
[00182]添付の出願書類中にリストされ得るものを含む上記で言及された任意の特許および出願および他の参考文献は、参照により本明細書に組み込まれる。本開示の態様は、必要な場合、本開示のまたさらなる例を与えるために上記で説明された様々な参考文献のシステム、機能、および概念を採用するために修正され得る。
【0166】
[00183]これらおよび他の変更は、上記の発明を実施するための形態に照らして本開示に行われ得る。上記の説明がいくつかの例について説明し、企図される最良の態様について説明するが、文章中でいかに詳述されているように見えたとしても、教示は多くの方法で実施され得る。システムの詳細は、本明細書で開示される主題によって依然として包含されるが、それの実装詳細において大幅に変動し得る。上記のように、本開示のいくつかの特徴または態様について説明するときに使用される特定の用語は、その用語が関連付けられる開示の任意の特性、特徴、または態様に制限されるように、その用語が本明細書で再定義されていることを暗示するものととられるべきではない。概して、以下の特許請求の範囲において使用される用語は、上記の発明を実施するための形態セクションがそのような用語を明示的に定義しない限り、本明細書において開示される実装形態に本開示を限定するものと解釈されるべきではない。したがって、本開示の実際の範囲は、開示される実装形態だけでなく、特許請求の範囲の下で本開示を実施または実装するすべての等価な方法をも包含する。
【0167】
[00184]本開示のいくつかの態様がいくつかの請求項の形式で以下に提示されているが、発明者は、任意の数の請求項の形式で本開示の様々な態様を企図する。米国特許法152条(f)の下で扱われることが意図されるあらゆる請求項は、「ための手段(means for)」という用語で始まることになる。したがって、出願人は、本開示の他の態様のためのそのような追加の請求項の形式を遂行するために本出願を出願した後に追加の請求項を追加する権利を留保する。
【0168】
[00185]本明細書において使用される用語は、概して、本開示のコンテキスト内で、および各用語が使用されるコンテキストにおいて、当技術分野におけるそれらの通常の意味を有する。本開示について説明するために使用されるいくつかの用語は、本開示の説明に関して実施者に追加の案内を与えるために上記でまたは本明細書の他の場所で説明される。便宜上、いくつかの用語は、たとえば、大文字化、イタリック体、および/または引用符を使用して強調され得る。強調の使用は、用語の範囲および意味に対して影響を及ぼさず、用語の範囲および意味は、それが強調されているか否かにかかわらず、同じコンテキストにおいて同じである。同じ要素が2つ以上の方法で説明され得ることが諒解されよう。
【0169】
[00186]したがって、代替的な文言および同義語が本明細書で説明される用語のうちのいずれか1つまたは複数について使用され得、また、用語が本明細書で詳述または説明されるか否かにいかなる特別な重要性も置かれるべきではない。いくつかの用語のための類義語が与えられる。1つまたは複数の類義語の詳述が他の類義語の使用を除外しない。本明細書で説明されるあらゆる用語の例を含む本明細書の任意の場所での例の使用は、例示的なものにすぎず、本開示またはあらゆる例示された用語の範囲および意味をさらに限定することは意図されない。同様に、本開示は、本明細書で与えられる様々な例に限定されない。
【0170】
[00187]本開示の範囲をさらに限定する意図なしに、本開示の例による機器(instrument)、装置、方法およびそれらの関係する結果の例が以下で与えられる。タイトルまたはサブタイトルが読者の便宜のために例中で使用され得、いかなる場合も、これは、本開示の範囲を限定するべきでないことに留意されたい。別段に定義されていない限り、本明細書で使用されるすべての技術的なおよび科学的な用語は、本開示が関係する当業者によって一般に理解されるものと同じ意味を有する。矛盾する場合、定義を含めて、本開示が優先することにする。
【0171】
[00188]本明細書のいくつかの部分は、情報に対する動作のアルゴリズムおよび記号表現に関して例について説明する。これらのアルゴリズムの説明および表現は、データ処理分野の当業者によって、自身の仕事の本質を他の当業者に効果的に伝達するために一般的に使用される。これらの動作は、機能的に、計算量的に、または論理的に説明されているが、コンピュータプログラムまたは等価な電気回路、マイクロコードなどによって実装されると理解される。さらに、一般性を失うことなく、モジュールとして動作のこれらの構成に言及することが時々好都合であることもわかっている。説明された動作およびそれらの関連するモジュールは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの任意の組合せで具現され得る。
【0172】
[00189]本明細書で説明されるステップ、動作、またはプロセスのいずれかは、単独でまたは他のデバイスと組み合わせて、1つまたは複数のハードウェアまたはソフトウェアモジュールを用いて実施または実装され得る。いくつかの例では、ソフトウェアモジュールは、コンピュータプログラムコードを含んでいるコンピュータ可読媒体を含むコンピュータプログラムオブジェクトを用いて実装され、これは、説明されたステップ、動作、またはプロセスのいずれかまたはすべてを実施するためのコンピュータプロセッサによって実行され得る。
【0173】
[00190]例はまた、本明細書における動作を実施するための装置に関係し得る。本装置は、関与する目的のために特別に構築され得、および/または、本装置は、コンピュータに記憶されたコンピュータプログラムによって選択的にアクティブ化または再構成される汎用コンピューティングデバイスを含み得る。そのようなコンピュータプログラムは、コンピュータシステムバスに結合され得る非一時的、有形コンピュータ可読記憶媒体、または電子命令を記憶するのに好適な任意のタイプの媒体に記憶され得る。さらに、本明細書で言及される任意のコンピューティングシステムは、単一のプロセッサを含み得るか、または増加された計算能力のための複数のプロセッサ設計を採用するアーキテクチャであり得る。
【0174】
[00191]例はまた、本明細書で説明されるコンピューティングプロセスによって生成されるオブジェクトに関係し得る。そのようなオブジェクトは、コンピューティングプロセスから生じた情報を含み得、ここで、情報は、非一時的、有形コンピュータ可読記憶媒体上に記憶され、コンピュータプログラムオブジェクトまたは本明細書で説明される他のデータ組合せの任意の実装形態を含み得る。
【0175】
[00192]本明細書において使用された文言は、主に、読みやすさおよび教示目的のために選択されており、それは、主題を画成または制限するために選択されていないことがある。したがって、本開示の範囲が、この詳細な説明によってではなく、本明細書に基づく出願上に公表された特許請求の範囲によって限定されることが意図される。したがって、例の開示は、以下の特許請求の範囲に記載されている主題の範囲の限定ではなく、説明のためのものであることが意図される。
【0176】
[00193]コンテキスト接続システムのためのシステムおよび構成要素の様々な実装形態の完全な理解を与えるために、詳細が前の説明で与えられた。しかしながら、上記で説明された実装形態がこれらの詳細なしに実施され得ることを、当業者は理解されよう。たとえば、回路、システム、ネットワーク、プロセス、および他の構成要素は、例を不要な詳細で不明瞭にしないためにブロック図の形態で構成要素として示され得る。他の事例では、例を不明瞭にすることを回避するために、よく知られている回路、プロセス、アルゴリズム、構造、および技法が不要な詳細なしに示され得る。
【0177】
[00194]個々の実装形態が、フローチャート、流れ図、データフロー図、構造図、またはブロック図として図示されるプロセスとして説明され得ることにも留意されたい。フローチャートは動作を連続プロセスとして説明することがあるが、動作の多くは並行してまたは同時に実施され得る。さらに、動作の順序は並べ替えられ得る。プロセスは、プロセスの動作が完了されるとき、終了されるが、含まれない追加のステップを有し得る。プロセスは、方法、関数、プロシージャ、サブルーチン、サブプログラムなどに対応し得る。プロセスが関数に対応するとき、それの終了は、呼出し関数またはメイン関数への関数の復帰に対応することができる。
【0178】
[00195]クライアントデバイス、ネットワークデバイス、および他のデバイスは、特に、1つまたは複数の集積回路、入力デバイス、出力デバイス、データ記憶デバイス、および/またはネットワークインターフェースを含むコンピューティングシステムであり得る。集積回路は、特に、たとえば、1つまたは複数のプロセッサ、揮発性メモリ、および/または不揮発性メモリを含むことができる。入力デバイスは、たとえば、キーボード、マウス、キーパッド、タッチインターフェース、マイクロフォン、カメラ、および/または他のタイプの入力デバイスを含むことができる。出力デバイスは、たとえば、ディスプレイスクリーン、スピーカー、触覚フィードバックシステム、プリンタ、および/または他のタイプの出力デバイスを含むことができる。ハードドライブまたはフラッシュメモリなどのデータ記憶デバイスは、コンピューティングデバイスが、一時的にまたは永続的にデータを記憶することを可能にすることができる。ワイヤレスまたはワイヤードインターフェースなどのネットワークインターフェースは、コンピューティングデバイスがネットワークと通信することを可能にすることができる。コンピューティングデバイスの例は、デスクトップコンピュータ、ラップトップコンピュータ、サーバコンピュータ、ハンドヘルドコンピュータ、タブレット、スマートフォン、携帯情報端末、デジタルホームアシスタント、ならびにコンピューティングデバイスが組み込まれた機械および装置を含む。
【0179】
[00196]「コンピュータ可読媒体」という用語は、限定はしないが、ポータブルまたは非ポータブル記憶デバイス、光記憶デバイス、ならびに(1つまたは複数の)命令および/またはデータを記憶、含有、または搬送することが可能な様々な他の媒体を含む。コンピュータ可読媒体は、データがそこに記憶され得る非一時的媒体を含み得、それは、ワイヤレスにまたはワイヤード接続を介して伝搬する搬送波および/または一時的電子信号を含まない。非一時的媒体の例は、限定はしないが、磁気ディスクまたはテープ、コンパクトディスク(CD)またはデジタル多用途ディスク(DVD)などの光記憶媒体、フラッシュメモリ、メモリまたはメモリデバイスを含み得る。コンピュータ可読媒体は、プロシージャ、関数、サブプログラム、プログラム、ルーチン、サブルーチン、モジュール、ソフトウェアパッケージ、クラス、あるいは命令、データ構造、またはプログラムステートメントの任意の組合せを表現し得る、コードおよび/または機械実行可能命令をその上に記憶していることがある。コードセグメントは、情報、データ、引数、パラメータ、またはメモリコンテンツをパスおよび/または受信することによって、別のコードセグメントまたはハードウェア回路に結合され得る。情報、引数、パラメータ、データなどは、メモリ共有、メッセージパッシング、トークンパッシング、ネットワーク送信などを含む、任意の好適な手段を介してパス、フォワーディング、または送信され得る。
【0180】
[00197]上記で説明された様々な例は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組合せによって実装され得る。ソフトウェア、ファームウェア、ミドルウェアまたはマイクロコードで実装されるとき、必要なタスクを実施するためのプログラムコードまたはコードセグメント(たとえば、コンピュータプログラム製品)は、コンピュータ可読または機械可読記憶媒体(たとえば、プログラムコードまたはコードセグメントを記憶するための媒体)に記憶され得る。集積回路中に実装される(1つまたは複数の)プロセッサが、必要なタスクを実施し得る。
【0181】
[00198]プログラムコードは、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、用途集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の等価な集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサを含み得るプロセッサによって実行され得る。そのようなプロセッサは、本開示において説明される技法のうちのいずれかを実施するように構成され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサは、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、または、任意の他のそのような構成としても実装され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、上記の構造の任意の組合せ、または、本明細書で説明される技法の実装に好適な任意の他の構造もしくは装置のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明される機能は、中断されたデータベース更新システムを実装するために構成された専用のソフトウェアモジュールまたはハードウェアモジュール内に与えられ得る。
【0182】
[00199]構成要素が、ある動作を実施する「ように構成されて」いるものとして説明される場合、そのような構成は、たとえば、動作を実施するように電子回路または他のハードウェアを設計することによって、動作を実施するようにプログラマブル電子回路(たとえば、マイクロプロセッサ、または他の好適な電子回路)をプログラムすることによって、またはそれらの任意の組合せによって、達成され得る。
【0183】
[00200]本明細書で開示される実装形態に関連して説明される、様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、ファームウェア、またはそれらの組合せとして実装され得る。ハードウェアとソフトウェアとのこの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップが、概して、それらの機能に関して上記で説明された。そのような機能がハードウェアとして実装されるのか、ソフトウェアとして実装されるのかは、特定の適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
【0184】
[00201]本技術の上記の詳細な説明は、例示および説明のために提示された。それは、網羅的なものでも、開示された形態そのものに本技術を限定するものでもない。上記の教示に照らして、多くの修正形態および変形形態が可能である。説明された例は、本技術の原理およびそれの実際的適用例について最良に説明し、他の当業者が、様々な例において、企図された特定の用途に好適であるような様々な修正を加えて本技術を最良に利用することを可能にするために、選定された。本技術の範囲が特許請求の範囲によって定義されることが意図される。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
イベントに基づく応答を実行するように構成されたテンプレートにアクセスすることと、
ユーザデバイスとの双方向通信セッションを促進することと、
前記テンプレートに対応するイベントトリガを識別するために前記双方向通信セッションのデータを処理することと、
前記イベントトリガに関連するサーバーレスクラウドベース機能の実行を要求することと、
前記イベントトリガに関連する前記サーバーレスクラウドベース機能の1つまたは複数の出力を前記双方向通信セッションに組み込むことと
を備える、コンピュータ実装方法。
[C2]
前記双方向通信セッションの終了に基づいて前記サーバーレスクラウドベース機能の実行を終了すること
をさらに備える、C1に記載のコンピュータ実装方法。
[C3]
前記サーバーレスクラウドベース機能に対応する機能終了トリガを識別するために前記双方向通信セッションのデータを処理することと、
前記機能終了トリガに基づいて前記サーバーレスクラウドベース機能を終了することとをさらに備える、C1に記載のコンピュータ実装方法。
[C4]
前記サーバーレスクラウドベース機能を要求することが、前記サーバーレスクラウドベース機能に関連するコードを送信することを含み、ここにおいて、前記コードがサーバレスプロバイダにおいて受信されたとき、前記サーバレスプロバイダが、前記サーバーレスクラウドベース機能の前記1つまたは複数の出力を生成するために前記コードを実行する、C1に記載のコンピュータ実装方法。
[C5]
前記イベントトリガに関連する前記サーバーレスクラウドベース機能を要求することは、 要求を送信すること、ここにおいて、前記要求がサービスとしての機能プラットフォームにおいて受信されたとき、前記サービスとしての機能プラットフォームが前記1つまたは複数の出力を生成する、
をさらに備える、C1に記載のコンピュータ実装方法。
[C6]
前記テンプレートが、前記双方向通信セッションとエージェントに関連する端末デバイスとに関連するコンタクトセンターについてのコンタクトセンターデータを含む、C1に記載のコンピュータ実装方法。
[C7]
クライアントシステムに関連する構成設定を受信することと、前記構成設定が、前記テンプレートを含む1つまたは複数のテンプレートと、前記1つまたは複数のテンプレートに対応する1つまたは複数のイベントトリガとを選択する、
前記1つまたは複数のテンプレートを、前記クライアントシステムに関連する双方向通信セッションに自動的に関連付けることと
をさらに備える、C1に記載のコンピュータ実装方法。
[C8]
エージェントに関連する端末デバイスへの前記ユーザデバイスの接続を促進することをさらに備え、
ここにおいて、前記イベントトリガが、自動エージェントから人間エージェントへの切替えを示す通信データであり、ここにおいて、前記1つまたは複数の出力が、前記エージェントと前記端末デバイスとを示す、C1に記載のコンピュータ実装方法。
[C9]
メモリと、
前記メモリに結合された1つまたは複数のプロセッサと
を備えるシステムであって、前記1つまたは複数のプロセッサが、
イベントに基づく応答を実行するように構成されたテンプレートにアクセスすることと、
ユーザデバイスとの双方向通信セッションを促進することと、
前記テンプレートに対応するイベントトリガを識別するために前記双方向通信セッションのデータを処理することと、
前記イベントトリガに関連するサーバーレスクラウドベース機能の実行を要求することと、
前記イベントトリガに関連する前記サーバーレスクラウドベース機能の1つまたは複数の出力を前記双方向通信セッションに組み込むことと
を備える動作を実施するように構成された、システム。
[C10]
前記双方向通信セッションの終了に基づいて前記サーバーレスクラウドベース機能の実行を終了すること
をさらに備える、C9に記載のシステム。
[C11]
前記サーバーレスクラウドベース機能に対応する機能終了トリガを識別するために前記双方向通信セッションのデータを処理することと、
前記機能終了トリガに基づいて前記サーバーレスクラウドベース機能を終了することとをさらに備える、C9に記載のシステム。
[C12]
前記サーバーレスクラウドベース機能を要求することが、前記サーバーレスクラウドベース機能に関連するコードを送信することを含み、ここにおいて、前記コードがサーバレスプロバイダにおいて受信されたとき、前記サーバレスプロバイダが、前記サーバーレスクラウドベース機能の前記1つまたは複数の出力を生成するために前記コードを実行する、C9に記載のシステム。
[C13]
前記イベントトリガに関連する前記サーバーレスクラウドベース機能を要求することは、 要求を送信すること、ここにおいて、前記要求がサービスとしての機能プラットフォームにおいて受信されたとき、前記サービスとしての機能プラットフォームが前記1つまたは複数の出力を生成する、
をさらに備える、C9に記載のシステム。
[C14]
前記テンプレートが、前記双方向通信セッションとエージェントに関連する端末デバイスとに関連するコンタクトセンターについてのコンタクトセンターデータを含む、C9に記載のシステム。
[C15]
クライアントシステムに関連する構成設定を受信することと、前記構成設定が、前記テンプレートを含む1つまたは複数のテンプレートと、前記1つまたは複数のテンプレートに対応する1つまたは複数のイベントトリガとを選択する、
前記1つまたは複数のテンプレートを、前記クライアントシステムに関連する双方向通信セッションに自動的に関連付けることと
をさらに備える、C9に記載のシステム。
[C16]
エージェントに関連する端末デバイスへの前記ユーザデバイスの接続を促進することをさらに備え、
ここにおいて、前記イベントトリガが、自動エージェントから人間エージェントへの切替えを示す通信データであり、ここにおいて、前記1つまたは複数の出力が、前記エージェントと前記端末デバイスとを示す、C9に記載のシステム。
[C17]
デバイスの1つまたは複数のプロセッサによって実行されたとき、前記デバイスに、 イベントに基づく応答を実行するように構成されたテンプレートにアクセスすることと、
ユーザデバイスとの双方向通信セッションを促進することと、
前記テンプレートに対応するイベントトリガを識別するために前記双方向通信セッションのデータを処理することと、
前記イベントトリガに関連するサーバーレスクラウドベース機能の実行を要求することと、
前記イベントトリガに関連する前記サーバーレスクラウドベース機能の1つまたは複数の出力を前記双方向通信セッションに組み込むことと
を備える動作を実施させる命令を備える、非一時的コンピュータ可読媒体。
[C18]
前記命令が、さらに、前記デバイスに、
前記双方向通信セッションの終了に基づいて前記サーバーレスクラウドベース機能の実行を終了すること
を備える動作を実施させる、C17に記載の非一時的コンピュータ可読媒体。
[C19]
前記命令が、さらに、前記デバイスに、
前記サーバーレスクラウドベース機能に対応する機能終了トリガを識別するために前記双方向通信セッションのデータを処理することと、
前記機能終了トリガに基づいて前記サーバーレスクラウドベース機能を終了することとを備える動作を実施させる、C17に記載の非一時的コンピュータ可読媒体。
[C20]
前記サーバーレスクラウドベース機能を要求することが、前記サーバーレスクラウドベース機能に関連するコードを送信することを含み、ここにおいて、前記コードがサーバレスプロバイダにおいて受信されたとき、前記サーバレスプロバイダが、前記サーバーレスクラウドベース機能の前記1つまたは複数の出力を生成するために前記コードを実行する、C17に記載の非一時的コンピュータ可読媒体。