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

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

▶ ソウル マシーンズ リミティドの特許一覧

特表2024-505809対話型エージェントにおける会話オーケストレーション
<>
  • 特表-対話型エージェントにおける会話オーケストレーション 図1
  • 特表-対話型エージェントにおける会話オーケストレーション 図2
  • 特表-対話型エージェントにおける会話オーケストレーション 図3
  • 特表-対話型エージェントにおける会話オーケストレーション 図4
  • 特表-対話型エージェントにおける会話オーケストレーション 図5
  • 特表-対話型エージェントにおける会話オーケストレーション 図6
  • 特表-対話型エージェントにおける会話オーケストレーション 図7
  • 特表-対話型エージェントにおける会話オーケストレーション 図8
  • 特表-対話型エージェントにおける会話オーケストレーション 図9
  • 特表-対話型エージェントにおける会話オーケストレーション 図10
  • 特表-対話型エージェントにおける会話オーケストレーション 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-08
(54)【発明の名称】対話型エージェントにおける会話オーケストレーション
(51)【国際特許分類】
   G10L 15/22 20060101AFI20240201BHJP
   G06F 3/16 20060101ALN20240201BHJP
【FI】
G10L15/22 300U
G06F3/16 650
G06F3/16 690
【審査請求】未請求
【予備審査請求】有
(21)【出願番号】P 2023540124
(86)(22)【出願日】2022-01-05
(85)【翻訳文提出日】2023-06-29
(86)【国際出願番号】 IB2022050071
(87)【国際公開番号】W WO2022149076
(87)【国際公開日】2022-07-14
(31)【優先権主張番号】771659
(32)【優先日】2021-01-05
(33)【優先権主張国・地域又は機関】NZ
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FACEBOOK
(71)【出願人】
【識別番号】519327490
【氏名又は名称】ソウル マシーンズ リミティド
(74)【代理人】
【識別番号】110000338
【氏名又は名称】弁理士法人 HARAKENZO WORLD PATENT & TRADEMARK
(72)【発明者】
【氏名】チェン, ジェレミー
(72)【発明者】
【氏名】クラーク-ヤンガー, ハンナ
(72)【発明者】
【氏名】ハスラム, アンドリュー
(72)【発明者】
【氏名】アヤード, ネイダー
(72)【発明者】
【氏名】プレトカ, ジョン
(72)【発明者】
【氏名】マッセリーニ, マウロ
(72)【発明者】
【氏名】プール, リアム
(57)【要約】
本明細書で説明される実施形態は、仮想オブジェクト、デジタルエンティティ、及び/又はロボットであり得る、エージェントをアニメートする(生命を吹き込む)ための方法及びシステムに関する。ルータは、複数のスキルモジュールを介して、ユーザとエージェントとの間のシームレスな対話を可能にする。スキルモジュールは、会話コーパス及び/又は他のアプリケーションを含み得る。本明細書で説明される実施形態は、マルチモーダル人間-コンピュータ対話のコンテキストにおいて、対話型エージェントにおける会話オーケストレーションを改善し得る。
【特許請求の範囲】
【請求項1】
ユーザと、エージェントを提示するコンピュータシステムと、の間の対話を管理するためのコンピュータ実装対話オーケストレーションシステムであって、
対話ルールのセットであって、各対話ルールが、前記対話を修正するように構成された条件及びアクションを含む、対話ルールのセットと、
ルータであって、
前記ユーザからの入力要求を受信し、前記入力要求を2つ以上のスキルモジュールのセットからのスキルモジュールに転送することと、
前記2つ以上のスキルモジュールからの出力応答を受信し、前記出力応答を前記ユーザ及び/又は前記エージェントに転送することと、を行うように構成された、ルータと、を含み、
前記ルータが、入力要求及び/又は出力応答からの対話ルール条件が一致したときに、対応する対話ルールアクションをトリガするように構成されている、システム。
【請求項2】
スキルモジュールが、会話インスタンスであり、各会話インスタンスが、少なくとも1つの会話ソースからの会話コンテンツを配信するように構成されている、請求項1に記載のオーケストレーションシステム。
【請求項3】
アクションが、入力要求及び/又は出力応答を修正する、請求項2に記載のシステム。
【請求項4】
アクションが、テキストをフォーマット文字列引数の値と連結する、請求項3に記載のシステム。
【請求項5】
アクションが、会話インスタンス間でルーティングする、請求項1~4のいずれか一項に記載のシステム。
【請求項6】
アクションが、会話ソースから独立した会話コンテンツを配信する、請求項1~5のいずれか一項に記載のシステム。
【請求項7】
対話ルールが、すべての会話ソースに適用可能なグローバルルールセットを含む、請求項1~6のいずれか一項に記載のシステム。
【請求項8】
対話ルールが、関連付けられた会話ソースに適用可能な1つ以上のインスタンスルールセットを含む、請求項1~7のいずれか一項に記載のシステム。
【請求項9】
対話ルールが、要求ルール、応答ルール、中断ルール、からなる群から選択される、請求項1~8のいずれか一項に記載のシステム。
【請求項10】
ユーザと、エージェントを提示するコンピュータシステムと、の間の対話型会話を管理するための方法であって、
前記ユーザからの入力要求を受信するステップと、
対話ルールのセットからの対話ルールの条件が前記入力要求に一致するかどうかを判定するステップと、
前記対話ルールが一致する場合、前記対話ルールによって指定されたアクションを適用するステップであって、前記アクションが、前記対話型会話を修正する、適用するステップと、
前記入力要求を、2つ以上の会話インスタンスのセットからの会話インスタンスに転送するステップであって、各会話インスタンスが、少なくとも1つの会話ソースからの会話コンテンツを配信するように構成されている、転送するステップと、を含む、方法。
【請求項11】
アクションが、入力要求及び/又は出力応答を修正する、請求項10に記載の方法。
【請求項12】
アクションが、テキストをフォーマット文字列引数の値と連結する、請求項11に記載の方法。
【請求項13】
アクションが、会話インスタンス間でルーティングする、請求項10~12のいずれか一項に記載の方法。
【請求項14】
ユーザと、エージェントを提示するコンピュータシステムと、の間の対話を管理するためのコンピュータ実装方法であって、前記方法が、
前記対話から入力を受信し、かつ/又は前記対話への出力を生成するように構成されたスキルモジュールのセットを受信するステップであって、各スキルモジュールが、スキルメタデータに関連付けられている、受信するステップと、
各スキルモジュールについて、前記スキルメタデータを使用して、1つ以上の対話ルールを生成するステップと、
前記対話ルールを対話ルールのセットに追加するステップと、を含み、
前記対話ルールのセットが、前記1つ以上のスキルモジュール間をルーティングして、前記ユーザと前記エージェントとの間の前記対話を統括する、コンピュータ実装方法。
【請求項15】
前記1つ以上の対話ルールを生成するステップが、前記スキルメタデータを使用して、前記スキルモジュールが前記対話においてアクティブであるときを判定するための1つ以上のルールテンプレートを判定するステップと、スキルメタデータからの1つ以上の値を使用して、前記1つ以上のルールテンプレートにポピュレートすることによって、1つ以上の対話ルールを生成するステップと、を含む、請求項14に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書で説明される実施形態は、ユーザとエージェントとの間の対話を改善することに関し、より具体的には、限定はされないが、マルチモーダル人間-コンピュータ対話のコンテキストにおける「対話型エージェントにおける会話オーケストレーション」を改善することに関する。
【背景技術】
【0002】
米国特許第10742572(B2)号は、チャットメッセージを解析して、チャットメッセージに含まれるインテント及びエンティティを発見することによって、複数のチャットボットをオーケストレーションする方法を開示する。ランク付けアルゴリズムは、マスタチャットボット及びモジュラチャットボットをランク付けし、チャットメッセージは、最高ランクのチャットボットに転送される。
【0003】
米国特許第7421393(B1)号は、モジュール式音声ダイアログコンポーネントを使用して、ダイアログマネージャを開発するためのシステムを開示している。ダイアログマネージャは、アプリケーションタイプに基づいて、トップレベルフローコントローラを選択することと、各アプリケーションパーツについて、利用可能な再利用可能なサブダイアログを選択することと、を含む方法に従って生成される。
【発明の概要】
【0004】
本発明の目的は、対話型エージェントにおける対話オーケストレーションを改善すること、又は少なくとも公衆若しくは業界に有用な選択肢を提供することである。
【図面の簡単な説明】
【0005】
図1】対話オーケストレーションシステムを示す。
図2】入力要求処理のフロー図を示す。
図3】出力応答処理のフロー図を示す。
図4】オーグメンテーションコーパスを含む会話オーケストレーションシステムを示す。
図5】生来の知識をサポートするように構成された会話オーケストレーションシステムを示す。
図6】同じコーパスへの複数の接続を確立したルータを示す。
図7】マルチトピック会話システムを示す。
図8】対話ルールを生成する方法を示す。
図9】出力応答を処理するように構成された会話オーケストレーションシステムを示す。
図10】様々なスキルモジュールタイプ間のルーティングのフロー図を示す。
図11】応答ルールのルールテンプレートを示す。
【発明を実施するための形態】
【0006】
本明細書で説明される実施形態は、任意の好適な様態で提示される、仮想オブジェクト、デジタルエンティティ、及び/又はロボットであり得る、コンピュータ実装エージェントをアニメートする(生命を吹き込む)ための方法及びシステムに関する。エージェントは、例えば、カメラ、電磁変換器、オーディオ変換器、キーボード、又は他の既知のシステムのうちの1つ以上からの入力を含む、現実世界の刺激から生じる入力又は刺激を受信する。入力は、例えば、コンピュータなどのエンドユーザデバイスを介して、エージェントと対話する人間ユーザから引き出され得る。エージェントは、聴覚的、グラフィカル、視覚的及び/又は任意の他の好適な出力を生成し得る。エージェントは、擬人化された音声及び/又は外観で提示され、自然言語でユーザと会話し得る。具現化されたエージェントでは、エージェントは加えて、ジェスチャ、顔の表情及びボディランゲージなどの非言語コミュニケーションを介して、ユーザと対話し得る。
【0007】
エージェントは、エージェントプラットフォームプロバイダによってプログラムされたエージェントプラットフォーム上でホストされ得る。エージェントプラットフォームから外部にホストされ得る、様々なスキルモジュールは、対話の態様を制御し得る。ルータ4は、1つ以上のスキルモジュールを介して、ユーザとエージェントとの間のシームレスな対話を編成し、エージェントとユーザとの間の対話を改善する。スキルは、対話型エージェントに追加してその能力を強化することができる、会話コンポーネント、又はより広義には、対話コンポーネントである。
【0008】
スキルは、クラウドプラットフォーム(例えば、Watson、DialogflowなどのNLPプラットフォーム上)などの任意の好適な様態で実装され得、又はカスタムビルド及びオーケストレーションサーバ若しくはウェブフックを介して接続され得、又はスキルAPIを介して接続され得、又はエージェントプラットフォームに統合され得る。スキルはスタンドアロンであってもよく、又は、他の対話スキルと並行して働く、又はそれを補完するように設計されてもよい。外部アプリケーションプログラミングインターフェース(Application Programming Interface、API)は、サードパーティが追加の分散会話システム、会話コンテンツ、及び/又は他の対話能力であり得る、スキルモジュールを構築することを可能にするように構成される。スキルモジュールは、会話コーパス及び/又は他のアプリケーションを含んでもよい。代替的に及び/又は追加的に、内部APIは、サードパーティが対話オーケストレーションシステムと互換性があり、エージェントがホストされるエージェントプラットフォームと直接統合される、新しい会話システム、コンテンツ、及び/又は他の対話拡張を構築することを可能にするように構成される。
【0009】
一実施形態では、対話ルールの使用を通じて、ルータ4は、低レベルの指令システムを配信して、特定の会話インスタンススキルモジュールがいつアクティブになるべきか、いつ別の会話インスタンススキルモジュールに変更するべきかを指定し、並びに、会話インスタンス間の遷移を支援し、したがってコヒーレントな会話の対話を可能にする追加の会話挙動を指定する。デジタルアシスタント及びチャットボットアプリケーションでは、ルータは、複数のチャットボットが様々なスキルセットとともに利用可能である場合、ユーザ入力を適切な会話チャットボットに向けるのを支援し得、したがって、ユーザ入力が正確かつ効率的に処理される機会を増加させる。会話ルールのセットは、会話インスタンススキルモジュールのスキルメタデータのリストから自動的に生成され得る。
【0010】
スキルモジュールは、会話的な、ターンベースの様態でユーザと対話することに限定されない。この機能の例は、ユーザ入力又はエージェント応答の変換、及びエージェントプラットフォームの再構成を含む。例は、翻訳、自然言語理解、感情的知性、具現化されたエージェントのための自動ジェスチャ生成を容易にするスキルモジュールを含む。
【0011】
会話オーケストレーション
図1は、スキルモジュール間の、具体的には、会話インスタンス間のルーティング用に構成された、対話オーケストレーションシステムを示す。ルータ4は、各々が識別子(ID)によって識別される、ルーティングされた会話インスタンス10のセットを維持する。IDは、ターゲット会話インスタンス10を識別するためにルールによって使用される。各会話インスタンス10は、任意の好適な会話ソースによって提供され得る。会話ソースは、一般に、特定の会話コンテンツを提供する作成可能なダイアログシステム及び/又はチャットボットであってもよく、独立した当事者によって作成されてもよい。会話ソースは、会話システム及び/又は会話コンテンツを提供するサードパーティのサービスを元にしてもよい。そのようなサービスの例には、Amazon Lex、Microsoft Azure Bot Framework、Facebook Blenderbot、IBM Watson、及びGoogle DialogFlowが含まれる。
【0012】
ルータ4は、デフォルトインスタンス12、現在のインスタンス11、及び最後のn個(例えば、5つ)の現在のインスタンス11の記録を維持するスタックの記録を保持する。初期化において、現在のインスタンス11は、デフォルトインスタンス12に設定される。ルータは、2つ以上の会話インスタンス間で遷移し得る。各会話インスタンス10は、インスタンスルールセット19に関連付けられる。インスタンスルールセット19は、要求ルール、応答ルール、及び/又は中断ルールのリストを含み得る。同様に、ルータ4は、要求ルール、応答ルール、及び/又は中断ルールを含むグローバルルールセット15を有し得る。
【0013】
複数の会話インスタンスは、同じ会話ソースを指してもよい。複数の別個の会話インスタンスを同じ会話ソースにポイントすることは、各会話インスタンスがユーザの状態/セッションを独立して追跡するので、会話ソースにおけるサブセクション内又はサブセクション間の脱線又はフォールバックを可能にし、これは、所与のサブセクションへの再エントリが、それが脱線されたとき又はフォールバックがトリガされたときのように、元の会話状態をそのまま有することを意味する。
【0014】
対話ルールのコンポーネント
対話ルールは、ターゲットID、条件、及び/又はアクションを含む。対話ルールは、JSON構造、又はMarkdown、YAML、XMLなどの他の任意の構造化文書フォーマットを含むがこれらに限定されない任意の好適な様態で構成可能である。対話ルールは、テキストファイル、又は任意の好適なファイルから読み取られてもよく、機械学習モデルによって、プログラム的に生成されてもよく、又はルータ4コードで直接作成されてもよい。
【0015】
条件
対話ルールは、任意の好適なデータに対して一致するための条件を含み得る。例えば、インテント認識又は正規表現一致を使用して、対話ルールをトリガしてもよい。任意の好適なブール演算子又は比較演算子が使用されてもよく、存在(「含む」)、(不)同等、より大きい、より大きい、より大きい又はそれに対して大きい、より小さい、より小さい又はそれに対して等しい、を含むがこれらに限定されない。より複雑な対話ルールは、AND、OR、及びNOTブロックを使用して、組み合わされた入れ子式条件付き構造を含み得る。自然言語理解(natural language understanding、NLU)サービスからのインテント一致が、使用されてもよい(例えば、SNIPSインテント一致)。そのような場合、条件は、要求されるインテントマッチ信頼度を定義し得る。エンティティマッチ(例えば、SNIPSエンティティマッチ)の場合、共通エンティティ値は、名前又はスロット値であってもよい。
【0016】
アクション
対話ルールアクションは、出力フォーマット文字列又はコマンドフォーマット文字列によって表され得る。フォーマット文字列を使用して、フリー形式テキストと、フォーマット文字列引数を介した要求ルール及び応答ルールの処理から利用可能な特定値と、の両方の任意の組み合わせを構築することができる。例えば、「output」:「Ok,I’ll repeat that you said %input」は、フリーテキストプレフィックスと、それに続く%inputの値からなる、エージェントが発話するテキスト文字列を発する出力フォーマット文字列であり、これは、入力要求における「the speech to text」テキストである。各アクションフォーマット文字列は、使用することができる有効なフォーマット文字列引数のセットを有する。
【0017】
ターゲットID
対話ルールは、エントリインスタンス(現在のインスタンス11になるインスタンス)の識別子を指定するターゲットIDを含み得る。例えば、一実施形態において、空のターゲットIDは、現在のインスタンスを使用し続けることを示し、「_last_」のターゲットIDは、現在のインスタンスを前の現在のインスタンスに切り替え、「_pop_」のターゲットIDは、インスタンススタックのトップから現在のインスタンスを除去し、それを今スタックのトップにあるインスタンスに変更し、「_default_」のターゲットidは、現在のインスタンスを指名されたデフォルトインスタンスに切り替える。
【0018】
遷移アクション
対話ルールの一致が現在のインスタンス11への変更をもたらす場合、ルータ4は、どのアクション又は挙動がもたらされるべきかについて何も仮定せず、デフォルトでは、エージェント発話を発せず、アクションを実行するか、又は会話インスタンスへの要求を行う。対話ルールは、会話インスタンスの変更が検出されたときに必要とされる会話挙動を指定する。
【0019】
遷移アクションは、一致したルールが現在のインスタンスとは異なる会話インスタンスをターゲットとするときのルータ4の挙動を記述する。遷移アクションの例は、以下を含む。
・exit_command、これは、テキストコマンドをエグジットインスタンス(間もなく現在のインスタンス11ではなくなるインスタンス)に送信する。エグジットコマンドは、エグジットインスタンスに送信するテキストを構築するために使用することができるフォーマット文字列を指定する。
・entry_command、これは、テキストコマンドをエントリインスタンスに送信する。entry_commandは、間もなく現在のインスタンスになるインスタンスに送信する入力を構築するために使用することができるフォーマット文字列を指定する。例えば、「entry_command」:「the input text was %input」
・output、これは、エージェントが発話するためのテキスト文字列を構築し、発する。「output」は、あるインスタンスから別のインスタンスに遷移するときに発話を変更又は置換するために使用することができるフォーマット文字列を指定する。
・output_fallback、これは、フォーマット引数値のうちの1つ以上が欠落又はブランクであったために出力文字列を構築することができなかった場合、エージェントが発話するためのテキスト文字列を構築及び発する。このアクションは、前の応答を文字列に埋め込む出力セグエ又は繰り返し発話を構築するときに有用であり得る。前の応答がまだ存在しない場合、このアクションを使用して代替発話を構築することができる。
・process_entry_command_response、これは、真に設定されると、ルータに、エントリコマンドに対する応答を処理させ、ルールをそれと一致させようとさせる。したがって、ルータは、インスタンス又はチェーン応答を一緒に入力することから生じる応答を処理する。
・revert_entry_instance、これは、エントリインスタンス会話の状態を、そのインスタンスから最後から2番目の応答の一部としてルータ4によって受信された状態にロールバックする。これは、エントリインスタンスへの次の要求が最後の会話状態で渡されることを強制するフラグを設定し、その結果、要求を解釈する前に、会話が1ターンロールバックされているという効果を有する。
・revert_exit_instance、これは、エグジットインスタンス会話の状態を、そのインスタンスから最後から2番目の応答の一部としてルータ4によって受信された状態にロールバックする。これは、エグジットインスタンスへの次の要求が最後の会話状態で渡されることを強制するフラグを設定し、その結果、要求を解釈する前に、会話が1ターンロールバックされているという効果を有する。
・reset_entry_instanceは、エントリインスタンス会話にリセットを送信する。サポートされた会話プラットフォームの場合、これは会話をその初期状態になるように強制する。
・reset_exit_instance、エグジットインスタンス会話にリセットを送信する。サポートされた会話プラットフォームの場合、これは会話をその初期状態になるように強制する。
・reset_allは、すべてのインスタンス会話にリセットを送信し、これは、各会話をその初期状態になるように強制する。
【0020】
非遷移アクション
非遷移アクションは、一致したルールが現在のインスタンスをターゲットとして識別するときの、すなわち現在のインスタンスに変化がないときの、ルータ4の挙動を記述する。ルール一致の結果、現在のインスタンス11が変更されない場合、対話ルールを処理するときのルータ4のデフォルト挙動は、応答ルールの応答テキストを発し、要求ルールのコマンドとして要求入力テキストを送信することである。一致した対話ルールにおいて遷移アクションが検出されず、指定されたアクションがない場合、対話ルールが定義されていないときと比較して挙動に変化はない。
【0021】
引数
任意の好適な引数(対話変数)が、条件及び/又はアクションにおいて使用され得る。例には以下が含まれるが、これらに限定されない。
・%exit_instance_last_response:エグジットインスタンスから受信された最後の応答
・%entry_instance_last_response:エントリインスタンスから受信された最後の応答
・%last_utterance:任意のインスタンスからの最後の応答
・%input:一致した要求の入力テキスト
・%exit_command_response:エグジットインスタンスに送信されたコマンドから受信した応答、すなわち、指定された場合、上述のexit_commandに対する応答。
・%entry_command_response:エントリインスタンスに送信されたコマンドから受信した応答、すなわち、指定された場合、上述のentry_commandに対する応答。
【0022】
対話ルールのカテゴリ
要求ルール
要求ルールは、入力要求を現在のインスタンスに渡す直前にルータによって処理される。要求ルールは、ターゲットID、条件、及びアクションを含み得、アクションは、遷移アクション又は非遷移アクションであり得る。
【0023】
入力要求は、エンドユーザから受信した任意の好適な入力であり得、ユーザによって行われる口頭の質問又はステートメント、ユーザによる非口頭コミュニケーション(例えば、エンドユーザカメラを介して受信される)、ユーザからのタイプされたメッセージ、ユーザによるGUI対話、又はユーザによるエージェントとの任意の他の対話であってもよい。
【0024】
図2は、入力要求処理のフロー図を示す。ルータ4は、対話コントローラ3から受信した入力要求を傍受し、現在のインスタンス11に渡す前にそれらを検査する。202において、ルータ4は入力要求を受信する。対話コントローラ3から入力要求8を受信すると、ルータ4は、そのルールベースに含まれる要求ルールに対する一致を求めて現在のインスタンス11をポーリングする。言い換えれば、ルータは、適用可能な対話ルールを検索する。204において、ルータ4はまず、要求を、現在のインスタンス11のためのインスタンスルールセットにおいて構成されたルールに一致させることを試みる。206において、現在のインスタンス11上で一致するルールがない場合、ルータ4は、グローバルルールセットのために構成されたルールに要求を一致させようと試みる(その要求ルールに対する一致を求めるためにグローバルルールセットをポーリングする)。入力要求をルールに一致させることは、各ルールで指定された条件を使用して実行される。対話ルールが一致する場合、ルータ4は、対話ルールのターゲットIDによって識別される会話インスタンスを判定する。一致する要求ルールが見つかった場合、ルータ4は、対話ルール(要求ルール)の一致が現在のインスタンス11の変更をもたらすかどうかを判定する。
【0025】
現在のインスタンス11への変更が検出されるかどうかに応じて、ルータ4は、要求ルールによって指定されるように、任意選択の遷移又は非遷移動作を実行する。これらの動作は、インタースティシャル/セグエの発話及びフレーズを発すること、エグジットインスタンス及び/又はエントリインスタンスにコマンドを発行すること、並びにそれらのコマンドへの応答を発することを含む。現在のインスタンス11の変更が検出された場合、ルータ4は、すべてのアクションが実行されると現在のインスタンス11を変更する。入力要求に対してルールが一致しない場合、ルータ4は、要求を現在のインスタンス11に渡す。
【0026】
応答ルール
応答ルールは、会話インスタンスからルータによって出力応答を受信した直後に処理される。現在のインスタンス又は任意の会話インスタンスは、応答ルールをトリガし得る。
【0027】
図3は、出力応答処理のフロー図を示す。ルータ4は、会話インスタンスからのすべての出力応答トラフィックを傍受し、出力応答トラフィックを応答ルールと一致させようと試みる。302において、出力応答が受信される。出力応答は、現在のインスタンス11だけでなく、任意の会話インスタンスから受信され得る。これは、会話ソースが、求められていない応答を提供すること、又は他の刺激若しくは信号に基づいて会話入力を提供することを可能にする。ルータ4は最初に、304において、(それが現在のインスタンス11であるか否かにかかわらず)その応答を受信したインスタンスに対するルールセットからの応答ルールを最初に一致させようと試みる。ルータ4は、そのインスタンスルールセットに含まれる応答ルールに対する一致について、応答を受信したばかりのインスタンスをポーリングする。インスタンスルールセットから一致するルールが見つからない場合、ルータ4は、306において、グローバルルールセットからの一致を試みる(その応答ルールに対する一致についてグローバルルールセットをポーリングする)。応答ルールが一致する場合、ルータ4は、308において、対話ルールによって識別されたターゲットインスタンスのターゲットIDを判定する。一致する応答ルールが見つかった場合、ルータ4は、ルールの一致が現在のインスタンス11の変更をもたらすかどうかを見るためにチェックする。現在のインスタンス11への変更が検出されるかどうかに応じて、ルータ4は、対話ルールによって指定されるように、任意選択の遷移312又は非遷移316の動作を実行する。これらの動作は、インタースティシャル/セグエの発話及びフレーズを発すること、古い及び/又は新しいインスタンスにコマンドを発行すること、並びにそれらのコマンドへの応答を発することを含むことができる。ルール一致が応答に対して行われない場合、ルータ4は、310において、応答を現在のインスタンスに渡す。そうでない場合、ルータ4は、現在のインスタンス11を、対話ルールによって識別されたエントリインスタンスであるように変更する。
【0028】
収集された会話インスタンス10への、及びそれからの会話トラフィックは、監視され、トラフィックの様々な態様は、参加している会話インスタンス10への/それからの会話トラフィックのフローをいつ変えるかを判定することができる。
【0029】
中断ルール
中断ルールは、エージェントの中間発話を中断する。以下の条件のうちの1つ以上が満たされたときにトリガする中断ルールの例は、以下を含む。
・ユーザが十分な大声で話したとき(音声が閾値を超えて検出されたとき)、及び
・ユーザが画面に注意を払っている(これは、顔検出及び/又は視線検出システムを使用して判定され得る)、及び
・エージェントが現在話している
【0030】
繰り返される中断応答を防止するために、ルータ4は、(構成可能な)所定の期間(「中断抑制期間」)が経過し、新しい要求がルータ4によって受信されるまで、他の中断を処理しないように構成されてもよい、例えば、3000ms。
【0031】
ルールセット-インスタンス固有対グローバル
インスタンスルールセットは、それらが構成された特定の会話インスタンスへの、及びそこからのトラフィックに基づいて一致された高度にターゲットにされ、かつ特定のルールの作成を可能にする。インスタンスルールセットは各々、要求、応答、及び中断ルールのリストを含み得る。
【0032】
グローバルルールセットが定義され、これは、望ましくは、単一のロケーション内のすべての会話インスタンスのためのデフォルト挙動を追加することを容易にし、例えば、ブラックボックスのサードパーティコーパスで働くように設計された汎用ルーティング挙動を実装するときに、会話インスタンスが定義される前に、挙動を制御するようにルールを指定する。グローバルルールセットは、グローバルレベルで定義され、要求、応答、及び中断ルールのリストを含む。インスタンスルールセットから一致するルールがない場合、グローバルルールセットが検索される。
【0033】
例示的な実装形態
複数のコーパス
図5は、生来の知識のために構成されたシステムを示す。ルータは、生来の知識に関連付けられた対話ルールに一致するユーザからの任意の入力要求を傍受する。ルータは、入力要求をオーグメンテーションコーパスに転送する(破線)か、又はその対話ルールにおいてプログラムされた応答を直接使用して、入力要求を処理する(実線)。
【0034】
コンテンツは、「出力」非遷移アクションを有する要求ルールを介して、対話ルールにおいて直接作成される。これは、NLUインテントと一致するクエリに対するシングルターン応答を可能にする。これは、エージェントが所定の質問に回答することができるように、又はそうでなければ入力に対して所定の様態で応答することができるように、エージェントに生来の知識を与えることができる。例としては、「あなたの名前は何ですか?」及び「あなたを作った人は誰ですか?」などの一般的に尋ねられる質問に対する回答が挙げられる。
【0035】
図4は、オーグメンテーションコーパスを含む会話オーケストレーションシステムを示す。一実施形態では、オーグメンテーションコーパスは、会話システムがユーザの入力に応答することができないときに、エレガントに応答するように設計された「エレガントな失敗」コーパスである。すべてのユーザ発話は、最初は一次コーパスに送られる。メタ要求、例えば(「繰り返してもらえますか」)は、ルータ4によって直接処理される。一次コーパスが、ユーザ要求を処理することができない場合、それは「エレガントな失敗」コーパスにルーティングされる。
【0036】
複数のコーパスを有するワンショットオーグメンテーション
図7は、マルチトピック会話システムを示す。一次コーパス及びnトピックコーパスが提供されている。ルータは、トピック1-xに関連するユーザ入力を傍受し、それを適切なコーパスに送る。ルータ4は、トピック固有コーパスによって何が処理されるかについての知識を必要とする。他のすべての入力は、一次コーパスに送られる。
【0037】
ルータ4は、ターゲットコーパスをオーグメンテーションコーパスで拡張する。グローバルルールセットが作成又は提供され、それによって、対話ルールは、入力要求に対して一致するインテントを使用して、オーグメンテーションコーパスが応答することができるトピックのうちの1つに対してトリガする。対話ルールがトリガするとき、ルータ4は、現在のインスタンスをオーグメンテーションコーパスインスタンスであるように設定し、入力要求をターゲットコーパスではなくオーグメンテーションコーパスにリダイレクトする。ターゲットコーパスは、ルータ4が最初に入力要求を傍受し、リダイレクトするので、リダイレクトされた入力要求を見ることはない。
【0038】
オーグメンテーションコーパスインスタンスのグローバルルールセットにおける別の対話ルールは、オーグメンテーションコーパスから発せられる出力応答に対して一致し、オーグメンテーションコーパスから出力応答を発する前に、現在のインスタンスをターゲットコーパスにリセットする。
【0039】
対話ルールは、%exit_instance_responseなどのセグエフレーズを組み込み得る。ここで、我々がいたところに戻る。
【0040】
オーグメンテーションインスタンスは、最初にリダイレクトされた要求に対する応答を見たときに、常にターゲットコーパスにリダイレクトするため、ルータ4は、現在のインスタンスがどこにあるかを予測することができるので、この解決策は単純かつ堅牢である。
【0041】
対話ルールは、両方の入力要求8を修正することができる。例えば、対話ルールは、要求を言い換えることができ、それにより、オーグメンテーションコーパスはトピックを正確に識別するより良好な機会を有し-コーパス自体を修正する必要なくインテントの拡張を可能にする)。要求修正を用いて、ユーザ発話は、会話インスタンスに提出する前に、追加テキストと組み合わせられるか、又は完全に置き換えることができる。
【0042】
対話ルールは、オーグメンテーションコーパスからの出力応答9を修正することができる。ルータ4は、会話インスタンスからの出力応答9を追加のテキスト(例えば、セグエのための)と組み合わせるか、又はそれを完全に置き換えることができる。
【0043】
フォールバックシフト
フォールバックシフトでは、単一のターゲットコーパス応答ルールが、ターゲットコーパス会話フォールバックノードがヒットしたときを検出する(ターゲットコーパスへの特定のトピック関連要求に対する一致とは対照的に)。対話ルールは、ターゲットのフォールバックノードからの応答をマスクし、同一の要求をオーグメンテーションコーパスに渡す。ルータは、すべての応答を「トラップ」し、オーグメンテーションコーパスから出力応答を発した後に、現在のインスタンスをターゲットコーパスにリセットする。オーグメンテーションコーパスはまた、入力要求を認識することに失敗し、それ自体のフォールバックノードをトリガし得る。オーグメンテーションコーパスのフォールバックノードは、2レベルの一致を渡した後にのみトリガされるという事実により、そのコンテンツにおいてより具体的であり得る。オーグメンテーションフォールバック応答は、そのルールが、ターゲットコーパスからの応答に対してのみ一致するので、元のフォールバック一致ルールをトリガしない。
【0044】
フォールバックシフトは、ルータのインテント一致が、そのトピックを参照するすべての可能な方法を検出するために必要とされず、その代わりに、ターゲットコーパスがそれに対して何が要求されたかについて何も知らなかったという事実に依存するので、生来の知識よりも堅牢である。加えて、コンテンツ(インテント)上ではなく、フォールバック上で一致しているので、一致されるために競合する可能性があるインテントの可能なドメインにおいて、可能な重複はない。対話ルールは、任意の好適な入力要求又は出力応答の修正を行うことができる。
【0045】
位置保存
ルータは、現在の位置保存を実施し得る。対話ルールにおける「復帰」アクションを使用して、ターゲット会話は、フォールバックトリガされた脱線がターゲットコーパスに戻る前に、最後の既知の良好な位置にリセットすることができる。
【0046】
モードシフト
モードシフトでは、2つ以上のコーパスが提供されてもよく、オーグメンテーションコーパスは、エージェントの特別な関心などの何らかの補足コンテンツを提供する。対話ルールの作成者は、各々のコンテンツについて知っている。
【0047】
各コーパス内のトピックについて知っているターゲットコーパスインスタンスルールセット及び/又はグローバルルールセットは、より長期ベースで新しいコーパスに切り替えることを可能にする。トピックにおける変化が検出されるとき、ルータは、現在のインスタンスを適切なコーパスに切り替え、要求を渡す。これはglassboxアプローチであり、マルチターン会話に好適である。代替的に、応答は、メタデータでマークアップされて、いつマルチターン対話が終了したかを示し得る。
【0048】
モードシフトは、1つの会話から別の会話への特定のアウトレットがいつ作成されるかを検出することができ、それにより、第1のコーパスは、ユーザがターゲットコーパス内でカバーされているものの履歴にいつ切り替えることに関心がある可能性があるかを検出するように調整された対話の何らかの部分、例えば、ターゲットコーパス自体を過度に混乱させることなくターゲットコーパスに関連するより具体的な情報の配信を可能にする能力を有する。このためにメタデータ一致を使用することができ、ターゲットコーパスは、何らかのルールがそれをトラップし、他のコーパスに切り替えるべきであることを示すコンテキスト値を発する。
【0049】
単一のターゲットコーパス内のトピックごとに1つずつ、複数のルータインスタンスを構成する
図6は、同じコーパスへの複数の接続を確立したルータ4を示す。これらのルータ4が、コーパスの内部構造の知識を有する場合、特定の会話スレッド上の進行状況を見失うことなく、コーパス内の異なるトピック間をジャンプすることができる。
【0050】
各インスタンスは、モードシフトにおけるものと同様に作成されたルールを有する同じ単一のコーパスを指す。
【0051】
ルータ4は、同じコーパスに対して複数の別個の接続を行い、この接続は、会話コンテキストを判定するものであり、コーパス内の1つのトピック内をナビゲートすることは、同じコーパスの別のトピック内の場所を混乱させない。これは、他のトピックにおける位置を失うことなく、トピックに依存しないナビゲーションを提供する。
【0052】
スキルモジュールオーケストレーション
スキルモジュール
「スキルモジュール」は、エージェント-ユーザ対話に参加するアプリケーションであり、対話から入力を受信し、及び/又は対話への出力を生成するように構成されている。複数のスキルモジュールは、任意の所与の時間にアクティブであってよく、スキルモジュールの複数のインスタンスもまた、任意の所与の時間にアクティブであってよい。スキルモジュールは、とりわけ、クラウドアプリケーション、ウェブブラウザ内のウェブアプリケーション、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、又はデスクトップコンピュータなどのデバイス上のアプリケーション、などの任意のアプリケーションを含み得る。スキルモジュールは、限定はしないが、エージェント又はGUIを通してユーザと対話すること、タスクを実行すること(例えば、メモをとること、カレンダイベントをスケジュールすること、又は電子メールを送信すること)、サービスを提供すること(例えば、ユーザの質問に回答すること、地図の方向を検索すること)、情報を集めること、ユーザのコンピューティングデバイスを操作すること(例えば、プリファレンスを設定すること、音量、画面の明るさを調整すること、設定を切り替えること)、などの機能を提供することができる。スキルは、娯楽、生産性、金融、リラクゼーション、ニュース、健康及びフィットネス、スマートホーム、音楽、教育、旅行、食品及び飲料、旅行、の領域、又は任意の他の領域にあり得る。
【0053】
スキルモジュールの追加
スキルモジュールは、エージェントと関連付けられるか、又はエージェントに追加され得る。スキルモジュールは、企業によって開発され、次いで、例えば、スキルモジュールをエージェントに登録するためにエージェントプラットフォームビルダによって提供されるユーザインターフェースを通して、エージェントに追加され得る。他のインスタンスでは、スキルモジュールは、エージェントプラットフォームビルダを使用して開発及び作成され、次いで、エージェントプラットフォームビルダを使用して作成されたエージェントに追加され得る。更に他のインスタンスでは、エージェントプラットフォームビルダは、広範囲のタスクに向けられた複数のスキルモジュールを提供するオンラインデジタルストア(「スキルストア」と呼ばれる)を提供する。
【0054】
スキルモジュールリポジトリ
スキルモジュールリポジトリデータベースは、スキルメタデータが、スキルモジュールリポジトリデータベースに記憶され、そこからクエリされ得るように、各スキルについてのスキルメタデータを記憶する。スキルモジュールリポジトリサービスは、利用可能なスキルを検索し、並びにスキルを追加/除去するためのAPIを提供し得る。例えば、GUIが利用可能なスキルのリストを提示することを可能にするために、GUIは、スキルリポジトリサービスにクエリを行って、利用可能なスキルの情報を有するリストを検索する。
【0055】
「スキル使用構成」リポジトリ
いくつかのスキルインスタンスは、追加の構成、例えば、スキルを会話インスタンスにパーソナライズするための追加の情報、を必要とする。例えば、Watson又はDialogFlowのスキルは、顧客からのエンドポイント及び認証情報を必要とする。FAQスキルは、質問及び回答の蓄えを必要とする場合がある。スキルメタデータは、スキルモジュールが必要とする構成についてのメタ情報を含み、エージェント対話エクスペリエンスのプログラマは、スキルによって必要とされる情報を供給し得る。この「構成データ」は、好適なリポジトリに記憶され得る。
【0056】
ルールジェネレータ
各スキルモジュールのスキルメタデータに関連付けられたスキルモジュールのリストが与えられると、ルールジェネレータは、様々なスキルモジュール間のルーティング及び/又はそのアクティブ化に必要とされる対話ルールセットを自動的に生成する。これは、スキルモジュールが、ルータの基礎となる機構の知識なしにユーザによって容易に選択及び/又は組み合わせられることを可能にし、潜在的にユーザ入力に対する応答の手動オーサリングの必要なしに、短時間で複数のトピック及びユースケースに及ぶ複雑な対話の構築を可能にする。
【0057】
ルールジェネレータは、会話インスタンスが起動されるたびに、ルールのセットを生成し得る。ユーザ及び/又は開発者は、特定の会話インスタンスにおいてアクティブであるスキルモジュールから選択し得る。各スキルモジュールのスキルメタデータは、グローバル及びインスタンス固有の要求及び応答ルールを含む対話ルールの生成を可能にする情報を含む。スキルメタデータは、対話ルールを生成するための任意の好適な情報を含んでもよく、以下を含むが、これらに限定されない。
・スキルモジュールが、ユーザ要求を処理すべき条件(特定のユーザクエリ/インテントに応答してなど)
・スキルモジュールが、ユーザ要求を処理することを停止すべき条件(特定のメタデータ値又はスキルモジュール出力が発せられたときなど)
・応答を生成するときに、その目的を記述するモジュールタイプ
・スキルモジュールがホストされ、クエリされ得るエンドポイント
・ルータが特定のスキルモジュールに接続し、それを利用することを可能にする証明書などの、スキルモジュール固有の構成
【0058】
グローバル及びインスタンス固有ルールセットは、各スキルモジュールのスキルメタデータ内の情報に基づいてカスタマイズされる一連の事前定義されたルールテンプレートから、各スキルモジュールについて生成される。特定の対話のために選択された他のすべてのスキルモジュールの記述及びタイプもまた、ユーザ要求が1つのスキルモジュールから別のスキルモジュールに適切にルーティングされることを可能にするために、特定のスキルモジュールのためのルールセットをカスタマイズするために使用される。
【0059】
ルールテンプレートは、JSON又はYAMLなどの構造化文書フォーマットを使用して指定されてもよく、又はコードで直接作成されてもよく、各スキルモジュールのスキルメタデータに含まれる変数値によってポピュレートされるフィールドを含んでもよい。図11は、JSONで実装された応答ルールのためのルールテンプレートを示す。
【0060】
各モジュールタイプは、スキルモジュールに対して適用可能な対話ルールに対応するルールテンプレートのセットに関連付けられる。ルールテンプレートは、スキルモジュールの対応するスキルメタデータにおいて定義された対応する値を使用して、ポピュレートされる変数を含み得る。
【0061】
いくつかの実施形態では、追加のルール(ルールテンプレートの外部にある)を使用して、ルールテンプレートをカスタマイズして対話ルールを作成し得る。例えば、INTENT_MATCHERモジュールタイプの対話ルールは、対話においてどの他のスキルモジュールがアクティブになるかに基づいてカスタマイズされ得る(インテントマッチャースキルは、何が一致しているかに基づいて他のスキルにルーティングされるため)。
【0062】
図8は、対話ルールを生成する方法を示す。ステップ802において、ルールジェネレータは、関連付けられたスキルメタデータを有するスキルモジュールのセットを受信する。ステップ804において、各スキルモジュールについて、ルールジェネレータは、モジュールタイプに適用する1つ以上のルールを判定し、各ルールは、ルールテンプレートに関連付けられている。ステップ806において、モジュールタイプに適用する各ルールについて、ルールジェネレータは、ルールテンプレートを使用して、各スキルモジュールに関連付けられたスキルメタデータからの情報を使用してカスタマイズされたルールを生成する。ステップ808において、ルールジェネレータは、カスタマイズされたルールをルールセットに追加し、ルールセットは、インスタンスルールセット、又はグローバルルールセットであり得る。
【0063】
スキルメタデータオーサリング
スキル作者及び/又はエージェントプラットフォーム所有者は、スキルメタデータを、JSON又はYAMLを含む任意の好適なフォーマットで提供し得る。いくつかの実施形態では、スキルメタデータ情報は、自動化又は部分的に自動化され得る。例えば、スキルメタデータ情報は、スキルの自然言語記述から抽出されてもよいし、又は、機械学習を使用して同様のスキルからとられてもよい。
【0064】
リアルタイムのルール操作
様々なルールセット及びスキルモジュールインスタンス構成からなるルータ構成は、エージェントとのユーザの対話の開始時に、又は対話が展開されるときに(及び対話が修正及び再展開される任意の後続のときに)自動的に生成され得る。対話は、実行中に、特定の対話内に含まれるスキルモジュールを追加、削除、又は修正するためのスキルモジュール応答、ユーザ要求、又は他の外部トリガの結果として再構成され得、その時点で、ルールジェネレータを再実行して、ルータがスキルモジュールの新しいセットと協働するための更新された構成を生成することができる。
【0065】
ユーザからの入力又は特定のスキルモジュールからの出力が与えられると、ルータは、インスタンスに対するルールセットを処理し、続いてグローバルルールセットを順に処理することによって、指定されたルールとの一致を得るように試みる。しかしながら、複数のスキルモジュールを並行してクエリし、ルールを使用して返された結果を比較することは、レイテンシを低減するように働き得る代替アプローチを提供する。
【0066】
INTENT_MATCHERスキルモジュール
応答を生成するのにかかる時間を短縮し、ルールセット生成の自動化を簡略化するために、INTENT_MATCHERスキルモジュールは、自然言語理解を使用し、任意の数のスキルからユーザ入力をルーティングするのに最も適切なスキルを選択する。
【0067】
このスキルモジュールは、[14]に記載されている自然言語理解とは別個である。これは、自然言語理解のための特定のシステム/モデルに限定されず、ユーザ要求を消費し、ユーザ入力を下流スキルにルーティングするためにインスタンスルールセットによって使用される出力を生成することのみが必要とされる。
【0068】
INTENT_MATCHERスキルモジュールのためのルールセットは、応答ルールの形式であり、分類されたインテントを特定のスキルモジュールに一致させ、他のスキルモジュールのスキルメタデータを検査して、スキルモジュール開発者がユーザ要求をその特定のスキルモジュールにルーティングするために使用されるべきであると示した任意のインテントをそれらが含むかどうかを見ることによって生成される。INTENT_MATCHERスキルモジュールの基礎となる自然言語モデルが、特定の対話のために選択されたスキルモジュールに基づいて生成されることを可能にするために、トレーニングフレーズがまた、インテント名に並んで提供され得る。
【0069】
ルータの内蔵機能としてNLPスキルルーティングを提供するのではなく、スキルモジュールを介してINTENT_MATCHERを提供することは、基礎となる自然言語理解アルゴリズムが容易に置換されることを可能にし、この特定のスキルモジュールへのクエリが応答生成パイプラインの異なる部分から行われることを可能にするので、有利である。
【0070】
特定のインテントに対応する複数のスキルモジュールが存在する場合、INTENT_MATCHERスキルモジュールは、複数の会話ターンの過程にわたって曖昧さ除去を実行し得、又はユーザ要求に対応する関連スキルモジュールに関する情報を後続のスキルモジュールに渡して、この曖昧さ除去プロセスを処理し得る。
【0071】
例-処理モジュール
図9は、出力応答を処理するように構成された対話オーケストレーションシステムを示す。ルータ4は、入力要求8を一次コーパスからの会話インスタンスにルーティングする。一次コーパスからの出力応答は、応答を後処理する一連のカスタムモジュール(それらが別個のコーパスであるかのようにルータ4によって扱われる)を通してルーティングされる。図9に示されるシステムでは、カスタムモジュールは、言い換えの形態の後処理、及びジェスチャへのテキスト(例えば、ジェスチャマークアップへテキストを追加)を実装する。しかしながら、本発明はこの点に関して限定されず、任意の数のモジュールが任意の好適な処理を実装し得る。
【0072】
一実施形態では、バックチャネルモジュールは、ユーザに返す応答の配信を制御するように構成される。これらのようなモジュールは、いくつかのタイプのユーザ入力に応答するように設計することができる。他のすべての入力は、一次コーパスにルーティングすることができる。
【0073】
一実施形態では、カスタムモジュールは、エージェントの挙動(例えばSDKにおいて、SDKにおける特別な内部挙動をトリガするためになど、例えば、ランタイム変数の設定)を定義するより広範なシステムに統合される。例えば、身体化エージェント又はアバターを作成し、アニメーション化するための神経挙動モデリングフレームワークの使用は、本発明の譲受人にも譲渡された米国特許第10181213(B2)号に開示され、参照により本明細書に組み込まれる。米国特許第10181213(B2)号に記載されているような神経挙動モデル内では、対話ルールは、身体化エージェントの内部状態を修正し、したがってエージェントの挙動を修正し得る。例えば、対話ルールは、エージェントの感情的表現を修正する身体化エージェント内の特定の変数を設定し得、これは、エージェントの視覚的アニメーション及び/又は音声表現を修正し得る。
【0074】
要約すると、モジュールは、入力を受け取り、それを処理し、任意の所望のアクションを実行し、それをルータに戻す。
【0075】
図10は、様々なスキルモジュールタイプで構成された会話オーケストレーションシステムを示す。各スキルモジュールへの各入力/出力信号は、ルータ(図示せず)を通してルーティングされる。スキルモジュールタイプは、以下を含み得る。
【0076】
BASE_CORPUSスキルモジュール、これは、特定の対話において会話のプライマリスレッドを処理する(特定の対話において1つだけ存在し得る)。ベースコーパススキルは、それ自体で対話を促進するのに十分な機能を提供する。ベースコーパススキルがプロジェクトに含まれるとき、すべてのユーザ入力は、任意の他のデフォルトスキルの前にベースコーパススキルに送信される。
【0077】
DEFAULTスキルモジュール、BASE_CORPUSに加えて、対話内で拡張された会話機能へのアクセスを提供するが、一般に範囲がより制限されている、及び、FALLBACKスキルモジュール、これは、他のスキルモジュールが特定の入力要求を処理することができないことが検出されたときに、ユーザ入力を処理するように設計されている。デフォルトスキルは、他のスキルと並行して働くことを意味するモジュール式/再利用可能な機能を提供する。デフォルトスキルは、matchTypeパラメータによって指定された特定の条件に応じてユーザ入力を受け取る。matchTypesは、最初のユーザ呼び出しを特定のスキルにルーティングし、それを「アクティブ」として指定する。スキルは、自己完結型自然言語理解能力(インテント分類、エンティティ抽出)を実装して、後続の会話ターンを処理し得る。以下はmatchTypesの例である。
・matchType:CUSTOM:ユーザ入力は、正規表現と照合される。
・matchType:INTENT-ユーザ入力は、インテント分類子を使用して照合される。
・matchType:FALLBACK:別のスキルからのフォールバック(スキルがユーザ入力を処理することができないという指示)は、元のユーザ入力がこのスキルにルーティングされることをもたらす。このmatchTypeを有するデフォルトスキルは、他のスキルが処理することができないユーザ入力を処理する機能を実装すべきである。
【0078】
PRE_PROCESSスキルモジュールは、ユーザ入力を下流スキルモジュールに適した形式に変換し、言い換えれば、ユーザ入力が任意の他のスキル(ベースコーパススキルを含む)に送信される前にユーザ入力を処理する。
【0079】
POST_PROCESSスキルモジュールは、エージェントが応答を話す前に上流スキルモジュールの出力を変換する。後処理(Post-process)スキルは、DPによって話される直前に、ベースコーパス又はデフォルトスキルから生成された応答を処理する。
【0080】
PRE_POST_PROCESSスキルモジュールは、PRE_PROCESSスキルモジュールとPOST_PROCESSスキルモジュールの両方の機能を単一のスキルモジュールに組み合わせる。これらのスキルモジュールタイプについての例示的なユースケースは、(ユーザ入力及び会話応答の両方の)翻訳、応答テキストによって調整されたジェスチャマークアップの生成及び順序付け、並びにユーザからの口頭及び非口頭信号に応答してより微妙な発話交替挙動を可能にするために文ごとの様式で応答の配信を制御することを含む。
【0081】
OBSERVERスキルモジュールは、ユーザ入力に応答してエージェントによって話されるいかなる応答も生成しないが、代わりに、スキルモジュール又はデジタルエージェントプラットフォームからの関連付けられたメタデータとともに、ユーザ入力及びスキルモジュールからの関連付けられた応答を観察する。これらのスキルモジュールのアプリケーションは、マルチモーダル解析を含むことができ、又は、対話の終わりに対話のトランスクリプトを記録し、続いてそれを送信することを含むことができる。
【0082】
INTENT_MATCHERスキルモジュールは、ユーザ入力を分析し、その応答は、ユーザ入力をルーティングする後続のスキルモジュールを判定するためにルータによって使用される。インテントマッチャースキルは、matchType:INTENTを用いてユーザ入力を分類し、デフォルトのスキルに送信する。起動時に、インテントマッチャースキルは、構成内の任意の他のデフォルトスキルを分析し、適切なルーティング条件を生成する。ベースコーパススキルが存在するとき、インテントマッチャースキルは、フォールバックが発生したこと、すなわち現在のユーザ入力を処理することができないことをベースコーパスが示すときにのみトリガされる。ベースコーパススキルが存在しないとき、すべてのユーザ入力は、最初にインテントマッチャースキルに送信される。
【0083】
特定のスキルモジュールタイプの複数のインスタンスが存在する場合、スキルモジュールの優先順位は、スキルモジュール記述子情報を使用すること、又は特定のスキルモジュールがユーザ要求を処理することができる優先順位を通知する元のリスト内のスキルモジュールの順序付け、をランダムに含む、任意の好適な様態で判定することができる。
【0084】
メタデータ/メモリ
スキルモジュールは、各スキルモジュールによって定義/付与されたアクセス許可に応じて、ユーザ入力から抽出された情報を共有することができる。この情報の例には、ユーザの名前、場所、及び電子メールアドレスが含まれ得る。このメタデータは、セッションの開始時に外部記憶装置から初期化/検索され、セッションの終了時に外部記憶装置に保持され得る。このメタデータはテキストデータに限定されず、マルチモーダルな性質(画像、オーディオ、ビデオなど)のものであってもよい。
【0085】
スキルモジュールは、エージェントの現在の状態に関する情報にアクセスするように構成され、エージェントのマルチモーダルモデルからのユーザの状態の推定値にアクセスすることもできる。この情報は、リアルタイム値に対応してもよく、又は会話ターンなどの特定の期間にわたる集計であってもよい。この情報は、エージェント及び/又はユーザの感情状態、ユーザが行っている可能性があるジェスチャ、又はエージェントの視野内で観察されたアイテムの分類を含んでもよい。
【0086】
ルータは、特定のスキルモジュール/スキルとのユーザ対話から集められたセッションメタデータ(メモリ)を他のスキルモジュールに渡し(スコーピング機構によって許可された場合)、セッションの開始/終了時にそれらを外部記憶装置に/外部記憶装置から保存/取り出す。このスコーピング機構は、スキルモジュール開発者が、メタデータを他のスキルモジュール、組織と共有することができるかどうか、セッション間で存続できるかどうか、又はメタデータを特定のスキルモジュールだけに限定すべきかどうかを示すことを可能にする。各スキルモジュールは、それが抽出する情報を、情報がスキル間、セッション間、組織間で共有されることができるかどうか、又は単一のスキルのみで使用されるかを判定する「スコープ」でタグ付けすることができる。
【0087】
スキルモジュールとセッションとの間で共有されるメモリは、任意のデータ構造で記憶され得る。一実施形態では、これはマップのアレイの形態をとり、各々が任意の数のキー値ペアを含む。構造化されたフォーマットは、スキルモジュールによって共通の値が集められ、共有され、利用されることを可能にし、一方、構造化されていないフォーマットは、データストリームから集められ、クエリを支援するために構造化された形式に変換され得る。
【0088】
利点
グローバルルールセットは、会話システムが、他の参加コーパスの内容の知識を有することなくヒッチチャット/アイデンティティ及びナビゲーションコーパスにおいて定義された機能へのアクセスを有するようにさせるデフォルト挙動を提供することによって、見えないサードパーティコーパスが拡張されることを可能にする。会話インスタンスが独立した当事者によって作成される場合であっても、ルータは、会話インスタンス間の円滑な移行を可能にする。別々のコーパスが、単一の大きなコーパスを作成する代わりに、サイズを管理可能に保ち、それらを混合してマッチさせるために、異なるトピックについて作成され得る。
【0089】
オーグメンテーションコーパスを待つ際の待ち時間の影響を最小限に抑えるために、対話ルールは、出力応答を待つ間に続く沈黙をカバーするために入力要求をリダイレクトする直前にエージェント発話が発せられることを提供することができる。
【0090】
このアプローチに従って、ルール作成者は、コーパスのいずれかにおける会話挙動の一部を完全にマスクすることができる。例えば、対話ルールは、「あなたの名前は何ですか」と一致し、いずれのコーパスにも渡さずにエージェントに「こんにちは、ジョージです」と発声させることによって、エージェントに新しいアイデンティティを提供することができる。したがって、ターゲットコーパスの知識が必要とされないので、「ブラックボックス」実装が提供される。
【0091】
対話ルールを使用して、追加の会話挙動を比較的容易に導入することができる。対話ルールは、新たな自律型会話機能のプロトタイプ作成及び統合を容易にし、マルチコーパス機能/コンテンツのプロダクションへの戦術リリースを可能にする。
【0092】
システムは、ユーザがアプリ又はサービスを明示的に要求する必要なく、サードパーティのアプリ及びサービスへのアクセスを提供するためのよりシームレスな方法を提供し得る。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
【手続補正書】
【提出日】2022-06-20
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ユーザと、エージェントを提示するコンピュータシステムと、の間の対話を管理するためのコンピュータ実装対話オーケストレーションシステムであって、
対話ルールのセットであって、各対話ルールが、前記対話を修正するように構成された条件及びアクションを含む、対話ルールのセットと、ルータであって、
前記ユーザからの入力要求を受信し、前記入力要求を2つ以上のスキルモジュールのセットからのスキルモジュールに転送することと、前記2つ以上のスキルモジュールからの出力応答を受信し、前記出力応答を前記ユーザ及び/又は前記エージェントに転送することと、を行うように構成された、ルータと、を含み、ここで、前記ルータが、対話ルール条件が入力要求から一致したときに、対応する対話ルールアクションをトリガするように構成されており、かつ、前記ルータが、対話ルール条件が出力応答から一致したときに、対応する対話ルールアクションをトリガするように構成されている、システム。
【請求項2】
スキルモジュールが、会話インスタンスであり、各会話インスタンスが、少なくとも1つの会話ソースからの会話コンテンツを配信するように構成されている、請求項1に記載のオーケストレーションシステム。
【請求項3】
アクションが、入力要求及び/又は出力応答を修正する、請求項2に記載のシステム。
【請求項4】
アクションが、テキストをフォーマット文字列引数の値と連結する、請求項3に記載のシステム。
【請求項5】
アクションが、会話インスタンス間でルーティングする、請求項1~4のいずれか一項に記載のシステム。
【請求項6】
アクションが、会話ソースから独立した会話コンテンツを配信する、請求項1~5のいずれか一項に記載のシステム。
【請求項7】
対話ルールが、すべての会話ソースに適用可能なグローバルルールセットを含む、請求項1~6のいずれか一項に記載のシステム。
【請求項8】
対話ルールが、関連付けられた会話ソースに適用可能な1つ以上のインスタンスルールセットを含む、請求項1~7のいずれか一項に記載のシステム。
【請求項9】
対話ルールが、要求ルール、応答ルール、中断ルール、からなる群から選択される、請求項1~8のいずれか一項に記載のシステム。
【請求項10】
ユーザと、エージェントを提示するコンピュータシステムと、の間の対話型会話を管理するための方法であって、入力要求及び出力応答をインターセプトするように構成されたルータによって、前記ユーザからの入力要求、又は2つ以上の会話インスタンスのセットからの出力応答を受信するステップと、対話ルールのセットからの対話ルールの条件が前記入力要求又は出力応答に一致するかどうかを判定するステップと、前記対話ルールが一致する場合、前記対話ルールによって指定されたアクションを適用するステップであって、前記アクションが、前記対話型会話を修正する、適用するステップと、前記入力要求を、2つ以上の会話インスタンスのセットからの会話インスタンスに転送するステップ、又は前記出力応答を、前記ユーザに転送するステップであって、各会話インスタンスが、少なくとも1つの会話ソースからの会話コンテンツを配信するように構成されている、転送するステップと、を含む、方法。
【請求項11】
アクションが、入力要求及び/又は出力応答を修正する、請求項10に記載の方法。
【請求項12】
アクションが、テキストをフォーマット文字列引数の値と連結する、請求項11に記載の方法。
【請求項13】
アクションが、会話インスタンス間でルーティングする、請求項10~12に記載の方法。
【請求項14】
ユーザと、エージェントを提示するコンピュータシステムと、の間の対話を管理するためのコンピュータ実装方法であって、前記方法が、
前記対話から入力を受信し、かつ/又は前記対話への出力を生成するように構成されたスキルモジュールのセットを受信するステップであって、各スキルモジュールが、スキルメタデータに関連付けられている、受信するステップと、各スキルモジュールについて、前記スキルメタデータを使用して、1つ以上の対話ルールを生成するステップと、前記対話ルールを対話ルールのセットに追加するステップと、を含み、
前記対話ルールのセットが、前記1つ以上のスキルモジュール間をルーティングして、前記ユーザと前記エージェントとの間の前記対話を統括する、コンピュータ実装方法。
【請求項15】
前記1つ以上の対話ルールを生成するステップが、前記スキルメタデータを使用して、前記スキルモジュールが前記対話においてアクティブであるときを判定するための1つ以上のルールテンプレートを判定するステップと、スキルメタデータからの1つ以上の値を使用して、前記1つ以上のルールテンプレートにポピュレートすることによって、1つ以上の対話ルールを生成するステップと、を含む、請求項14に記載の方法。
【国際調査報告】