ComponentDialog 類別

由其他對話框組成的 Dialog

初始化 ComponentDialog 的新實例

建構函式

ComponentDialog(dialog_id: str)

參數

名稱 Description
dialog_id
必要
str

要指派給父對話集內新對話框的標識碼。

變數

名稱 Description
state
<xref:persisted_dialog>

方法

add_dialog

Dialog 新增至元件對話框,並傳回更新的元件。

begin_dialog

啟動對話框並推送至父代對話堆棧時呼叫。

如果工作成功,結果會指出對話在對話框處理回合之後是否仍在使用中。

continue_dialog

在繼續對話時呼叫,其中為使用中的對話框,而使用者會以新的活動回復。

end_component

結束其父系內容中的元件對話框。

end_dialog

對話框結束時呼叫。

find_dialog

依標識碼尋找對話框。

on_begin_dialog

啟動對話框並推送至父代對話堆棧時呼叫。

on_continue_dialog

在繼續對話時呼叫,其中為使用中的對話框,而使用者會以新的活動回復。

on_end_dialog

結束其父系內容中的元件對話框。

on_reprompt_dialog
reprompt_dialog

當對話框應該重新提示使用者輸入時呼叫。

resume_dialog

當父代對話堆疊上的子對話完成這個回合時呼叫,將控制權傳回給這個對話元件。

add_dialog

Dialog 新增至元件對話框,並傳回更新的元件。

add_dialog(dialog: Dialog) -> object

參數

名稱 Description
dialog
必要

要新增的對話框。

傳回

類型 Description

更新的 ComponentDialog

begin_dialog

啟動對話框並推送至父代對話堆棧時呼叫。

如果工作成功,結果會指出對話在對話框處理回合之後是否仍在使用中。

async begin_dialog(dialog_context: DialogContext, options: object = None) -> DialogTurnResult

參數

名稱 Description
dialog_context
必要

交談目前回合的 DialogContext

options

要傳遞至對話框的選擇性初始資訊。

預設值: None

傳回

類型 Description

發出回合結尾的訊號

continue_dialog

在繼續對話時呼叫,其中為使用中的對話框,而使用者會以新的活動回復。

async continue_dialog(dialog_context: DialogContext) -> DialogTurnResult

參數

名稱 Description
dialog_context
必要

交談目前回合的父對話內容。

傳回

類型 Description

發出回合結尾的訊號

備註

如果工作成功,結果會指出對話在對話框處理回合之後是否仍在使用中。 結果也可能包含傳回值。

如果此方法 覆寫元件對話框,則會呼叫其內部對話內容上的 continue_dialog 方法。 如果內部對話堆疊是空的,則元件對話會結束,如果有 result 可用,則元件對話方塊會使用該對話方塊做為傳回值。

end_component

結束其父系內容中的元件對話框。

async end_component(outer_dc: DialogContext, result: object) -> DialogTurnResult

參數

名稱 Description
outer_dc
必要

目前交談回合的父對話內容。

result
必要

選擇性的值,從對話框元件傳回至父內容。

傳回

類型 Description

要傳回的值。

備註

如果工作成功,結果表示對話在回合處理后結束。

end_dialog

對話框結束時呼叫。

async end_dialog(context: TurnContext, instance: DialogInstance, reason: DialogReason) -> None

參數

名稱 Description
context
必要

這個回合的內容物件。

instance
必要

與此元件對話框實例相關聯的狀態資訊。

reason
必要

對話框結束的原因。

find_dialog

依標識碼尋找對話框。

async find_dialog(dialog_id: str) -> Dialog

參數

名稱 Description
dialog_id
必要

要新增的對話框。

傳回

類型 Description

對話框;如果標識符不相符,則為 [無]。

on_begin_dialog

啟動對話框並推送至父代對話堆棧時呼叫。

async on_begin_dialog(inner_dc: DialogContext, options: object) -> DialogTurnResult

參數

名稱 Description
inner_dc
必要

目前交談回合的內部對話內容。

options
必要

要傳遞至對話框的選擇性初始資訊。

備註

如果工作成功,結果會指出對話在對話框處理回合之後是否仍在使用中。

根據預設,這會呼叫元件對話框初始對話框的 begin_dialog 方法。

覆寫衍生類別中的這個方法,以實作中斷邏輯。

on_continue_dialog

在繼續對話時呼叫,其中為使用中的對話框,而使用者會以新的活動回復。

async on_continue_dialog(inner_dc: DialogContext) -> DialogTurnResult

參數

名稱 Description
inner_dc
必要

目前交談回合的內部對話內容。

on_end_dialog

結束其父系內容中的元件對話框。

async on_end_dialog(context: TurnContext, instance: DialogInstance, reason: DialogReason) -> None

參數

名稱 Description
turn_context
必要

交談目前回合的 TurnContext

instance
必要

與此元件對話框內部對話堆疊相關聯的狀態資訊。

reason
必要

對話框結束的原因。

context
必要

on_reprompt_dialog

async on_reprompt_dialog(turn_context: TurnContext, instance: DialogInstance) -> None

參數

名稱 Description
turn_context
必要

交談目前回合的 TurnContext

instance
必要

與此元件對話框內部對話堆疊相關聯的狀態資訊。

reprompt_dialog

當對話框應該重新提示使用者輸入時呼叫。

async reprompt_dialog(context: TurnContext, instance: DialogInstance) -> None

參數

名稱 Description
context
必要

這個回合的內容物件。

instance
必要

此對話框的狀態資訊。

resume_dialog

當父代對話堆疊上的子對話完成這個回合時呼叫,將控制權傳回給這個對話元件。

async resume_dialog(dialog_context: DialogContext, reason: DialogReason, result: object = None) -> DialogTurnResult

參數

名稱 Description
dialog_context
必要

交談目前回合的對話內容。

reason
必要

對話繼續的原因。

result

選擇性值,從呼叫的對話框傳回的值。

預設值: None

傳回

類型 Description

發出回合結尾的訊號

備註

容器通常是堆棧上的分葉節點,但開發人員可以自由地將其他對話框推送到堆疊頂端,這會導致容器在對話結束時收到非預期的呼叫 resume_dialog。 若要避免容器過早結束,我們需要實作此方法,並只要求內部對話堆疊重新提示。

屬性

persisted_dialog_state

persisted_dialog_state = 'dialogs'