Library class
ルーティング目的で使用される関連ダイアログのライブラリ。 ライブラリを連結して、複雑なボットの開発を可能にすることができます。 UniversalBot クラス自体は、このチェーンのルートを形成するライブラリです。 再利用可能なパーツのライブラリは、ボットと同様に新しいライブラリ インスタンスを作成し、ダイアログを追加することで開発できます。 ライブラリには、ライブラリ Web サイトまたは NPM モジュール名に対応する一意の名前が必要です。 その後、UniversalBot.library()を使用して、パーツ ライブラリ インスタンスをボットに追加するだけで、ボットでライブラリを再利用できます。 ライブラリ自体が他のライブラリに依存している場合は、Library.library()を使用して、ライブラリに依存関係として追加する必要があります。 ライブラリ名にバージョン番号を追加することで、ライブラリの複数のバージョンを簡単に管理できます。
ライブラリ ボット内でダイアログを呼び出すには、session.beginDialog() を ':' の形式で完全修飾ダイアログ ID で呼び出す必要があります。 通常は、ダイアログを開始するモジュールから関数を公開することで、開発者に対してこれを非表示にします。
したがって、myLib.someDialog(session, { arg: '' }); のようなものを呼び出すと、内部で session.beginDialog('myLib:someDialog', args); を呼び出すことになります。
ダイアログは常に現在のダイアログ内で呼び出されるため、ライブラリのダイアログ内で、すべての beginDialog() がライブラリ名で呼び出す前にプレフィックスを付ける必要はありません。 ライブラリ名のプレフィックスを含める必要があるのは、あるライブラリ コンテキストから別のライブラリ コンテキストに交差する場合のみです。
コンストラクター
| Library(string) | ライブラリの新しいインスタンスを作成します。 |
プロパティ
| name | ライブラリ固有の名前空間。 これは、ライブラリ ダイアログとローカライズされたプロンプトを解決するために使用されます。 |
| Route |
メソッド
| add |
結果セットへの候補ルートの追加を管理するために、さまざまなルート検索メソッドから呼び出されるヘルパー メソッド。
|
| begin |
トリガーされるたびに別のダイアログを開始するグローバル アクションを登録します。 新しいダイアログはスタックにプッシュされるため、現在のタスクは自動的に終了しません。 現在のタスクは、新しいダイアログが終了すると続行されます。 組み込みプロンプトは、これが発生するとユーザーに自動的に再プロンプトを表示しますが、組み込みプロンプトを呼び出すときに promptAfterAction フラグを設定することで、その動作を無効にすることができます。 |
| best |
複数のあいまいなルートを含む結果セット内で使用する最適なルートを検索します。 次のあいまいさを解消する方法が使用されます。
|
| clone(Library, string) | 既存のライブラリの複製を返します。 |
| custom |
トリガーされたときに渡された onSelectAction ハンドラー |
| dialog(string, Dialog | IDialog |
ライブラリからダイアログを登録または返します。 |
| end |
トリガーされたときにユーザーとの会話を終了するグローバル アクションを登録します。 |
| find |
現在のメッセージを理解しているアクティブなダイアログの信頼度を取得します。 ダイアログは現在のライブラリのメンバーである必要があります。それ以外の場合は、スコア 0.0 が返されます。 |
| find |
ライブラリとそのすべての依存関係で特定のダイアログを検索します。 見つかった場合はダイアログを返し、それ以外の場合は null を返します。 |
| find |
ライブラリを検索して、グローバル アクションがトリガーされているかどうかを確認します。 |
| find |
現在のメッセージを処理する候補ルートを検索します。 メッセージの処理を実際に開始するには、返された結果の 1 つ selectRoute() を呼び出す必要があります。
既定の検索ロジックは、onFindRoute() を使用してオーバーライドでき、現在のライブラリのみが検索されるため、階層内の各ライブラリ |
| find |
セッション ダイアログ スタックを検索して、アクションがトリガーされたかどうかを確認します。 |
| for |
すべてのライブラリ ダイアログを列挙します。 |
| for |
すべてのライブラリの子ライブラリを列挙します。 呼び出し元は、階層を列挙するときに循環参照を回避するために適切な手順を実行する必要があります。 ほとんどの場合、libraryList() の呼び出しは、サイクルを回避するためのロジックが既に含まれているので、より良い選択です。 |
| library(Library | string) | ライブラリの依存関係を登録または返します。 |
| library |
階層内の一意のライブラリの一覧を返します。 ライブラリ階層のルートで呼び出す必要があり、2 つの子ライブラリが同じ依存ライブラリを参照するときに作成されるサイクルを回避する必要があります。 |
| locale |
ローカライズされたプロンプトを含むライブラリ "/locale/" フォルダーへのパスを取得または設定します。 ライブラリのプロンプトは、このパスの下の "/locale/<IETF_TAG>/.json" ファイルに格納する必要があります。"<IETF_TAG>" はロケールの 2 から 3 桁の言語タグを表し、"" はライブラリ名前空間に一致するファイル名です。 |
| on |
既定 ルート検索ロジック findRoutes() をカスタム実装に置き換えます。 |
| on |
selectRoute() の既定 |
| recognize(IRecognize |
ライブラリ認識エンジンを使用して、ユーザーのテキスト発話を意図と照合しようとします。 詳細については、IIntentRecognizer.recognize() |
| recognizer(IIntent |
ライブラリに新しい認識エンジン プラグインを追加します。 |
| select |
現在のメッセージをアクティブなダイアログにルーティングします。 |
| select |
現在のメッセージをトリガーされたグローバル アクションにルーティングします。 |
| select |
選択したルートを使用して、現在のメッセージの処理をトリガーします。 既定のロジックは、onSelectRoute()を使用してオーバーライドできます。 |
| select |
現在のメッセージをトリガーされたスタック アクションにルーティングします。 |
コンストラクターの詳細
Library(string)
ライブラリの新しいインスタンスを作成します。
new Library(name: string)
パラメーター
- name
-
string
ライブラリの一意の名前空間。
プロパティの詳細
name
ライブラリ固有の名前空間。 これは、ライブラリ ダイアログとローカライズされたプロンプトを解決するために使用されます。
name: string
プロパティ値
string
RouteTypes
static RouteTypes: Object
プロパティ値
Object
メソッドの詳細
addRouteResult(IRouteResult, IRouteResult[])
結果セットへの候補ルートの追加を管理するために、さまざまなルート検索メソッドから呼び出されるヘルパー メソッド。
- スコアが大きい場合、セット内の現在の最適な一致は、新しい一致のみを含む新しい結果セットが返されます。
- スコアが現在の最適な一致と等しい場合は、既存のセットに追加されます。
- スコアが現在のベスト マッチより小さい場合は無視されます。
static function addRouteResult(route: IRouteResult, current?: IRouteResult[])
パラメーター
- route
- IRouteResult
セットに追加する候補ルート。
- current
(省略可能) ルートも追加する結果セット。 見つからない場合は、ルートのみを含む新しいセットが返されます。
戻り値
beginDialogAction(string, string, IDialogActionOptions)
トリガーされるたびに別のダイアログを開始するグローバル アクションを登録します。 新しいダイアログはスタックにプッシュされるため、現在のタスクは自動的に終了しません。 現在のタスクは、新しいダイアログが終了すると続行されます。 組み込みプロンプトは、これが発生するとユーザーに自動的に再プロンプトを表示しますが、組み込みプロンプトを呼び出すときに promptAfterAction フラグを設定することで、その動作を無効にすることができます。
function beginDialogAction(name: string, id: string, options?: IDialogActionOptions)
パラメーター
- name
-
string
アクションを割り当てる一意の名前。
- id
-
string
開始するダイアログの ID。
- options
- IDialogActionOptions
(省略可能) アクションの構成に使用されるオプション。 一致する が指定されている場合、アクションはユーザーがアクションをトリガーする単語または語句を読み上げるのをリッスンします。それ以外の場合は、アクションをトリガーする CardAction.dialogAction() を使用して、アクションをボタンにバインドする必要があります。 dialogArgs を使用して、開始するダイアログに追加のパラメーターを渡すこともできます。
戻り値
bestRouteResult(IRouteResult[], IDialogState[], string)
複数のあいまいなルートを含む結果セット内で使用する最適なルートを検索します。 次のあいまいさを解消する方法が使用されます。
- : カスタム ルートの種類が最も優先度が高く、優先されます。 これにより、開発者はボット内のルーティングを非常に強力な方法でオーバーライドできます。
- ActiveDialog: アクティブなダイアログが次に高い優先度です。
- StackAction: スタック アクションは次に優先度が高く、スタック位置が最も深いアクションが返されます。
-
GlobalAction: グローバル アクションが最も低い優先度です。
dialogStackがスタックの最も深いライブラリからのアクションの中で過ぎている場合は、優先されます。 それ以外の場合は、最初のものが返されます。
static function bestRouteResult(routes: IRouteResult[], dialogStack?: IDialogState[], rootLibraryName?: string)
パラメーター
- routes
フィルター処理する候補ルートの配列。
- dialogStack
(省略可能) 優先するライブラリ グローバル アクションを決定するために使用されるダイアログ スタック。
- rootLibraryName
-
string
(省略可能) グローバル アクションをあいまいにせず、スタックにダイアログがない場合に優先するライブラリ名前空間。
戻り値
clone(Library, string)
既存のライブラリの複製を返します。
function clone(copyTo?: Library, newName?: string)
パラメーター
- copyTo
- Library
(省略可能) 現在のオブジェクトのコピー先のインスタンス。 見つからない場合は、新しいインスタンスが作成されます。
- newName
-
string
(省略可能) 指定した場合、返されるコピーの名前が新しい名前に変更されます。
戻り値
customAction(IDialogActionOptions)
トリガーされたときに渡された onSelectAction ハンドラー
function customAction(options: IDialogActionOptions)
パラメーター
- options
- IDialogActionOptions
アクションの構成に使用するオプション。 一致する が指定されている場合、アクションはユーザーがアクションをトリガーする単語または語句を読み上げるのをリッスンします。 カスタム 照合ロジックは、onFindActionを使用して提供できます。
戻り値
dialog(string, Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep, boolean)
ライブラリからダイアログを登録または返します。
function dialog(id: string, dialog?: Dialog | IDialogWaterfallStep[] | IDialogWaterfallStep, replace?: boolean)
パラメーター
- id
-
string
レジストリサイト化または取得されるダイアログの一意の ID。
- dialog
(省略可能) 登録するダイアログまたはウォーターフォール。
ダイアログ: {Dialog} - 追加するダイアログを します。 -
ダイアログ:{IDialogWaterfallStep[]} - 実行するステップのウォーターフォール。 詳細については、IDialogWaterfallStep の
を参照してください。 - ダイアログ:{IDialogWaterfallStep} - 単一ステップウォーターフォール。 組み込みのプロンプトを呼び出すか、新しいダイアログを開始すると、子プロンプト/ダイアログの完了時に現在のダイアログが終了します。
- replace
-
boolean
(省略可能) true の場合、既に登録されている場合、ダイアログは既存のダイアログを置き換える必要があります。
戻り値
endConversationAction(string, TextOrMessageType, ICancelActionOptions)
トリガーされたときにユーザーとの会話を終了するグローバル アクションを登録します。
function endConversationAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)
パラメーター
- name
-
string
アクションを割り当てる一意の名前。
(省略可能) 会話を終了する前にユーザーを送信するメッセージ。
- options
- ICancelActionOptions
(省略可能) アクションの構成に使用されるオプション。 一致する が指定されている場合、アクションはユーザーがアクションをトリガーする単語または語句を読み上げるのをリッスンします。それ以外の場合は、アクションをトリガーする CardAction.dialogAction() を使用して、アクションをボタンにバインドする必要があります。
戻り値
findActiveDialogRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])
現在のメッセージを理解しているアクティブなダイアログの信頼度を取得します。 ダイアログは現在のライブラリのメンバーである必要があります。それ以外の場合は、スコア 0.0 が返されます。
function findActiveDialogRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void, dialogStack?: IDialogState[])
パラメーター
- context
- IRecognizeContext
現在の会話の読み取り専用認識エンジン コンテキスト。
- callback
-
(err: Error, routes: IRouteResult[]) => void
見つかったルートで呼び出す必要がある関数。
- dialogStack
(省略可能) 検索するダイアログ スタック。 既定の動作では、セッションの現在のダイアログ スタックを検索します。
findDialog(string, string)
ライブラリとそのすべての依存関係で特定のダイアログを検索します。 見つかった場合はダイアログを返し、それ以外の場合は null を返します。
function findDialog(libName: string, dialogId: string)
パラメーター
- libName
-
string
ダイアログを含むライブラリの名前。
- dialogId
-
string
ライブラリ内のダイアログの一意の ID。
戻り値
findGlobalActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)
ライブラリを検索して、グローバル アクションがトリガーされているかどうかを確認します。
function findGlobalActionRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void)
パラメーター
- context
- IRecognizeContext
現在の会話の読み取り専用認識エンジン コンテキスト。
- callback
-
(err: Error, routes: IRouteResult[]) => void
見つかったルートで呼び出す必要がある関数。
findRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void)
現在のメッセージを処理する候補ルートを検索します。 メッセージの処理を実際に開始するには、返された結果の 1 つ selectRoute() を呼び出す必要があります。
既定の検索ロジックは、onFindRoute() を使用してオーバーライドでき、現在のライブラリのみが検索されるため、階層内の各ライブラリ findRoutes() 個別に呼び出す必要があります。
function findRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void)
パラメーター
- context
- IRecognizeContext
現在の会話の読み取り専用認識エンジン コンテキスト。
- callback
-
(err: Error, routes: IRouteResult[]) => void
見つかったルートで呼び出す必要がある関数。
findStackActionRoutes(IRecognizeContext, (err: Error, routes: IRouteResult[]) => void, IDialogState[])
セッション ダイアログ スタックを検索して、アクションがトリガーされたかどうかを確認します。
function findStackActionRoutes(context: IRecognizeContext, callback: (err: Error, routes: IRouteResult[]) => void, dialogStack?: IDialogState[])
パラメーター
- context
- IRecognizeContext
現在の会話の読み取り専用認識エンジン コンテキスト。
- callback
-
(err: Error, routes: IRouteResult[]) => void
見つかったルートで呼び出す必要がある関数。
- dialogStack
(省略可能) 検索するダイアログ スタック。 既定の動作では、セッションの現在のダイアログ スタックを検索します。
forEachDialog((dialog: Dialog, id: string) => void)
すべてのライブラリ ダイアログを列挙します。
function forEachDialog(callback: (dialog: Dialog, id: string) => void)
パラメーター
- callback
-
(dialog: Dialog, id: string) => void
各ダイアログで呼び出す反復子関数。
forEachLibrary((library: Library) => void)
すべてのライブラリの子ライブラリを列挙します。 呼び出し元は、階層を列挙するときに循環参照を回避するために適切な手順を実行する必要があります。 ほとんどの場合、libraryList() の呼び出しは、サイクルを回避するためのロジックが既に含まれているので、より良い選択です。
function forEachLibrary(callback: (library: Library) => void)
パラメーター
- callback
-
(library: Library) => void
各子 libray で呼び出す反復子関数。
library(Library | string)
ライブラリの依存関係を登録または返します。
function library(lib: Library | string)
パラメーター
- lib
-
Library | string
- lib:{Library} - 依存関係として登録するライブラリ。
- lib:{string} - 参照するライブラリの一意の名前。 すべての依存関係も検索されます。
戻り値
libraryList(boolean)
階層内の一意のライブラリの一覧を返します。 ライブラリ階層のルートで呼び出す必要があり、2 つの子ライブラリが同じ依存ライブラリを参照するときに作成されるサイクルを回避する必要があります。
function libraryList(reverse?: boolean)
パラメーター
- reverse
-
boolean
(省略可能)true リストがリーフアップから生成される場合は、ルート ライブラリが最後に一覧表示されることを意味します。 既定値は false です。これはルートから生成され、ルート ライブラリが最初に一覧表示されることを意味します。
戻り値
Library[]
localePath(string)
ローカライズされたプロンプトを含むライブラリ "/locale/" フォルダーへのパスを取得または設定します。 ライブラリのプロンプトは、このパスの下の "/locale/<IETF_TAG>/.json" ファイルに格納する必要があります。"<IETF_TAG>" はロケールの 2 から 3 桁の言語タグを表し、"" はライブラリ名前空間に一致するファイル名です。
function localePath(path?: string)
パラメーター
- path
-
string
(省略可能) ライブラリ "/locale/" フォルダーへのパス。 指定した場合、ライブラリパスが更新されます。
戻り値
string
onFindRoutes(IFindRoutesHandler)
既定 ルート検索ロジック findRoutes() をカスタム実装に置き換えます。
function onFindRoutes(handler: IFindRoutesHandler)
パラメーター
- handler
- IFindRoutesHandler
ライブラリに対して findRoutes() が呼び出されるたびに呼び出される関数。
onSelectRoute(ISelectRouteHandler)
selectRoute() の既定
function onSelectRoute(handler: ISelectRouteHandler)
パラメーター
- handler
- ISelectRouteHandler
selectRoute() が呼び出されるたびに呼び出される関数。
recognize(IRecognizeContext, (err: Error, result: IIntentRecognizerResult) => void)
ライブラリ認識エンジンを使用して、ユーザーのテキスト発話を意図と照合しようとします。 詳細については、IIntentRecognizer.recognize()
function recognize(context: IRecognizeContext, callback: (err: Error, result: IIntentRecognizerResult) => void)
パラメーター
- context
- IRecognizeContext
現在の会話の読み取り専用認識エンジン コンテキスト。
- callback
-
(err: Error, result: IIntentRecognizerResult) => void
認識の完了時に呼び出す必要がある関数。
recognizer(IIntentRecognizer)
ライブラリに新しい認識エンジン プラグインを追加します。
function recognizer(plugin: IIntentRecognizer)
パラメーター
- plugin
- IIntentRecognizer
追加する認識エンジン。
戻り値
selectActiveDialogRoute(Session, IRouteResult, IDialogState[])
現在のメッセージをアクティブなダイアログにルーティングします。
function selectActiveDialogRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])
パラメーター
- session
- Session
現在の会話のセッション オブジェクト。
- route
- IRouteResult
- newStack
selectGlobalActionRoute(Session, IRouteResult, IDialogState[])
現在のメッセージをトリガーされたグローバル アクションにルーティングします。
function selectGlobalActionRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])
パラメーター
- session
- Session
現在の会話のセッション オブジェクト。
- route
- IRouteResult
- newStack
selectRoute(Session, IRouteResult)
選択したルートを使用して、現在のメッセージの処理をトリガーします。 既定のロジックは、onSelectRoute()を使用してオーバーライドできます。
function selectRoute(session: Session, route: IRouteResult)
パラメーター
- session
- Session
現在の会話のセッション オブジェクト。
- route
- IRouteResult
findRoutes()への前回の呼び出しから返されたルートの結果。
selectStackActionRoute(Session, IRouteResult, IDialogState[])
現在のメッセージをトリガーされたスタック アクションにルーティングします。
function selectStackActionRoute(session: Session, route: IRouteResult, newStack?: IDialogState[])
パラメーター
- session
- Session
現在の会話のセッション オブジェクト。
- route
- IRouteResult
- newStack