IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ビザ インターナショナル サービス アソシエーションの特許一覧

<>
  • 特許-自動化チャットボット処理 図1
  • 特許-自動化チャットボット処理 図2
  • 特許-自動化チャットボット処理 図3
  • 特許-自動化チャットボット処理 図4A
  • 特許-自動化チャットボット処理 図4B
  • 特許-自動化チャットボット処理 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-20
(45)【発行日】2023-12-28
(54)【発明の名称】自動化チャットボット処理
(51)【国際特許分類】
   H04L 51/02 20220101AFI20231221BHJP
   G10L 15/00 20130101ALI20231221BHJP
   G06F 3/16 20060101ALI20231221BHJP
【FI】
H04L51/02
G10L15/00 200Z
G06F3/16 650
【請求項の数】 19
(21)【出願番号】P 2021523945
(86)(22)【出願日】2019-11-05
(65)【公表番号】
(43)【公表日】2022-01-17
(86)【国際出願番号】 US2019059917
(87)【国際公開番号】W WO2020097112
(87)【国際公開日】2020-05-14
【審査請求日】2022-08-16
(31)【優先権主張番号】16/182,396
(32)【優先日】2018-11-06
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】505468864
【氏名又は名称】ビザ インターナショナル サービス アソシエーション
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】マノハラン、ヘマンス クマール
(72)【発明者】
【氏名】テリス、メロイ ベネディクト
【審査官】前田 健人
(56)【参考文献】
【文献】国際公開第2018/190883(WO,A1)
【文献】特開2010-003288(JP,A)
【文献】中国特許出願公開第106844482(CN,A)
【文献】特開2017-142805(JP,A)
【文献】米国特許出願公開第2015/0186156(US,A1)
【文献】米国特許出願公開第2017/0288943(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 51/00
G10L 15/00
G06F 3/16
(57)【特許請求の範囲】
【請求項1】
コンピューターに実装された方法であって、
チャットボットプラットフォームから、ユーザーによって提供される会話コマンドを取得することであって、前記会話コマンドがタスクの実行を指示する、取得することと、
前記会話コマンドが、前記タスクの実行のためのタスク固有のボットを指定するかどうかを判定することと、
前記会話コマンドが前記タスクの実行のための単一のタスク固有のボットを判定できないと判定した場合、前記会話コマンドの意図を分析することと、
前記会話コマンドの前記意図が複数のアクションを示すことを判定することと、
前記会話コマンドの前記意図およびボットレジストリに基づいて、前記タスクに関連付けられた複数のアクションの実行のための2つ以上のタスク固有のボットを決定することであって、前記ボットレジストリが、前記2つ以上のタスク固有のボット、および前記2つ以上のタスク固有のボットのそれぞれに関連付けられた機能をリスト化し、リアルタイムの入札プロセスを用いて、前記タスクに関連付けられた複数のアクションのうちの1つに基づいて複数のタスクを実行することが可能な複数のタスクボットから、2つ以上のタスク固有のボットのうちの少なくとも1つが選択される、決定することと、
前記タスクの実行のための前記決定された2つ以上のタスク固有のボットに前記会話コマンドまたは前記会話コマンドの一部を提供することと、を含む、方法。
【請求項2】
前記2つ以上のタスク固有のボットが、それぞれのタスク固有のボットの開発者によって前記ボットレジストリに追加される、請求項1に記載の方法。
【請求項3】
前記会話コマンドの前記意図を分析することが、意図-アクション地図ストア内の前記会話コマンドの前記意図を参照することを含む、請求項1に記載の方法。
【請求項4】
前記ボットレジストリが、ボット交換で実施される相互作用に基づいて、前記2つ以上のタスク固有のボットをさらにリスト化する、請求項1に記載の方法。
【請求項5】
前記ボットレジストリが、前記2つ以上のタスク固有のボットのそれぞれに関連付けられた相互作用結果をさらに含み、前記相互作用結果が、ボット交換で実施される、請求項1に記載の方法。
【請求項6】
前記決定された2つ以上のタスク固有のボットが、前記タスクの実行のためのボット連鎖を実行する、請求項1に記載の方法。
【請求項7】
ボット連鎖がボットポリシーサーバーによって管理される、請求項に記載の方法。
【請求項8】
前記決定された2つ以上のタスク固有のボットのうちの少なくとも一つが、値処理ボットである、請求項1に記載の方法。
【請求項9】
前記会話コマンドが、前記ユーザーによって音声コマンドとして提供される、請求項1に記載の方法。
【請求項10】
コンピューティングシステムであって、
一つまたは複数のプロセッサーと、
前記一つまたは複数のプロセッサーによって実行されるとき、前記一つまたは複数のプロセッサーに、
チャットボットプラットフォームから、ユーザーによって提供される会話コマンドを取得することであって、前記会話コマンドがタスクの実行を指示する、取得することと、
前記会話コマンドが、前記タスクの実行のためのタスク固有のボットを指定するかどうかを判定することと、
前記会話コマンドが前記タスクの実行のための単一のタスク固有のボットを判定できないと判定した場合、前記会話コマンドの意図を分析することと、
前記会話コマンドの前記意図が複数のアクションを示すことを判定することと、
前記会話コマンドの前記意図およびボットレジストリに基づいて、前記タスクに関連付けられた複数のアクションの実行のための2つ以上のタスク固有のボットを決定することであって、前記ボットレジストリが、前記2つ以上のタスク固有のボット、および前記2つ以上のタスク固有のボットのそれぞれに関連付けられた機能をリスト化し、リアルタイムの入札プロセスを用いて、前記タスクに関連付けられた複数のアクションのうちの1つに基づいて複数のタスクを実行することが可能な複数のタスクボットから、2つ以上のタスク固有のボットのうちの少なくとも1つが選択される、決定することと、
前記タスクの実行のための前記決定された2つ以上のタスク固有のボットに前記会話コマンドまたは前記会話コマンドの一部を提供することと、を実行させる指示を格納する、非一時的コンピューター可読メモリと、を含む、コンピューティングシステム。
【請求項11】
前記2つ以上のタスク固有のボットが、前記2つ以上のタスク固有のボット内のそれぞれのタスク固有のボットの開発者によって、前記ボットレジストリに追加される、請求項10に記載のコンピューティングシステム。
【請求項12】
前記会話コマンドの前記意図を分析することが、意図-アクション地図ストア内の前記会話コマンドの前記意図を参照することを含む、請求項10に記載のコンピューティングシステム。
【請求項13】
前記ボットレジストリが、ボット交換で実施される相互作用に基づいて、前記2つ以上のタスク固有のボットをさらにリスト化する、請求項10に記載のコンピューティングシステム。
【請求項14】
前記ボットレジストリが、前記2つ以上のタスク固有のボットのそれぞれに関連付けられた相互作用結果をさらに含み、前記相互作用結果が、ボット交換で実施される、請求項10に記載のコンピューティングシステム。
【請求項15】
前記決定された2つ以上のタスク固有のボットが、前記タスクの実行のためのボット連鎖を実行する、請求項10に記載のコンピューティングシステム。
【請求項16】
ボットポリシーサーバーがボット連鎖を管理する、請求項15に記載のコンピューティングシステム。
【請求項17】
前記決定された2つ以上のタスク固有のボットのうちの少なくとも一つが、値処理ボットである、請求項10に記載のコンピューティングシステム。
【請求項18】
前記会話コマンドが、前記ユーザーによって音声コマンドとして提供される、請求項10に記載のコンピューティングシステム。
【請求項19】
少なくとも1つの前記2つ以上のタスク固有のボットは、前記複数のタスクボットのうちの複数のタスクボットのセットから選択され、前記複数のタスクボットのセットのうちの前記複数のタスクボットは、同じアクションに基づいてタスクを実行可能である、請求項1に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の参照
本出願は、2018年11月6日に出願された米国特許出願第16/182,396号の優先権を主張するPCT出願であり、その全体は参照により本明細書に組み込まれる。
【背景技術】
【0002】
今日、多数の異なる仮想アシスタントまたはチャットボットプラットフォームが使用されている(例えば、Amazon(登録商標)のAlexa(登録商標)、Google(登録商標)のGoogle Assistant、Microsoft(登録商標)のCortana(登録商標)など)。これらのチャットボットプラットフォームのユーザーは、通常、コマンドを発行することによって、さまざまなタスクを実行するように、自分が選択したチャットボットプラットフォームに指示することができる。そのチャットボットプラットフォーム用に第三者の開発者が特別に開発したタスク固有のボットを使用して、一部のコマンドを実行する場合がある。例えば、ユーザーは、タスク固有のボット(例えば、そのチャットボットプラットフォーム用に開発されたUberボット)によって行われるライドシェアを、チャットボットプラットフォームに予約するよう要求し得る。
【0003】
しかし、複数の異なるチャットボットプラットフォームが存在するため、タスク固有のボットのこれらの第三者の開発者には多大な負担がかかる。チャットボットプラットフォームは、異なるライブラリ、標準、およびプロトコルに関連付けられている可能性があるため、タスク固有のボットを複数のチャットボットプラットフォームに統合しようとするタスク固有のボットの第三者の開発者は、タスク固有のボットを各チャットボットプラットフォームに合わせてカスタマイズする必要がある。さらに、複数のチャットボットプラットフォームがあることで、開発者が他の開発者のボットの機能を、自分のタスク固有のボットに統合することが困難になる。
【0004】
従って、タスク固有のボットをさまざまなチャットボットプラットフォームに適合させることを容易にする一方で、異なるタスク固有のボットがユーザーによって発行されたタスクを実行するために相互に調整しやすくする方法が必要である。
【発明の概要】
【0005】
本開示は、異なるチャットボットプラットフォームのバックエンドとして使用することができるクロスプラットフォームボットの方法とコンピューティングシステムを企図する。このクロスプラットフォームボットは、さまざまなチャットボットプラットフォームからユーザー入力を受信し、ユーザーの指示を実行するのに使用する適切なタスク固有のボットを決定することができる。クロスプラットフォームボットは、独自の標準およびプロトコルに適合したタスク固有のボットの自身のセットから選択し、そのため、タスク固有のボットの開発者は、タスク固有のボットをクロスプラットフォームボットに統合するだけで、全ての異なるチャットボットプラットフォーム全体で使用できるようにすることができる。
【0006】
いくつかの実施形態では、クロスプラットフォームボットは、適切なセキュリティ/認証メカニズムとともに、タスク固有のボットの開発者が従うべき標準コマンドインターフェイスを含み得る。いくつかの実施形態では、クロスプラットフォームボットは、利用可能な全てのタスク固有のボットのリストであるボットレジストリを含み得る。開発者がクロスプラットフォームボットと連動するタスク固有のボットを作成すると、開発者はタスク固有のボットをボットレジストリに登録できる。ボットレジストリは、登録済みの全てのタスク固有のボット、および各タスク固有のボットの能力と目的について、クロスプラットフォームボットに通知する。
【0007】
さまざまなチャットボットプラットフォームで標準化されたクロスプラットフォームボットインターフェイスを有し、各チャットボットプラットフォームに対する「脳」としての役割を果たすことが、タスク固有のボット開発者に上述の利益を提供すると同時に、エンドユーザーが自身の精通度と選択のチャットボットプラットフォームを引き続き使用することを可能にすることが企図される。特に、ユーザーは、クロスプラットフォームボットにコマンドを転送する、自分が選択したチャットボットプラットフォームに会話コマンドを発行することができる。一部の事例では、ユーザーの会話コマンドは、明確な指示を提供し、それに対して明確に識別可能なコンテキストを有し得る(例えば、使用する望ましいタスク固有のボットがユーザーのコマンドから示されるか、または明白であり、タスクおよびそれに関連するパラメーターも示されるか、または明白であり得る)。いくつかの実施形態では、クロスプラットフォームボットは、コマンドを受信してもよく、(例えば、コマンドを会話コンテキストストアと比較することによって)所望のタスク固有のボットを迅速に決定し、その後、コマンドを所望のタスク固有のボットに転送することができる。
【0008】
しかし、他の事例では、ユーザーの会話コマンドには、それに対する明確なコンテキストがない場合がある。いくつかの実施形態では、クロスプラットフォームボットは、ユーザーの意図を分析し決定するために使用できる意図分析器モジュールを有し得る。ユーザーのコマンドの根底にある意図、およびその意図に関連付けられたタスク/アクションが決定されると、意図分析器は、ユーザーが意図するアクションを実行する一つまたは複数のタスク固有のボットを見つけるために、ボットレジストリを検索し得る。適切なタスク固有のボットが特定されると、ユーザーのコマンドをそれらのタスク固有のボットに転送することができる。
【0009】
いくつかの実施形態では、同様の目的を有し、同じ意図を果たすことができる、いくつかのタスク固有のボットが存在し得る。例えば、ユーザーは、タクシーを予約することを望む場合があり「タクシーを予約する」という意図を果たすことができる複数のタスク固有のボットがあり得る。オンライン広告システムと同様に、関連性と収益でボットを動的に評価するのを助けるリアルタイム入札メカニズムを含む、ボットレジストリに関連付けられたボット交換が存在し得る。動的オークションメカニズム(相互作用メカニズムの一例)で勝つタスク固有のボットは、その後、優先順位を得て、その特定の消費者セッションで提示される。関連性は、入札、位置情報、顧客フィードバックなどのいくつかの要因に基づいてもよい。従って、ボット交換によって、関連するタスク固有のボットの開発者は、自分のタスク固有のボットに対するユーザーへのエクスポージャーを増やすために、オークションにおいて値をつけることができる。
【0010】
一部の事例では、ユーザーによって提供される指示の実行は、二つ以上のタスク固有のボットの複合機能を必要とし得る。いくつかの実施形態では、クロスプラットフォームボットは、タスク固有のボットが、ボットの「連鎖化」、またはさまざまなマッシュアップシナリオにおける異なるタスク固有のボットからの機能の組み合わせを実行することを可能にする。連鎖の例として、ユーザーがレストランの予約を希望するケースを考えてみる。レストラン予約タスク固有のボット(Zomatoなど)は、レストランに関連付けられている「オファー」をユーザーに提供するための、クーポンタスク固有のボット(Groupon/Nearbuyなど)に連鎖することができる。
【0011】
いくつかの実施形態では、チャットボットプラットフォームから、ユーザーによって提供される会話コマンドを取得することであって、会話コマンドがタスクの実行を指示する、取得することと、会話コマンドが、タスクの実行のためのタスク固有のボットを指定するコンテキストを有するかどうかを判定することと、会話コマンドがコンテキストを有しないと判定した場合、会話コマンドの意図を分析することと、会話コマンドの意図およびボットレジストリに基づいて、タスクの実行のための一つまたは複数のタスク固有のボットを決定することであって、ボットレジストリが、一つまたは複数のタスク固有のボット、および一つまたは複数のタスク固有のボットのそれぞれに関連付けられた機能をリスト化する、決定することと、タスクの実行のための決定された一つまたは複数のタスク固有のボットに会話コマンドを提供することとを含む、方法およびコンピューティングシステムが意図されている。
【0012】
さまざまな実施形態において、一つまたは複数のタスク固有のボットが、それぞれのタスク固有のボットの開発者によってボットレジストリに追加される。さまざまな実施形態では、会話コマンドの意図を分析することが、会話コマンドの意図を決定するために、会話コマンドを神経言語プログラミング(NLP(Neuro-Linguistic Programming))プラットフォームに送信することを含む。さまざまな実施形態において、会話コマンドの意図を分析することが、意図-アクション地図ストア内の会話コマンドの意図を参照することを含む。さまざまな実施形態において、ボットレジストリが、ボット交換で実施されるオークションなどの相互作用に基づいて、一つまたは複数のタスク固有のボットをさらにリスト化する。さまざまな実施形態において、ボットレジストリが、一つまたは複数のタスク固有のボットに関連付けられたオークション結果をさらに含み、オークション結果が、ボット交換で実施される。さまざまな実施形態において、決定された一つまたは複数のタスク固有のボットが、タスクの実行のためのボット連鎖を実行する。さまざまな実施形態において、決定された一つまたは複数のタスク固有のボットのうちの少なくとも一つが、値処理ボットである。さまざまな実施形態において、会話コマンドは、ユーザーによって音声コマンドとして提供される。
【0013】
これらの実施形態および他の実施形態について、以下に詳細に記載する。
【図面の簡単な説明】
【0014】
図1図1は、本開示の実施形態による、デジタルアシスタントプラットフォームを示すブロック図である。
【0015】
図2図2は、本開示の実施形態による、デジタルアシスタントプラットフォームのプロセスを示すブロック図である。
【0016】
図3図3は、本開示の実施形態による、デジタルアシスタントプラットフォームのブロック図である。プロセスフローが図3に示される。
【0017】
図4A図4Aは、本開示の実施形態による、デジタルアシスタントプラットフォームのプロセスを示すブロック図である。
【0018】
図4B図4Bは、本開示の実施形態による、デジタルアシスタントプラットフォームのプロセスを示すブロック図である。
【0019】
図5図5は、本開示の実施形態による、ユーザーが見たチャットボットのユーザーインターフェイスの図である。
【発明を実施するための形態】
【0020】
フライトの予約、タクシーの予約、シネマチケットの予約などの一般的なタスクに関する一般的な消費者体験は、モバイルデバイスまたはスマートフォンで関連アプリケーションを導入することである。これは消費者にとって非常に異種の体験である。なぜなら、アプリケーションは通常、目的が狭く、消費者はモバイルデバイス上に多数のアプリケーションを保持することを余儀なくされるからである。消費者は、これら全ての機能をインテリジェントに組み合わせた、いくつかの「全てを実行」アプリケーションや仮想アシスタントを好む。
【0021】
従って、技術プラットフォームプロバイダーは、個人のためにタスクまたはサービスを実施できる任意のソフトウェアエージェントを含む、仮想アシスタントまたはチャットボットプラットフォームを開発してきた。チャットボットに特定のタスクを完了するように指示することは、通常、モバイルデバイス上で追加のインストールを行う必要はない。これらのチャットボットプラットフォームのユーザーは、コマンドを発行することによって、さまざまなタスクを実行するように、自分が選択したチャットボットプラットフォームに簡単に指示することができる。チャットボットは、音声入力(例えば、スピーチ)またはテキスト入力(例えば、キーボードまたはタッチスクリーンを使用してタイプ入力されるコマンド)などの任意の許容可能な形態の入力を介して、ユーザーからコマンドを受信し得る。そのようなチャットボットの例としては、Apple(登録商標)のSiri(登録商標)、GoogleのAssistant、AmazonのAlexa、MicrosoftのCortanaなどがある。
【0022】
チャットボットの機能を拡張するために、チャットボットプラットフォームは、第三者の開発者が、個人に対して非常に特定のタスクまたはサービスを実行するために使用できるタスク固有のボットを開発できるようにし得る。例えば、レストランは、チャットボットプラットフォームのユーザーが食品を注文し、その食品を自宅に直接配送することを可能にする、タスク固有のボットを開発し得る。多くのチャットボットは、ユーザーが閲覧および検索できるボットディレクトリを提供する。一部のチャットボットでは、ボット開発者がアクションフレーズに基づいてボットをトリガーするよう設定する方法を提供している。
【0023】
しかし、複数の異なるチャットボットプラットフォームが存在するため、これらのボット開発者は、タスク固有のボットを各チャットボットプラットフォームの標準とプロトコルに適合させる必要があるため、多大な負担を負いる。チャットボットプラットフォームごとにカスタム統合を構築することは、メンテナンス上の問題になる。ボット開発者の仕事は、全てのチャットボットが従うべき標準プロトコルと規則があれば、より簡単になる。さらに、全ての開発者がタスク固有のボットを既存のチャットボットプラットフォームに統合するわけではないため、開発者が他の開発者のボットの機能を自分のタスク固有のボットに統合することや、タスク固有のボットを他のタスク固有のボットと連携させることが困難になる。
【0024】
本開示では、異なるチャットボットプラットフォームのバックエンドとしての役割を果たすデジタルアシスタントプラットフォームについて、方法およびコンピューティングシステムが提案される。このデジタルアシスタントプラットフォームには、さまざまなチャットボットプラットフォームからユーザー入力を受信し、ユーザーの指示を実行するために使用する適切なタスク固有のボットを決定することができる、クロスプラットフォームボット(例えば、チャットベースまたは音声ベースのデジタルアシスタント)を含めることができる。デジタルアシスタントプラットフォームは、各タスク固有のボットが対応または処理できるアクション/サービス/タスクを迅速に特定することができる。クロスプラットフォームボットは、独自の標準およびプロトコルに適合したタスク固有のボットの自身のセットから選択することができ、そのため、タスク固有のボットの開発者は、タスク固有のボットをクロスプラットフォームボットに統合するだけで、全ての異なるチャットボットプラットフォーム全体で使用できるようにすることができる。従って、そうでなければさまざまなプラットフォームにわたって分散するであろうさまざまなボットは、このデジタルアシスタントプラットフォームによって一様な様式で一緒にブリッジされる。さらに、全ての開発者がデジタルアシスタントプラットフォーム用にタスク固有のボットをカスタマイズするだけで済むため、開発者は、利用可能なタスク固有のボットを全て追跡し、他のタスク固有のボットの機能を自身のタスク固有のボットに統合しやすくなる。
【0025】
本発明のいくつかの実施形態の詳細を論じるのに先立ち、一部の用語についての記載が、さまざまな実施形態を理解するのに役立つことができる。
【0026】
「プロセッサー」は、任意の好適な単数または複数のデータ計算デバイスを指すことができる。プロセッサーは、所望の機能を達成するために共に動作する、一つまたは複数のマイクロプロセッサーを含むことができる。プロセッサーは、ユーザーおよび/またはシステム生成要求を実行するプログラム構成要素を実行するのに適切な、少なくとも一つの高速データプロセッサーを含むCPUを含んでもよい。CPUは、AMD(登録商標)のアスロン、デュロン、および/もしくはオプテロン、IBM(登録商標)および/もしくはモトローラ(登録商標)のPowerPC、IBM(登録商標)およびソニー(登録商標)のセルプロセッサー、インテル(登録商標)のセレロン(登録商標)、アイテニウム、ペンティアム(登録商標)、ジーオン(登録商標)、および/もしくはXScale、ならびに/または同様のプロセッサーなどのマイクロプロセッサーであり得る。
【0027】
「メモリ」は、電子データを保存できる、任意の好適な単数または複数のデバイスであり得る。好適なメモリとして、所望の方法を実施するためにプロセッサーによって実行できる命令を保存する、非一時的コンピューター可読媒体が含まれ得る。メモリの例として、一つまたは複数のメモリチップ、ディスクドライブなどが含まれ得る。こうしたメモリは、任意の好適な電気的、光学的、および/または磁気的な動作モードを使用して動作することができる。
【0028】
「アプリケーション」は、タスクを完了するためにプロセッサーによって実行可能なコンピューター可読媒体(例えば、メモリ素子またはセキュア素子)に保存されるコンピューターコードまたはその他のデータであり得る。
【0029】
「アプリケーションプログラミングインターフェイス」または「API」は、システム構成要素がどのように相互作用するかを指定するルーチン、プロトコル、およびツールのセットであり得る。APIは、システムのさまざまな構成要素が、認識可能な形式で互いに生成、送信、および受信することを可能にし得る。APIは、デバイス上に事前構成されてもよく、インストールされてもよく、またはプログラムされてもよく、指定された動作およびネットワーキングコマンドを実行するようにデバイスに指示し得る。APIは、アプリケーション内に格納された特定の命令またはコードへの呼び出しを開始することによって、サービスの要求に応じてもよい。
【0030】
「チャットボット」または「チャットボットプラットフォーム」は、個人に対してタスクまたはサービスを実施できる任意のソフトウェアエージェントであり得る。チャットボットは、ユーザーからの入力(例えば、コマンド、スピーチまたはテキストの形式で)を受信し、ユーザーに出力(例えば、スピーチまたはテキストの形式での通信)を提供するために、個人と直接相互作用し得る。本明細書で論じるように、さまざまなチャットボットは、デジタルアシスタントプラットフォームに統合されてもよく、さまざまな消費者タスク完了シナリオのためのタスク固有のボットの貯蔵所を含む。チャットボットの例としては、Apple(登録商標)のSiri(登録商標)やAmazon(登録商標)のAlexa(登録商標)などがある。
【0031】
「デジタルアシスタントプラットフォーム」は、チャットボットによって受信されたユーザー入力に関連付けられたコンテキストまたは意図を決定し、ユーザー入力を実施するための一つまたは複数のタスク固有のボットを決定するように設計されたシステムであり得る。開発者は、タスク固有のボットを構築してデジタルアシスタントプラットフォームに統合することができ、デジタルアシスタントプラットフォームは、タスク固有のボットによってさまざまな消費者タスク完了シナリオおよび取引(例えば、支払い空間内)を実行することを可能にし得る。デジタルアシスタントプラットフォームは、例えば、いくつかの標準的なフック/アクションなどの、タスク固有のボットの間でいくつかの慣習を強制する場合があり、それのより、消費者の意図に基づく自動ボット検出およびボット配置/インジェクションが可能になる。
【0032】
「クロスプラットフォームボット」は、消費者タスクの完了を支援するために、適切な消費者タッチポイントおよび関与チャネルで表面化し得る、デジタルアシスタントプラットフォーム内の仮想アシスタントであり得る。クロスプラットフォームボットは、特に支払い関連タスクを支援することができる。クロスプラットフォームボットは、チャットベースまたは音声ベースであってもよく、関連するさまざまなチャットボット(iOS(登録商標)、Android(登録商標)、Facebook(登録商標)、Skype(登録商標)などの中の)に基づいて、全てのデバイスおよびプラットフォームにわたって利用可能であり得る。いくつかの実施形態では、クロスプラットフォームボットは、さまざまなチャットボットプラットフォームそれぞれと通信し、チャットボットによって受信されたユーザー入力に関連付けられたコンテキストまたは意図を決定し、ユーザー入力を実施するための一つまたは複数のタスク固有のボットを決定するように構成され得る。従って、チャットボットが、受信したユーザー入力に対して独自の分析を実行するように構成される代わりに、チャットボットは、ユーザー入力をクロスプラットフォームボットに転送して分析を実行する。
【0033】
「タスク固有のボット」は、個人がチャットボットプラットフォームを介してリクエストを送信する際に、個人に対して特定のタスクまたはサービスを実施する目的で開発されたボットであり得る。
【0034】
「ユニバーサルボット」は、タスク固有のボットによって利用できるデジタルアシスタントプラットフォームに統合された共通のボットであり得る。ユニバーサルボットは、取引(例えば、クレジットカード支払いアカウントを使用した支払い取引)を実施するように構成されるタスク固有のボットであり得る。いくつかの実施形態では、ユニバーサルボットは、クロスプラットフォームボットに統合されてもよく、その他のタスク固有のボットは、(例えば、ボット連鎖を介して)ユニバーサルボットを利用して取引を実施することができてもよい。
【0035】
「発行者」は、ユーザー用のアカウントを発行し、および選択的に保持する事業エンティティ(例えば、銀行)を含んでもよい。発行者はまた、消費者に対して携帯電話、スマートカード、タブレット、またはラップトップなどのユーザーデバイスに保存される、支払い証明書を発行することができる。一部の事例では、発行者は、ユーザーのためにクレジットカードアカウントを発行および維持し、クレジットカードアカウントを使用して取引を行うためのクレジットカードをユーザーに提供し得る。一部の事例では、発行者は、クレジットカードを発行する任意の金融事業体であり得る。
【0036】
「機械学習モデル」は、明示的にプログラムされることなく、システムに自動的に学習し、体験から改善する能力を提供する人工知能のアプリケーションを含み得る。機械学習モデルは、プロセスの出力を予測できるソフトウェアルーチンおよびパラメーターのセット(例えば、コンピューターネットワークの攻撃者の識別、コンピューターの認証、ユーザー検索クエリーに基づく適切な推奨など)を、「特徴ベクトル」または他の入力データに基づいて含み得る。ソフトウェアルーチンの構造(例えば、サブルーチンの数およびそれらの間の関係)および/またはパラメーターの値は、モデル化されるプロセスの実際の結果、例えば、異なるクラスの入力データの識別を使用することができる、訓練プロセスで決定することができる。機械学習モデルの例には、サポートベクトルマシン(SVM)、異なる分類の入力間のギャップまたは境界を確立することによってデータを分類するモデル、ならびにニューラルネットワーク、入力に応答して起動することによって機能を実行する人工的な「ニューロン」の集合体が含まれる。
【0037】
「機械学習分類器」は、入力データまたは特徴ベクトルを分類できる機械学習モデルを含み得る。例えば、画像分類器は、動物の画像などの画像を分類するために使用できる機械学習モデルである。もう一つの例として、ニュース分類器は、ニュース記事を「本当のニュース」または「嘘のニュース」に分類できる機械学習モデルである。第三の例として、クレジットカード不正行為検出器などの異常検出器は、クレジットカード取引などの入力データを、正常または異常のいずれかとして分類することができる。機械学習分類器によって生成される出力は、「分類データ」と呼んでもよい。機械学習分類器はまた、K平均クラスタリングなどのクラスタリングモデルを含んでもよい。クラスタリングモデルを使用して、入力データまたは特徴ベクトルを複数のクラスタに分割することができる。各クラスタは、特定の分類に対応し得る。例えば、クラスタリングモデルは、イヌのサイズおよび重量に対応する特徴ベクトルを受けいれ、その後、小型イヌ、中型イヌ、および大型イヌに対応する特徴ベクトルのクラスタを生成することができる。新しい入力データがクラスタ(例えば、小型イヌクラスタ)に含まれる場合、クラスタリングモデルは、新しい入力データを、クラスタに対応する入力データとして効果的に分類した。
【0038】
図1は、本開示の実施形態による、デジタルアシスタントプラットフォームを示すブロック図である。
【0039】
いくつかの実施形態では、デジタルアシスタントプラットフォームは、クロスプラットフォームボット106を含み得る。クロスプラットフォームボット106は、チャットボットプラットフォーム104と協調して通信するように構成され得る。チャットボットプラットフォーム104は、任意のチャットボットまたは自動/仮想アシスタントを含んでもよく、個人に対してタスクまたはサービスを実施することができる任意のソフトウェアエージェントである。チャットボットは、音声入力(例えば、スピーチ)またはテキスト入力(例えば、キーボードまたはタッチスクリーンを使用して入力されるコマンド)などの任意の許容可能な形態の入力を介して、コマンドを受信し得る。いくつかの実施形態では、チャットボットは、オンラインチャットによってアクセスされ得る。例えば、チャットボットは、Facebookメッセンジャーなどのメッセージングサービスを介してメッセージを受信し得る。いくつかの実施形態では、チャットボットは、パーソナルコンピューター、スマートフォン、またはスマートスピーカーなど、デバイス上にインストールされるソフトウェアであり得る。そのようなチャットボットの例としては、Apple(登録商標)のSiri(登録商標)、Google(登録商標)のAssistant、Amazon(登録商標)のAlexa(登録商標)、Microsoft(登録商標)のCortana(登録商標)などがある。
【0040】
いくつかの実施形態では、デジタルアシスタントプラットフォームは、一連のタスク固有のボット116を含んでもよく、少なくともタスク固有のボット116の一部は、第三者の開発者によって開発されていてもよい。開発者の一部は、デジタルアシスタントプラットフォームの所有者またはオペレーターと既存の関係を有し得る。例えば、デジタルアシスタントプラットフォームは、支払いプロセッサーによって所有および運営されてもよく、一方で、開発者は、小売業者、発行者(支払いアカウントの、例えば、金融事業体)などを含み得る。第三者の開発者は、独自のタスク固有のボット116を独自のアイデンティティで独立して構築することができる。いくつかの実施形態では、開発者は、デジタルアシスタントプラットフォームの標準化されたガイドライン、コマンドインターフェイス、およびセキュリティ/認証メカニズムをボットが順守することを条件に、タスク固有のボット116をデジタルアシスタントプラットフォームに登録することができる。いくつかの実施形態では、デジタルアシスタントプラットフォームは、さまざまなタスク固有のボット116の能力について学習し、それらを、利用可能な全てのタスク固有のボット116、それらの能力/使用、およびそれらによって提供されるユーザー意図のリストであり得る、ボットレジストリ112に追加し得る。
【0041】
いくつかの実施形態では、開発者は、自身のボットがデジタルアシスタントプラットフォームに関連付けられた標準ウェブフックまたはAPIエンドポイントに準拠している限り、タスク固有のボットを登録して、それをボットレジストリ112に追加させることができる。例えば、タスク固有のボットは、ボット交換114で使用できるボットの説明、交換で使用できるボットのアイコン(画像)へのURL、および「ソースアトリビューション」用の(例えば、チャットボットプラットフォーム104を使った)会話内でのインラインで提供するように構成しなければならない場合がある。また、タスク固有のボットは、ボットによって実行できるアクションのリストを提供するように構成されてもよく、アクションメタデータは、標準フォーマットで提供され、各アクションによって提供される意図のリストを指定しなければならない場合がある。このアクションのメタデータは、承認された意図/アクションのみがボット交換114で提供できるようにバージョン付けできる。いくつかの実施形態では、デジタルアシスタントプラットフォームは、ボットおよびそのアクションがプラットフォーム上で稼働する前に、デジタルアシスタントプラットフォームの品質/ポリシーガイドラインに準拠しているとレビューされることを確認する、いくつかの編集プロセスを含み得る。また、タスク固有のボットは、クロスプラットフォームボットおよび/または他の利用可能なボットのいずれかにが、タスク固有のボットにコマンドを渡すためのインターフェイスを提供するように構成され得る。クロスプラットフォームボットは、ボット間の相互作用を認証および/または承認する方法を提供し得る。この方法は、ボットポリシーサーバー120の使用を含み得る。
【0042】
いくつかの実施形態では、ボットポリシーサーバー120は、ボット連鎖プロセスを制御できる。ボットポリシーサーバー120は、ボットがコマンドを互いに送信するために使用する認証トークンを管理し得る。例えば、ボットは、値処理ボットまたは支払いゲートウェイボットと連鎖する承認を必要としてもよく、このような認証トークンは、ボットを連鎖する許可として使用され得る。
【0043】
いくつかの実施形態では、ユーザー102は、チャットボットプラットフォーム104に(例えば、タイプテキストまたは音声の形態で)会話コマンドを発行し得る。この会話コマンドには、ユーザー102がチャットボットプラットフォーム104に実行してほしい一連の指示、例えば、「私にニューヨークへの航空券を予約する」が含まれ得る。
【0044】
チャットボットプラットフォーム104は、ユーザー102によって発行された会話コマンド(例えば、ユーザー入力)をクロスプラットフォームボット106に送信し得る。ユーザー102が使用できる複数のチャットボットプラットフォーム104が存在してもよく、従って、クロスプラットフォームボット106は、ユーザー102がコマンドを発行する、任意の利用可能なチャットボットプラットフォーム104から会話コマンドを受信し得る。チャットボットプラットフォーム104は、それらの会話コマンドを解釈および実行する代わりに、コマンドをクロスプラットフォームボット106に転送して解釈および実行する。従って、クロスプラットフォームボット106は、さまざまなチャットボットプラットフォーム104のバックエンドとして機能し、それら全てが、クロスプラットフォームボット106とユーザーをブリッジする役割を持つ。
【0045】
いくつかの実施形態では、チャットボットプラットフォーム104は、音声フォーマットで会話コマンドを有してもよく、会話コマンドを音声としてクロスプラットフォームボット106に送信し得る。こうした実施形態では、クロスプラットフォームボット106は、会話コマンドを受信すると、音声をテキストに変換し得る。他の実施形態では、チャットボットプラットフォーム104は、音声形式で会話コマンドを有してもよく、クロスプラットフォームボット106に送信する前にそれをテキスト形式に変換し得る。いくつかの実施形態では、チャットボットプラットフォーム104は、テキスト形式で会話コマンドを有してもよく、会話コマンドをテキストとしてクロスプラットフォームボット106に送信し得る。
【0046】
クロスプラットフォームボット106が会話コマンドを受信すると、それは、会話コマンドが特定のタスク固有のボット116を指定して会話コマンドを実行するかどうかを判定するために、会話コンテキストストア108に対する会話コマンドを最初に参照し得る。クロスプラットフォームボット106が、会話コマンドから、会話コマンドが一つまたは複数のタスク固有のボット116を指定すると決定できる場合、クロスプラットフォームボット106は、それらのタスク固有のボット116に会話コマンドを送信して、会話コマンドを実行し得る。
【0047】
会話コンテキストストア108は、所与の相互作用に対するコンテキストを格納できる。相互作用の過程でコンテキストが収集されるとき、相互作用に関与するボットは、会話コンテキストストアにコンテキストを追加できる。これにより、異なるボットによって収集される情報を必要とするボットが、全てのコンテキストをボットが通過する必要なく、コンテキストにアクセスできるようになる。
【0048】
そうでなければ、クロスプラットフォームボット106が、いずれかのタスク固有のボット116が会話コマンドで指定されるかどうか判定できない場合、クロスプラットフォームボット106は、会話コマンドを意図分析器110に送信し得る。次に、意図分析器110は、会話コマンドからユーザーの意図を決定し得る。会話コマンドからユーザーの意図を決定するための複数の方法があり得、任意の許容可能な方法を使用し得る。
【0049】
意図分析器110がユーザーの意図を決定すると、意図分析器は、ユーザーの意図を実行し得る、使用するタスク固有のボット116があるかどうかを決定するために、ボットレジストリ112をチェックし得る。ボットレジストリ112は、利用可能な全てのタスク固有のボット116およびその使用のリストであり得る。いくつかの実施形態では、複数のタスク固有のボット116が類似の用途を有し、同じ意図を果たすことができる場合、ボット交換114によって、それらのボットの開発者は、ボットの優先順位をリアルタイムで得ようとすることができる。ボットレジストリ112は、優先順位を与えられたボットを追跡し得る。従って、ユーザーの意図を実行できるボットレジストリ112にリストされた単一のボットがある場合、意図分析器110は、単にその特定のタスク固有のボット116を選択し、そのタスク固有のボット116に会話コマンドを転送してコマンドを実行し得る。しかしながら、ユーザーの意図を実行できるボットレジストリ112にリストされる複数のボットがある場合、意図分析器110は、優先順位を有するタスク固有のボット116を選択し、そのタスク固有のボット116に会話コマンドを転送して、コマンドを実行し得る。従って、デジタルアシスタントプラットフォームは、ユーザーがボットレジストリ112にリストされたさまざまな利用可能なタスク固有のボットおよびそれらの能力の各々を知る必要なしに、ボットレジストリ112を利用して、その意図に基づいて適切なタスク固有のボット116をユーザーに提供することができる。
【0050】
一部の事例では、タスク固有のボット116は、別のタスク固有のボットまたはユニバーサルボット118の機能を利用して、ユーザーのコマンドを実行し得る。この特徴は、本明細書ではボット連鎖として説明されており、開発者がタスク固有のボットで順守する単一の標準およびプロトコルのセット(例えば、コマンドインターフェイスの規則、APIなど)を持つデジタルアシスタントプラットフォームによって有効化される。いくつかの実施形態では、クロスプラットフォームボット106は、会話コマンドを取り、コマンドの意図を分析した後、クロスプラットフォームボット106は、適切なボット連鎖を構築し、それらのボット間の通信フローを調整することができる。クロスプラットフォームボット106は、会話コンテキストストア108を利用して、連鎖内のさまざまなボットにわたって関連するコンテキストを共有し得る。
【0051】
いくつかの実施形態では、ユーザーの会話コマンドがタスク固有のボット116に渡されると、ユーザーからの将来のメッセージは全て、ボットが会話のその部分を終了するまで、ボットに直接中継(およびその逆のボットの応答)され得る。
【0052】
図2は、本開示の実施形態による、デジタルアシスタントプラットフォームのプロセスを示すブロック図である。
【0053】
円1で、チャットボットプラットフォーム104は、ユーザーから受信した会話コマンドを、タイプテキストまたは音声の形態でクロスプラットフォームボット106に送信し得る。この会話コマンドは、ユーザーが自動支援を希望する一連の指示を含み得る。
【0054】
円2で、クロスプラットフォームボット106は、会話コマンドが、会話コマンドを実行するために、特定のタスク固有のボット116を指定するかどうかを判定するために、会話コンテキストストア108に対する会話コマンドを参照し得る。
【0055】
円3で、クロスプラットフォームボット106が、会話コマンドから、会話コマンドが一つまたは複数のタスク固有のボット116を指定すると決定した場合、クロスプラットフォームボット106は、会話コマンドを実行するために、それらのタスク固有のボット116に会話コマンドを送信する。一つまたは複数の指定されたタスク固有のボット116は、場合によっては、ユニバーサルボット118の使用を伴う、コマンドを実行する。他の利用可能なボットと通信するために、ボットポリシーサーバー120が要求され得る。タスク固有のボット116は、ボットポリシーサーバー120からトークンを要求し、その後、別のタスク固有のボット116またはユニバーサルボット118にコマンドを渡す際にそのトークンを使用し得る。指定されたタスク固有のボット116およびユニバーサルボット118がコマンドを実行すると、会話コンテキストストアを任意の追加のコンテキストで更新できる。
【0056】
円4で、タスク固有のボット116がコマンドを実行した後、タスク固有のボット116は、クロスプラットフォームボット106に確認応答を送信し得る。この確認は、コマンドが要求通りに完了したことをクロスプラットフォームボット106に通知し得る。この確認には、完了したタスクに関連する情報または詳細も含まれてもよい。例えば、コマンドがニューヨークへの航空券の予約に関与する場合、この確認には、航空会社、フライト番号、フライト旅程表など、購入した航空券の詳細が含まれ得る。
【0057】
円5で、クロスプラットフォームボット106は、チャットボットプラットフォーム104に、それが会話コマンドを受信したことの確認または通知を送信し得る。この確認は、コマンドが要求通りに完了したことをチャットボットプラットフォーム104に通知し得る。この確認は、完了したタスクに関連付けられた情報または詳細を含んでもよく、これにより、チャットボットプラットフォーム104は、要求されたタスクが仕様通りに完了したことをユーザーに知らせることができる。例えば、コマンドがニューヨークへの航空券の予約に関与する場合、この確認には、航空券の購入の詳細、例えば、航空会社、フライト番号、フライト旅程表なども含まれ得る。従って、チャットボットプラットフォーム104が、航空券が予約されたことをユーザーに通知するとき、X航空会社のニューヨークへのフライトがYの日時で正常に予約されたことをユーザーに知らせることもできる。
【0058】
図3は、本開示の実施形態による、デジタルアシスタントプラットフォームのプロセスを示すブロック図である。
【0059】
図3は、図2(例えば、補足として)に照らして最も適切に解釈される。特に、図3は、クロスプラットフォームボット106が、会話コマンドから使用するためのタスク固有のボット116を直接決定できない場合(例えば、クロスプラットフォームボット106が、会話コンテキストストア108で対話の以前のコンテキストを見つけない場合)、デジタルアシスタントプラットフォームによって実行されるアクションを示す。
【0060】
従って、円3で、クロスプラットフォームボット106が、会話コマンドでタスク固有のボット116が指定されるかどうかを判定できない場合、クロスプラットフォームボット106は、会話コマンドを意図分析器110に送信し得る。クロスプラットフォームボット106は、ユーザーの意図を理解し、タスクを完了するために一つまたは複数の適切なボットをもたらすようにと試みる。
【0061】
円4で、意図分析器110は、会話コマンドの意図を決定するために、一つまたは複数の神経言語プログラミング(NLP)プラットフォーム302に会話コマンドを提供し得る。同じNLPプラットフォーム302のセットを、エコシステム内のタスク固有のボットによっても使用することができ、またはそれらは、意図分析器110利用することができる。
【0062】
円5で、NLPプラットフォーム302は、意図分析器110に、会話コマンドの可能な意図を提供し得る。例えば、単語「飛行機」の発音が弱い、「航空券を予約する」のコマンドの音声クリップは、航空券または列車チケットを予約するコマンドのように聞こえ得る。従って、意図分析器110は、会話コマンドの意図が、航空券または列車チケットを予約することのいずれかであると通知され得る。意図分析器110は、どちらが、会話コマンドの背後にある最も可能性の高い意図であるかを決定する必要がある。
【0063】
円6で、意図分析器110は、意図に関連付けられた一連のアクションを決定するために、意図を意図-アクション地図ストア304と比較し得る。例えば、会話コマンドが「ニューヨークへのフライトと私が着地したホテルを予約する」であった場合、その会話コマンドの意図は、数多くの別個の行為(例えば、フライトの予約とホテルの予約)を含む。従って、意図-アクション地図ストア304は、意図分析器110がその意図をその根底にあるアクションに分解することを可能にする。
【0064】
円7で、意図分析器110は、ユーザーの意図を実行するために使用する一つまたは複数のタスク固有のボット116を決定するために、ボットレジストリ112に対するアクションを参照し得る。ボットレジストリ112は、利用可能な全てのタスク固有のボット116およびその使用のリストであり得る。いくつかの実施形態では、複数のタスク固有のボット116が類似の用途を有する場合、ボット交換114によって、それらのボットの開発者は、ボットの優先順位をリアルタイムで得ようとすることができる。ボットレジストリ112は、優先順位を与えられたボットを追跡し得る。
【0065】
会話コマンドが「ニューヨークへのフライトを予約し、私が着地した際にホテルを予約する」であった、前の例では、ボットレジストリ112は、一つまたは複数のフライト予約ボット(例えば、Kayak(登録商標)、Priceline(登録商標)、Expedia(登録商標)などの航空会社または旅行代理店によって開発されたもの)、および一つまたは複数のホテル予約ボット(例えば、ホテル会社または旅行代理店によって開発されたもの)の詳細を提供し得る。一つのアクションを実行するための複数のボットがある場合(例えば、複数のフライト予約ボットがある場合)、意図分析器110は、優先順位を与えられたボットを選択し得る。例えば、三つのフライト予約ボット(例えば、ボットCが優先するボットA、B、およびC)と、二つのホテル予約ボット(例えば、ボットXが優先するボットXおよびY)が存在する場合、意図分析器110は、フライトを予約するためにボットCを選択し、ホテルを予約するためにボットXを選択する。
【0066】
円8では、意図分析器110は、会話コマンドから決定されたアクション、および意図分析器110がそれらのアクションを実行するために選択したボットを、クロスプラットフォームボット106に伝達する。
【0067】
円9で、クロスプラットフォームボット106は、選択されたタスク固有のボット116に実行するアクションを送信し得る。一つまたは複数の指定されたタスク固有のボット116は、タスク固有のボット116が、相互に通信する(例えば、ボット連鎖)、および/またはユニバーサルボット118を利用してアクションを実行することを必要とし得る、アクションを実行する。ユニバーサルボット118は、全てのタスク固有のボット116によって利用され得る、プラットフォーム全体に組み込まれる共通のボットを含んでもよい。タスク固有のボット116は、ボットポリシーサーバー120からトークンを要求し、その後、別のタスク固有のボット116またはユニバーサルボット118にコマンドを渡す際にそのトークンを使用し得る。指定されたタスク固有のボット116およびユニバーサルボット118がコマンドを実行すると、会話コンテキストストア108を任意の追加のコンテキストで更新できる。
【0068】
円10で、タスク固有のボット116がコマンドを実行した後、タスク固有のボット116は、クロスプラットフォームボット106に確認応答を送信し得る。この確認は、完了したタスクに関連する情報または詳細とともに、コマンドが要求されたとおりに完了したことをクロスプラットフォームボット106に通知し得る。複数のタスク固有のボット116が利用された場合、別個の確認が送信され得る。例えば、コマンドがニューヨークへの航空券およびニューヨーク市内のホテルの予約に関与する場合、フライト予約ボットは、航空会社、フライト番号、フライト旅程表など、購入した航空券の詳細を含む確認を送信し得る。ホテル予約ボットは、ホテル名、部屋番号、部屋タイプ、予約の日付、チェックアウト時間など、予約されたホテルの部屋の詳細を含む確認を送信することができる。
【0069】
円11で、クロスプラットフォームボット106は、チャットボットプラットフォーム104に、それが会話コマンドを受信したことの確認または通知を送信し得る。この確認は、コマンドが要求通りに完了したこと、ならびに完了したタスクに関連する任意の情報または詳細(例えば、円10で受信した任意の詳細)をチャットボットプラットフォーム104に通知し得る。従って、前の例では、チャットボットプラットフォーム104が、航空券が予約され、ホテルルームが予約されたことをユーザーに通知した場合、それは、X航空会社のニューヨークへのフライトが、Yの日時で正常に予約され、かつユーザーがホテル‘A’に滞在することをユーザーに伝えることもできる。
【0070】
図4Aは、本開示の実施形態による、デジタルアシスタントプラットフォームのプロセスを示すブロック図である。
【0071】
特に、図4Aは、デジタルアシスタントプラットフォームに組み込むことができるユニバーサルボット(例えば、ユニバーサルボット118)のいくつかの例を紹介する役割を果たす。
【0072】
例として、会話コマンドは、「映画チケットを購入する」の意図で、クロスプラットフォームボット106に送信され得る。クロスプラットフォームボット106がコマンドの意図を理解すると、円1で、それは、コマンドを映画予約ボット402に送信し得る。いくつかの実施形態では、クロスプラットフォームボット106は、映画予約に関連する追加のコンテキストを提供することによって、映画予約ボット402を指示し得る。このコンテキストには、優先される映画館、映画名、上映タイミング、および優先される座席が含まれ得る。この追加のコンテキストは、会話コマンド自体に提供されるか、または映画予約ボット402で保存されたユーザー設定の一部であり得る。例えば、会話コマンドは、「映画館の真ん中に近い座席について、映画館‘C’で今夜、時間‘B’に上映される映画‘A’の映画チケットを購入する」であったかもしれない。または、会話コマンドは、「時間‘B’で映画‘A’の映画チケットを購入する」であり、かつ映画予約ボット402でユーザーの保存された設定は、映画館‘C’および/またはユーザーの優先座席を含んでもよい。従って、映画予約ボット402は、会話コマンドで提供されなかった不足している必要なコンテキストを記入することができる。
【0073】
あるいは、映画予約ボット402によって要求される追加のコンテキストがある場合、映画予約ボット402は、クロスプラットフォームボット106が戻って、ユーザーに追加のコンテキストを提供するように頼むよう要求し得る。例えば、会話コマンドが単に「‘A’映画の映画チケットを購入する」であった場合、クロスプラットフォームボット106は、映画チケットの購入に必要な上映時間および映画館情報をユーザーに提示するよう要求しなければならない場合がある。
【0074】
いくつかの実施形態では、映画予約ボット402は、ボット連鎖を利用して映画チケットを購入することができ、これにより、映画予約ボット402は、ユニバーサルボット(例えば、値処理ボット404および支払いゲートウェイボット406)などの他のボットの機能を利用することができる。
【0075】
いくつかの実施形態では、値処理ボット404は、識別子情報(例えば、クレジットカード情報)、優先発送先住所、および追加のプロファイル情報を含み得るアカウント(例えば、支払いアカウントまたはデジタルウォレット)へのアクセスを提供するために、そのアイデンティティをユーザーが検証する必要のある任意の他のボットによって連鎖し得る。値処理ボット404は、ほとんどのチャットボットプラットフォームによってサポートされる標準化された認証プロトコル(例えば、オープンID)を利用し得る。いくつかの実施形態では、値処理ボット404は、2因子認証を使用してユーザーを認証し、取引を完了するために、支払いゲートウェイボット406に渡すことができる、または商売人のサーバー側で取引を実行するために商売人ボット(例えば、映画予約ボット402)に戻すことができる、固有のトークンを提供し得る。
【0076】
例えば、円2で、購入する映画チケットを選択すると、映画予約ボット402は、値処理ボット404に取引を行うよう指示し得る。いくつかの実施形態では、映画予約ボット402は、支払い金額(例えば、映画チケットの価格)、商売人名(例えば、映画映画館)、および支払い手段(例えば、クレジットカード支払いアカウントなどの取引を行うための手段)などの、取引に関する追加のコンテキストを提供し得る。支払い金額、および商売人名などのこのコンテキストの一部は、映画予約ボット402によって(例えば、商売人に関連付けられたサーバーに接続することによって)取得され得る。支払い手段などの追加のコンテキストは、会話コマンド自体に提供されるか、または映画予約ボット402または値処理ボット404で保存されたユーザー設定の一部であり得る。
【0077】
あるいは、値処理ボット404によって要求される何らかの追加のコンテキストがある場合、値処理ボット404は、クロスプラットフォームボット106が戻って、ユーザーに追加のコンテキストを提供するように頼むよう要求し得る。例えば、値処理ボット404が、支払い金額および商売人名を認識しているが、支払い手段が供給されていない場合、クロスプラットフォームボット106は、ユーザーが、取引を実施するための所望の支払い手段を提供するように要求しなければならない場合がある。
【0078】
いくつかの実施形態では、映画予約ボット402は、値処理ボット404と連鎖する承認を必要とし得る。これをするために、映画予約ボットは、ボットポリシーサーバー120にトークンリクエストを送信し得る。ボットポリシーサーバー120は、映画予約ボット402が取引を要求する権限を有しているかどうかをチェックしてもよく、そうである場合は、映画予約ボット402にトークンを返却し得る。次いで、映画予約ボット402は、取引を行うための指示とともに、承認トークンを値処理ボット404に提示し得る。
【0079】
円3で、値処理ボット404は、支払いゲートウェイボット406に支払いを完了させ得る。
【0080】
円4では、クロスプラットフォームボット106は、ユーザーに、映画館へのタクシーの予約の可能性を提案し得る。ユーザーが同意する場合、クロスプラットフォームボット106は、タクシー予約ボット408に、提供されたコンテキストに基づいてタクシーを予約するように指示し得る。タクシーは、映画の時間に基づいてスケジュールされなければならないため、このコンテキストは、映画の上映タイミング、ソースアドレス(例えば、ユーザーの居住地)、および宛先アドレス(例えば、映画映画館アドレス)を含み得る。タクシーの予約に関連するこのコンテキストの一部は、クロスプラットフォームボット106および/または映画予約ボット402によって提供され得る。クロスプラットフォームボット106および/または映画予約ボット402は、それを、タクシー予約ボット408がそれにアクセスできる、会話コンテキストストア108に送信することによって、コンテキストを利用可能にし得る。特に、映画予約ボット402は、映画の上映タイミングおよび購入した映画チケットの映画映画館アドレスを供給することができる場合がある。欠落している任意の追加のコンテキストは、クロスプラットフォームボット106、映画予約ボット402、またはタクシー予約ボット408で保存されたユーザー設定の一部として取得され得る。あるいは、タクシー予約ボット408によって要求される追加のコンテキストがある場合、タクシー予約ボット408は、クロスプラットフォームボット106が戻って、ユーザーに追加のコンテキストを提供するように頼むよう要求し得る。例えば、タクシー予約ボット408が、ユーザーがどこからピックアップされたいかを知らない場合、クロスプラットフォームボット106は、タクシーがユーザーを自宅からピックアップすべきと想定するのではなく、ユーザーにその情報を提供するように要求しなければならない場合がある。収集される任意の追加のコンテキストが、会話コンテキストストア108に追加され得る。コンテキストは、ユーザーの相互作用の終わりまで、会話コンテキストストア108に持続し得る。
【0081】
図4Bは、本開示の実施形態による、デジタルアシスタントプラットフォームシステムのプロセスを示すブロック図である。
【0082】
特に、図4Bは、ボットがそれらの間でコマンドを連鎖するのを可能にするために、ボット連鎖がどのように機能するかを示すように役割を果たす。デジタルアシスタントプラットフォームは、ボットが何らかの制限を条件として、独自の連鎖を管理することを可能にし得る。例えば、承認されたタスク固有のボットのみが、デジタルアシスタントプラットフォームによって提供されるユニバーサルボットの一つに自身を連鎖させることができる。ボット承認は、ボットポリシーサーバーによって管理され得る。例えば、ボットは、ユニバーサルボットの一つに連鎖する前に、ボットポリシーサーバーから承認トークンを要求しなければならない場合がある。
【0083】
例として、「ピザを注文する」意図を有する、会話コマンドは、クロスプラットフォームボット106に送信され得る。クロスプラットフォームボット106がコマンドの意図を理解すると、円1で、それは、レストランセレクタボット412にコマンドを送信し得る。いくつかの実施形態では、クロスプラットフォームボット106は、ピザの注文に関連する追加のコンテキストを提供することによって、レストランセレクタボット412を指示し得る。このコンテキストは、レストランセレクタボット412がそれにアクセスできる会話コンテキストストア108にそれを送信することによって、コンテキストを利用可能にすることができる。コンテキストは、レストラン名、納品先住所、および注文の詳細(例えば、どのピザおよび具材)を含み得る。この追加のコンテキストは、会話コマンド自体に提供されるか、またはレストランセレクタボット412で保存されたユーザー設定の一部であり得る。例えば、会話コマンドは、「レストラン‘A’から大きなチーズピザを注文して自宅に配送する」であったかもしれない、そしてレストランセレクタボット412は、ユーザー設定で保存可能な、ユーザーの住所への配送のためにレストラン’A′に注文を発注することを知っている。または、会話コマンドが単に「レストラン‘A’から大きなチーズピザを注文する」場合、レストランセレクタボット412は、不足しているコンテキストを記入し得る(例えば、コマンドの意図が、ピザをユーザーの住居に配送することである場合、レストランセレクタボット412は、ユーザー設定で利用可能な場合、ユーザーの自宅住所を使用できる。
【0084】
あるいは、レストランセレクタボット412によって要求される何らかの追加のコンテキストがある場合、レストランセレクタボット412は、クロスプラットフォームボット106が戻って、ユーザーに追加のコンテキストを提供するように頼むよう要求し得る。例えば、会話コマンドが単に「ピザを注文する」であった場合、クロスプラットフォームボット106は、ユーザーに、どのような種類のピザ、ピザの注文先、ピザの納入先など、追加の詳細を提供するよう要求しなければならない場合がある。収集される任意の追加のコンテキストが、会話コンテキストストア108に追加され得る。コンテキストは、ユーザーの相互作用の終わりまで、会話コンテキストストア108に持続し得る。
【0085】
レストランセレクタボット412がボット連鎖化を可能な場合、レストランセレクタボット412は、ユニバーサルボット(例えば、値処理ボット414および支払いゲートウェイボット416)などの他のボットの機能を活用できる場合がある。円2で、レストランセレクタボット412は、値処理ボット414に取引を行うように指示し得る。いくつかの実施形態では、レストランセレクタボット412は、支払い金額(例えば、注文の価格)、商売人名(例えば、レストラン)、および支払い手段(例えば、クレジットカード支払いアカウントなどで取引を行うための手段)などの、取引に関する追加のコンテキストを提供し得る。支払い金額および商売人名などのこのコンテキストの一部は、レストランセレクタボット412によって(例えば、商売人に関連付けられたサーバーに接続することによって)取得され得る。支払い手段などの追加のコンテキストは、会話コマンド自体に提供されるか、またはレストランセレクタボット412または値処理ボット414で保存されたユーザー設定の一部であり得る。
【0086】
あるいは、値処理ボット414によって要求される何らかの追加のコンテキストがある場合、値処理ボット414は、クロスプラットフォームボット106が戻って、ユーザーに追加のコンテキストを提供するように頼むよう要求し得る。例えば、値処理ボット414が、支払い金額および商売人名を認識しているが、支払い手段が供給されていない場合、クロスプラットフォームボット106は、ユーザーが、ピザを注文するのに使用する所望の支払い手段を提供するように要求しなければならない場合がある。
【0087】
円3で、値処理ボット414は、支払いゲートウェイボット416に支払いを完了させ得る。
【0088】
円4で、レストランセレクタボット412はまた、配送ロジスティクスボット418(例えば、Uber Eatsに対してなど)によって使用できる追加のコンテキストとともに、自動的に指示を配送ロジスティクスボット418に送信することによって、ボット連鎖を実行し得る。例えば、配送サービスは、それがレストランピックアップタイミング、レストラン住所、および納品先住所などの特定の情報を有する場合、ピザを配送するために利用され得る。ピザの配送に関連するこのコンテキストの大部分は、クロスプラットフォームボット106および/またはレストランセレクタボット412によって供給され得る。特に、レストランセレクタボット412は、レストランピックアップタイミング、レストラン住所、および納品先住所を供給することができる。従って、この事例では、レストランセレクタボット412は、配送サービスに追加のコンテキストを提供するようユーザーに要求することなく、配送ロジスティクスボット418にピザの配送をセットアップさせるために、ボット連鎖をシームレスに実行することができる。
【0089】
図5は、本開示の実施形態による、ユーザーが見たチャットボットのユーザーインターフェイスの図である。
【0090】
ユーザーインターフェイス500は、オンラインメッセージサービス(例えば、Facebook Messenger)などのメッセージシステムに組み込まれるチャットボットのユーザーによって見られるチャットインターフェイスであり得る。ユーザーは、チャットボットと相互作用するためにコマンドをインターフェイスにタイプ入力する。この例では、ユーザーはチャットボットに「フライトの予約する」ように指示した。この会話コマンドは、それを、クロスプラットフォームボット(クロスプラットフォームボット106など)に転送して処理する、チャットボットによって受信される。クロスプラットフォームボットは、その後、会話コマンドまたは会話コマンドの根底にある意図で提供されたコンテキストを分析する。しかし、この特定の例では、ユーザーが、どのフライトを予約するかの詳細についてチャットボットに十分なコンテキストを提供していないため、クロスプラットフォームボットはチャットボットと調整して必要なコンテキストを要求する必要がある。
【0091】
チャットボットは、ユーザーとの会話を通じて、ソース都市(シアトル)、行き先都市(ニューヨーク)、およびフライトの日付(明日)を知るように示される。不足しているコンテキストを全て取得した後、チャットボットはこの情報をクロスプラットフォームボットに転送できる。クロスプラットフォームボットは、この情報を全て使用して、フライトの予約に適したタスク固有のボットを決定し、選択することができる。
【0092】
上の記載は例示であり、限定するものではない。本開示を検討することにより、本発明の多くの変形が、当業者にとって明らかになるであろう。従って、本発明の範囲は、上記の説明を参照して決定されるのではなく、それらの全範囲または均等物とともに、係属中の請求項を参照して決定され得る。上述のように、本発明はモジュラーまたは統合された手法でコンピューターのソフトウェアを使用した制御ロジックの形態で実行可能であり得ることが理解されよう。本明細書に提供した開示および教示に基づいて、当業者ならば、ハードウェアおよびハードウェアとソフトウェアの組み合わせを用いて、本発明を実施する適切な他のやり方および/または方法を知り、評価するであろう。本出願に記載のソフトウェアコンポーネントまたは機能のいずれかは、例えば、従来の技術もしくはオブジェクト指向の技術を使った、例えば、Java(登録商標)、C++、Python(登録商標)、またはPerlなどの任意の好適なコンピューター言語を使用する、プロセッサーによって実行されるソフトウェアコードとして実施され得る。ソフトウェアコードは、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ハードドライブもしくはフロッピーディスクなどの磁気媒体、またはCD-ROMのような光媒体などの、コンピューター可読媒体上の一連の命令またはコマンドとして保存され得る。そのようなコンピューター可読媒体は、単一の計算装置上またはその内部にあってもよく、システムまたはネットワーク内の異なる計算装置上もしくはその内部に存在し得る。
【0093】
多くの実施形態は、異なる特徴および/または特徴の組み合わせを含むものとして上述したが、本開示を読んだ後の当業者は、一部の例では、これらの構成要素のうちの一つまたは複数が、上述した構成要素または特徴のいずれかと組み合わされ得ることを理解することができる。いずれの実施形態の一つまたは複数の特徴は、本発明の範囲から逸脱することなく、いずれの他の実施形態の一つまたは複数の特徴と組み合わせてもよい。
【0094】
「一つの(a)」、「一つの(an)」、または「その(the)」の列挙は、特に反対の指示がない限り、「一つまたは複数」を意味することを意図している。「第一の」構成要素への言及は、必ずしも第二の構成要素を提供することを必要としない。さらに、「第一の」または「第二の」構成要素トへの言及は、明示的に記載されない限り、参照される構成要素を特定の場所に限定するものではない。
図1
図2
図3
図4A
図4B
図5