IntentDialog class
識別使用者意圖,並選擇性地從使用者語句擷取實體。
- Extends
建構函式
| Intent |
建構 IntentDialog 的新實例。 |
方法
| add |
針對連結庫內的每個對話呼叫一次,讓對話有機會將其 |
| begin<T>(Session, T) | 在啟動新的對話會話時呼叫。 |
| begin |
將動作系結至對話,該對話框會在每次觸發時啟動另一個對話方塊。 新的對話框將會推送至堆疊,因此不會自動結束目前的工作。 新的對話框結束時,將會繼續目前的工作。 內建提示會在發生此情況時自動重新提示使用者,但藉由在呼叫內建提示時設定 promptAfterAction 旗標,即可停用該行為。 |
| cancel |
|
| clone(Action |
傳回現有 ActionSet 的複製品。 |
| custom |
將自定義動作系結至對話框,此對話框會在觸發時呼叫傳入的 onSelectAction 處理程式。 |
| dialog |
當根對話被另一個對話框中斷時呼叫。 這可讓對話框在從堆疊中移除之前,中斷執行自定義邏輯的機會。 對話本身負責清除對話堆疊,並開始新的對話。 |
| dialog |
子對話已結束,目前對話正在繼續。 |
| end |
系結動作,以在觸發時結束與使用者的交談。 |
| find |
在 Library.findRoutes() 期間呼叫, 呼叫堆棧上每個對話,以判斷用戶語句是否觸發任何對話動作。 |
| matches(Reg |
在使用者語句中偵測到指定的意圖時,叫用處理程式。
|
| matches |
在使用者語句中偵測到任何指定的意圖時,叫用處理程式。
|
| on |
在呼叫 session.beginDialog() 之後,第一次載入對話框時呼叫。 這可讓 Bot 有機會處理傳遞至對話框的自變數。 處理程式應該一律呼叫 |
| on |
沒有符合使用者意圖的處理程式時要叫用的默認處理程式。
|
| recognize(IRecognize |
剖析使用者語句,並從 0.0 - 1.0 指派分數,指出對話了解用戶語句的信心。 這個方法一律會針對堆疊上的使用中對話框呼叫。 分數為 1.0 表示完美相符,並終止任何進一步的辨識。 當分數小於 1.0 時,堆棧上的每一個對話框都會有其 recognizeAction() 方法呼叫,以查看是否有任何系結至對話的具名動作,更符合用戶語句。 也會評估在 Bot 層級註冊的全域動作。 如果對話框的分數較高,則會使用 recognize() 呼叫傳回的結果物件,呼叫對話框 replyReceived() 方法。 這可讓對話框將辨識階段期間收集的其他數據傳遞至 replyReceived() 方法來進行處理。 如果動作具有較高的分數,則會叫用該動作的對話框,而不是 dialogs replyReceived() 方法。 對話框會保留在堆疊上,而且如果動作叫用新的對話框,可能會在某些時間點繼續執行,因此對話應該為非預期的呼叫做好準備,dialogResumed()。 |
| recognizer(IIntent |
將新的辨識器外掛程式新增至意圖對話框。 |
| reload |
將動作系結至對話框,該對話框會在每次觸發時重載。 這很適合用來實作處理使用者語句的邏輯,例如「開始」。 |
| reply |
處理從使用者收到的訊息。 由對話框系統呼叫。 |
| select |
選取語句信賴分數最高的路由。 |
| trigger |
將動作系結至對話,讓該對話框在每次觸發時都會成為作用中的對話方塊。 默認行為是清除堆疊,並在堆疊根目錄啟動對話,以插入任何現有的對話。 中斷的對話框可以藉由將自定義 onInterrupted 處理程式新增至其觸發動作選項,來攔截此中斷。 此外,您可以藉由將自定義 onSelectAction 處理程式提供給觸發程式動作選項,來自定義觸發對話框的啟動方式。 |
建構函式詳細資料
IntentDialog(IIntentDialogOptions)
建構 IntentDialog 的新實例。
new IntentDialog(options?: IIntentDialogOptions)
參數
- options
- IIntentDialogOptions
(選擇性) 用來初始化對話框的選項。
方法詳細資料
addDialogTrigger(ActionSet, string)
針對連結庫內的每個對話呼叫一次,讓對話有機會將其 triggerAction() 新增至連結庫全域動作集。 這些觸發程式會對應至符合觸發條件時啟動對話框的 beginDialogAction()。
function addDialogTrigger(actions: ActionSet, dialogId: string)
參數
- actions
- ActionSet
連結庫全域動作集。
- dialogId
-
string
要觸發之對話框的完整標識碼。
begin<T>(Session, T)
在啟動新的對話會話時呼叫。
function begin<T>(session: Session, args?: T)
參數
- session
- Session
目前交談的會話物件。
- args
-
T
(選擇性) 自變數由其父代傳遞至對話。
beginDialogAction(string, string, IBeginDialogActionOptions)
將動作系結至對話,該對話框會在每次觸發時啟動另一個對話方塊。 新的對話框將會推送至堆疊,因此不會自動結束目前的工作。 新的對話框結束時,將會繼續目前的工作。 內建提示會在發生此情況時自動重新提示使用者,但藉由在呼叫內建提示時設定 promptAfterAction 旗標,即可停用該行為。
function beginDialogAction(name: string, id: string, options?: IBeginDialogActionOptions)
參數
- name
-
string
要指派動作的唯一名稱。
- id
-
string
要啟動之對話框的識別碼。
- options
- IBeginDialogActionOptions
(選擇性) 用來設定動作的選項。 如果指定 符合,動作會接聽使用者說出觸發動作的單字或片語,否則動作必須使用 CardAction.dialogAction() 系結至按鈕以觸發動作。 您也可以使用 dialogArgs,將其他參數傳遞至正在啟動的對話方塊。
傳回
cancelAction(string, TextOrMessageType, ICancelActionOptions)
將動作系結至對話框,以在每次觸發對話時取消該對話框。 取消時,對話父系將會繼續,並 繼續 程式代碼,指出 取消。
function cancelAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)
參數
- name
-
string
要指派動作的唯一名稱。
(選擇性) 訊息,在取消對話方塊之前傳送使用者。
- options
- ICancelActionOptions
(選擇性) 用來設定動作的選項。 如果指定 符合,動作會接聽使用者說出觸發動作的單字或片語,否則動作必須使用 CardAction.dialogAction() 系結至按鈕以觸發動作。
傳回
clone(ActionSet)
傳回現有 ActionSet 的複製品。
function clone(copyTo?: ActionSet)
參數
- copyTo
- ActionSet
(選擇性) 實例,將目前的 物件複製到 。 如果遺失新的實例,將會建立。
傳回
customAction(IDialogActionOptions)
將自定義動作系結至對話框,此對話框會在觸發時呼叫傳入的 onSelectAction 處理程式。
function customAction(options: IDialogActionOptions)
參數
- options
- IDialogActionOptions
用來設定動作的選項。 如果指定 符合,動作會接聽使用者說出觸發動作的單字或片語。 您可以使用 onFindAction提供自定義比對邏輯。
傳回
dialogInterrupted(Session, string, any)
當根對話被另一個對話框中斷時呼叫。 這可讓對話框在從堆疊中移除之前,中斷執行自定義邏輯的機會。 對話本身負責清除對話堆疊,並開始新的對話。
function dialogInterrupted(session: Session, dialogId: string, dialogArgs: any)
參數
- session
- Session
目前交談的會話物件。
- dialogId
-
string
應啟動之對話框的標識碼。
- dialogArgs
-
any
應該傳遞至新對話框的自變數。
dialogResumed<T>(Session, IDialogResult<T>)
子對話已結束,目前對話正在繼續。
function dialogResumed<T>(session: Session, result: IDialogResult<T>)
參數
- session
- Session
目前交談的會話物件。
- result
子對話所傳回的結果。
endConversationAction(string, TextOrMessageType, ICancelActionOptions)
系結動作,以在觸發時結束與使用者的交談。
function endConversationAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)
參數
- name
-
string
要指派動作的唯一名稱。
(選擇性) 訊息,在結束交談之前傳送使用者。
- options
- ICancelActionOptions
(選擇性) 用來設定動作的選項。 如果指定 符合,動作會接聽使用者說出觸發動作的單字或片語,否則動作必須使用 CardAction.dialogAction() 系結至按鈕以觸發動作。
傳回
findActionRoutes(IRecognizeDialogContext, (err: Error, results: IRouteResult[]) => void)
在 Library.findRoutes() 期間呼叫, 呼叫堆棧上每個對話,以判斷用戶語句是否觸發任何對話動作。
function findActionRoutes(context: IRecognizeDialogContext, callback: (err: Error, results: IRouteResult[]) => void)
參數
- context
- IRecognizeDialogContext
傳入訊息的內容,以及評估對話框的 dialogData。
- callback
-
(err: Error, results: IRouteResult[]) => void
使用最上層候選路由叫用的函式。
matches(RegExp | string, string | IDialogWaterfallStep[] | IDialogWaterfallStep, any)
在使用者語句中偵測到指定的意圖時,叫用處理程式。
注意: 相符專案的完整詳細數據,包括偵測到的實體 & 意圖清單,將會傳遞至第一個瀑布式步驟或對話框的 自變數。
function matches(intent: RegExp | string, dialogId: string | IDialogWaterfallStep[] | IDialogWaterfallStep, dialogArgs?: any)
參數
- intent
-
RegExp | string
- 意圖:{RegExp} - 將評估為偵測用戶意圖的正則表達式。
- 意圖:{string} - IIntentRecognizer 外掛程式所傳回的具名意圖,將用來比對用戶意圖。
- dialogId
-
string | IDialogWaterfallStep[] | IDialogWaterfallStep
- dialogId: _{string} - 比對意圖時要開始的對話標識符。
- dialogId:{IDialogWaterfallStep[]} - 比對意圖時要執行的步驟瀑布。
- dialogId:{IDialogWaterfallStep} - 比對意圖時要執行的單一步驟瀑布。 呼叫內建提示或啟動新的對話框會導致目前對話框在子提示/對話框完成時結束。
- dialogArgs
-
any
(選擇性) 自變數,用來傳遞 dialogId 為 {string}時啟動的對話。
傳回
matchesAny(RegExp[] | string[], string | IDialogWaterfallStep[] | IDialogWaterfallStep, any)
在使用者語句中偵測到任何指定的意圖時,叫用處理程式。
注意: 相符專案的完整詳細數據,包括偵測到的實體 & 意圖清單,將會傳遞至第一個瀑布式步驟或對話框的 自變數。
function matchesAny(intent: RegExp[] | string[], dialogId: string | IDialogWaterfallStep[] | IDialogWaterfallStep, dialogArgs?: any)
參數
- intent
-
RegExp[] | string[]
- 意圖:{RegExp[]} - 將評估為偵測使用者意圖的正則表達式數位。
- 意圖:{string[]} - IIntentRecognizer 外掛程式所傳回的具名意圖數組,用來比對使用者意圖。
- dialogId
-
string | IDialogWaterfallStep[] | IDialogWaterfallStep
- dialogId: _{string} - 比對意圖時要開始的對話標識符。
- dialogId:{IDialogWaterfallStep[]} - 比對意圖時要執行的步驟瀑布。
- dialogId:{IDialogWaterfallStep} - 比對意圖時要執行的單一步驟瀑布。 呼叫內建提示或啟動新的對話框會導致目前對話框在子提示/對話框完成時結束。
- dialogArgs
-
any
(選擇性) 自變數,用來傳遞 dialogId 為 {string}時啟動的對話。
傳回
onBegin((session: Session, args: any, next: () => void) => void)
在呼叫 session.beginDialog() 之後,第一次載入對話框時呼叫。 這可讓 Bot 有機會處理傳遞至對話框的自變數。 處理程式應該一律呼叫 next() 函式,以繼續執行對話主要邏輯。
function onBegin(handler: (session: Session, args: any, next: () => void) => void)
參數
- handler
-
(session: Session, args: any, next: () => void) => void
當對話框開始時要叫用的函式。
傳回
onDefault(string | IDialogWaterfallStep[] | IDialogWaterfallStep, any)
沒有符合使用者意圖的處理程式時要叫用的默認處理程式。
注意: 所偵測到之實體 & 意圖清單在內的辨識嘗試的完整詳細數據,將會傳遞至第一個瀑布式步驟或對話框的 自變數。
function onDefault(dialogId: string | IDialogWaterfallStep[] | IDialogWaterfallStep, dialogArgs?: any)
參數
- dialogId
-
string | IDialogWaterfallStep[] | IDialogWaterfallStep
- dialogId: _{string} - 要開始的對話框標識符。
- dialogId:{IDialogWaterfallStep[]} - 要執行的步驟瀑布。
- dialogId:{IDialogWaterfallStep} - 要執行的單一步驟瀑布圖。 呼叫內建提示或啟動新的對話框會導致目前對話框在子提示/對話框完成時結束。
- dialogArgs
-
any
(選擇性) 自變數,用來傳遞 dialogId 為 {string}時啟動的對話。
傳回
recognize(IRecognizeDialogContext, (err: Error, result: IRecognizeResult) => void)
剖析使用者語句,並從 0.0 - 1.0 指派分數,指出對話了解用戶語句的信心。 這個方法一律會針對堆疊上的使用中對話框呼叫。 分數為 1.0 表示完美相符,並終止任何進一步的辨識。 當分數小於 1.0 時,堆棧上的每一個對話框都會有其 recognizeAction() 方法呼叫,以查看是否有任何系結至對話的具名動作,更符合用戶語句。 也會評估在 Bot 層級註冊的全域動作。 如果對話框的分數較高,則會使用 recognize() 呼叫傳回的結果物件,呼叫對話框 replyReceived() 方法。 這可讓對話框將辨識階段期間收集的其他數據傳遞至 replyReceived() 方法來進行處理。
如果動作具有較高的分數,則會叫用該動作的對話框,而不是 dialogs replyReceived() 方法。 對話框會保留在堆疊上,而且如果動作叫用新的對話框,可能會在某些時間點繼續執行,因此對話應該為非預期的呼叫做好準備,dialogResumed()。
function recognize(context: IRecognizeDialogContext, callback: (err: Error, result: IRecognizeResult) => void)
參數
- context
- IRecognizeDialogContext
要求的內容。
- callback
-
(err: Error, result: IRecognizeResult) => void
使用辨識結果叫用的函式。
recognizer(IIntentRecognizer)
將新的辨識器外掛程式新增至意圖對話框。
function recognizer(plugin: IIntentRecognizer)
參數
- plugin
- IIntentRecognizer
要加入的辨識器。
傳回
reloadAction(string, TextOrMessageType, IBeginDialogActionOptions)
將動作系結至對話框,該對話框會在每次觸發時重載。 這很適合用來實作處理使用者語句的邏輯,例如「開始」。
function reloadAction(name: string, msg?: TextOrMessageType, options?: IBeginDialogActionOptions)
參數
- name
-
string
要指派動作的唯一名稱。
(選擇性) 訊息,以在重載對話方塊之前傳送使用者。
- options
- IBeginDialogActionOptions
(選擇性) 用來設定動作的選項。 如果指定 符合,動作會接聽使用者說出觸發動作的單字或片語,否則動作必須使用 CardAction.dialogAction() 系結至按鈕以觸發動作。 您也可以使用 dialogArgs,在重載時將其他參數傳遞至對話方塊。
傳回
replyReceived(Session, IRecognizeResult)
處理從使用者收到的訊息。 由對話框系統呼叫。
function replyReceived(session: Session, recognizeResult?: IRecognizeResult)
參數
- session
- Session
目前交談的會話物件。
- recognizeResult
- IRecognizeResult
selectActionRoute(Session, IRouteResult)
選取語句信賴分數最高的路由。
function selectActionRoute(session: Session, route: IRouteResult)
參數
- session
- Session
目前交談的會話物件。
- route
- IRouteResult
triggerAction(ITriggerActionOptions)
將動作系結至對話,讓該對話框在每次觸發時都會成為作用中的對話方塊。 默認行為是清除堆疊,並在堆疊根目錄啟動對話,以插入任何現有的對話。 中斷的對話框可以藉由將自定義 onInterrupted 處理程式新增至其觸發動作選項,來攔截此中斷。 此外,您可以藉由將自定義 onSelectAction 處理程式提供給觸發程式動作選項,來自定義觸發對話框的啟動方式。
function triggerAction(options: ITriggerActionOptions)
參數
- options
- ITriggerActionOptions
用來設定動作的選項。