共用方式為


CommandDialog class

已被取代 請改用 IntentDialog

Extends

方法

addDialogTrigger(ActionSet, string)

針對連結庫內的每個對話呼叫一次,讓對話有機會將其 triggerAction() 新增至連結庫全域動作集。 這些觸發程式會對應至符合觸發條件時啟動對話框的 beginDialogAction()

begin<T>(Session, T)

在啟動新的對話會話時呼叫。

beginDialogAction(string, string, IBeginDialogActionOptions)

將動作系結至對話,該對話框會在每次觸發時啟動另一個對話方塊。 新的對話框將會推送至堆疊,因此不會自動結束目前的工作。 新的對話框結束時,將會繼續目前的工作。 內建提示會在發生此情況時自動重新提示使用者,但藉由在呼叫內建提示時設定 promptAfterAction 旗標,即可停用該行為。

cancelAction(string, TextOrMessageType, ICancelActionOptions)

將動作系結至對話框,以在每次觸發對話時取消該對話框。 取消時,對話父系將會繼續,並 繼續 程式代碼,指出 取消

clone(ActionSet)

傳回現有 ActionSet 的複製品。

customAction(IDialogActionOptions)

將自定義動作系結至對話框,此對話框會在觸發時呼叫傳入的 onSelectAction 處理程式。

dialogInterrupted(Session, string, any)

當根對話被另一個對話框中斷時呼叫。 這可讓對話框在從堆疊中移除之前,中斷執行自定義邏輯的機會。 對話本身負責清除對話堆疊,並開始新的對話。

dialogResumed<T>(Session, IDialogResult<T>)

子對話已結束,目前對話正在繼續。

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

系結動作,以在觸發時結束與使用者的交談。

findActionRoutes(IRecognizeDialogContext, (err: Error, results: IRouteResult[]) => void)

Library.findRoutes() 期間呼叫, 呼叫堆棧上每個對話,以判斷用戶語句是否觸發任何對話動作。

recognize(IRecognizeDialogContext, (err: Error, result: IRecognizeResult) => void)

剖析使用者語句,並從 0.0 - 1.0 指派分數,指出對話了解用戶語句的信心。 這個方法一律會針對堆疊上的使用中對話框呼叫。 分數為 1.0 表示完美相符,並終止任何進一步的辨識。 當分數小於 1.0 時,堆棧上的每一個對話框都會有其 recognizeAction() 方法呼叫,以查看是否有任何系結至對話的具名動作,更符合用戶語句。 也會評估在 Bot 層級註冊的全域動作。 如果對話框的分數較高,則會使用 recognize() 呼叫傳回的結果物件,呼叫對話框 replyReceived() 方法。 這可讓對話框將辨識階段期間收集的其他數據傳遞至 replyReceived() 方法來進行處理。

如果動作具有較高的分數,則會叫用該動作的對話框,而不是 dialogs replyReceived() 方法。 對話框會保留在堆疊上,而且如果動作叫用新的對話框,可能會在某些時間點繼續執行,因此對話應該為非預期的呼叫做好準備,dialogResumed()

reloadAction(string, TextOrMessageType, IBeginDialogActionOptions)

將動作系結至對話框,該對話框會在每次觸發時重載。 這很適合用來實作處理使用者語句的邏輯,例如「開始」。

replyReceived(Session, IRecognizeResult)
selectActionRoute(Session, IRouteResult)

選取語句信賴分數最高的路由。

triggerAction(ITriggerActionOptions)

將動作系結至對話,讓該對話框在每次觸發時都會成為作用中的對話方塊。 默認行為是清除堆疊,並在堆疊根目錄啟動對話,以插入任何現有的對話。 中斷的對話框可以藉由將自定義 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

要指派動作的唯一名稱。

msg
TextOrMessageType

(選擇性) 訊息,在取消對話方塊之前傳送使用者。

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

IDialogResult<T>

子對話所傳回的結果。

endConversationAction(string, TextOrMessageType, ICancelActionOptions)

系結動作,以在觸發時結束與使用者的交談。

function endConversationAction(name: string, msg?: TextOrMessageType, options?: ICancelActionOptions)

參數

name

string

要指派動作的唯一名稱。

msg
TextOrMessageType

(選擇性) 訊息,在結束交談之前傳送使用者。

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

要指派動作的唯一名稱。

msg
TextOrMessageType

(選擇性) 訊息,以在重載對話方塊之前傳送使用者。

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

從呼叫 findActionRoutes() 傳回的結果。

triggerAction(ITriggerActionOptions)

將動作系結至對話,讓該對話框在每次觸發時都會成為作用中的對話方塊。 默認行為是清除堆疊,並在堆疊根目錄啟動對話,以插入任何現有的對話。 中斷的對話框可以藉由將自定義 onInterrupted 處理程式新增至其觸發動作選項,來攔截此中斷。 此外,您可以藉由將自定義 onSelectAction 處理程式提供給觸發程式動作選項,來自定義觸發對話框的啟動方式。

function triggerAction(options: ITriggerActionOptions)

參數

options
ITriggerActionOptions

用來設定動作的選項。

傳回