CommandDialog class
已被取代 請改用 IntentDialog。
- Extends
方法
| add |
針對連結庫內的每個對話呼叫一次,讓對話有機會將其 |
| begin<T>(Session, T) | 在啟動新的對話會話時呼叫。 |
| begin |
將動作系結至對話,該對話框會在每次觸發時啟動另一個對話方塊。 新的對話框將會推送至堆疊,因此不會自動結束目前的工作。 新的對話框結束時,將會繼續目前的工作。 內建提示會在發生此情況時自動重新提示使用者,但藉由在呼叫內建提示時設定 promptAfterAction 旗標,即可停用該行為。 |
| cancel |
|
| clone(Action |
傳回現有 ActionSet 的複製品。 |
| custom |
將自定義動作系結至對話框,此對話框會在觸發時呼叫傳入的 onSelectAction 處理程式。 |
| dialog |
當根對話被另一個對話框中斷時呼叫。 這可讓對話框在從堆疊中移除之前,中斷執行自定義邏輯的機會。 對話本身負責清除對話堆疊,並開始新的對話。 |
| dialog |
子對話已結束,目前對話正在繼續。 |
| end |
系結動作,以在觸發時結束與使用者的交談。 |
| find |
在 Library.findRoutes() 期間呼叫, 呼叫堆棧上每個對話,以判斷用戶語句是否觸發任何對話動作。 |
| recognize(IRecognize |
剖析使用者語句,並從 0.0 - 1.0 指派分數,指出對話了解用戶語句的信心。 這個方法一律會針對堆疊上的使用中對話框呼叫。 分數為 1.0 表示完美相符,並終止任何進一步的辨識。 當分數小於 1.0 時,堆棧上的每一個對話框都會有其 recognizeAction() 方法呼叫,以查看是否有任何系結至對話的具名動作,更符合用戶語句。 也會評估在 Bot 層級註冊的全域動作。 如果對話框的分數較高,則會使用 recognize() 呼叫傳回的結果物件,呼叫對話框 replyReceived() 方法。 這可讓對話框將辨識階段期間收集的其他數據傳遞至 replyReceived() 方法來進行處理。 如果動作具有較高的分數,則會叫用該動作的對話框,而不是 dialogs replyReceived() 方法。 對話框會保留在堆疊上,而且如果動作叫用新的對話框,可能會在某些時間點繼續執行,因此對話應該為非預期的呼叫做好準備,dialogResumed()。 |
| reload |
將動作系結至對話框,該對話框會在每次觸發時重載。 這很適合用來實作處理使用者語句的邏輯,例如「開始」。 |
| reply |
|
| select |
選取語句信賴分數最高的路由。 |
| trigger |
將動作系結至對話,讓該對話框在每次觸發時都會成為作用中的對話方塊。 默認行為是清除堆疊,並在堆疊根目錄啟動對話,以插入任何現有的對話。 中斷的對話框可以藉由將自定義 onInterrupted 處理程式新增至其觸發動作選項,來攔截此中斷。 此外,您可以藉由將自定義 onSelectAction 處理程式提供給觸發程式動作選項,來自定義觸發對話框的啟動方式。 |
方法詳細資料
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
使用最上層候選路由叫用的函式。
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
使用辨識結果叫用的函式。
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
用來設定動作的選項。