ComponentDialog 类

由其他对话组成的 Dialog

初始化 ComponentDialog 的新实例

构造函数

ComponentDialog(dialog_id: str)

参数

名称 说明
dialog_id
必需
str

要分配给父对话集中新对话框的 ID。

变量

名称 说明
state
<xref:persisted_dialog>

方法

add_dialog

Dialog 添加到组件对话框并返回更新的组件。

begin_dialog

启动对话并将其推送到父级对话堆栈时调用。

如果任务成功,则结果指示对话在对话框处理轮次后是否仍然处于活动状态。

continue_dialog

在对话继续时调用,其中是活动对话,用户使用新活动进行答复。

end_component

在其父上下文中结束组件对话框。

end_dialog

对话框结束时调用。

find_dialog

按 ID 查找对话框。

on_begin_dialog

启动对话并将其推送到父级对话堆栈时调用。

on_continue_dialog

在对话继续时调用,其中是活动对话,用户使用新活动进行答复。

on_end_dialog

在其父上下文中结束组件对话框。

on_reprompt_dialog
reprompt_dialog

当对话框应重新提示用户输入时调用。

resume_dialog

当父对话堆栈上的子对话完成此轮次时调用,并将控件返回到此对话组件。

add_dialog

Dialog 添加到组件对话框并返回更新的组件。

add_dialog(dialog: Dialog) -> object

参数

名称 说明
dialog
必需

要添加的对话。

返回

类型 说明

更新后的 ComponentDialog

begin_dialog

启动对话并将其推送到父级对话堆栈时调用。

如果任务成功,则结果指示对话在对话框处理轮次后是否仍然处于活动状态。

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

参数

名称 说明
dialog_context
必需

会话当前轮次的 DialogContext

options

可选,要传递给对话框的初始信息。

默认值: None

返回

类型 说明

向轮次结束发出信号

continue_dialog

在对话继续时调用,其中是活动对话,用户使用新活动进行答复。

async continue_dialog(dialog_context: DialogContext) -> DialogTurnResult

参数

名称 说明
dialog_context
必需

会话当前轮次的父对话上下文。

返回

类型 说明

向轮次结束发出信号

注解

如果任务成功,则结果指示对话在对话框处理轮次后是否仍然处于活动状态。 结果还可能包含返回值。

如果此方法 重写组件对话框,则调用其内部对话上下文上的 continue_dialog 方法。 如果内部对话堆栈为空,则组件对话结束;如果 result 可用,则组件对话会使用该对话框作为返回值。

end_component

在其父上下文中结束组件对话框。

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

参数

名称 说明
outer_dc
必需

当前对话轮次的父对话上下文。

result
必需

可选,用于从对话框组件返回到父上下文的值。

返回

类型 说明

要返回的值。

注解

如果任务成功,则结果指示对话在轮次处理后结束。

end_dialog

对话框结束时调用。

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

参数

名称 说明
context
必需

此轮次的上下文对象。

instance
必需

与此组件对话框实例关联的状态信息。

reason
必需

对话框结束的原因。

find_dialog

按 ID 查找对话框。

async find_dialog(dialog_id: str) -> Dialog

参数

名称 说明
dialog_id
必需

要添加的对话。

返回

类型 说明

对话框;如果 ID 不匹配,则为 None。

on_begin_dialog

启动对话并将其推送到父级对话堆栈时调用。

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

参数

名称 说明
inner_dc
必需

当前对话轮次的内部对话上下文。

options
必需

可选,要传递给对话框的初始信息。

注解

如果任务成功,则结果指示对话在对话框处理轮次后是否仍然处于活动状态。

默认情况下,这会调用组件对话的初始对话的 begin_dialog 方法。

在派生类中重写此方法以实现中断逻辑。

on_continue_dialog

在对话继续时调用,其中是活动对话,用户使用新活动进行答复。

async on_continue_dialog(inner_dc: DialogContext) -> DialogTurnResult

参数

名称 说明
inner_dc
必需

当前对话轮次的内部对话上下文。

on_end_dialog

在其父上下文中结束组件对话框。

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

参数

名称 说明
turn_context
必需

会话当前轮次的 TurnContext

instance
必需

与此组件对话的内部对话堆栈关联的状态信息。

reason
必需

对话框结束的原因。

context
必需

on_reprompt_dialog

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

参数

名称 说明
turn_context
必需

会话当前轮次的 TurnContext

instance
必需

与此组件对话的内部对话堆栈关联的状态信息。

reprompt_dialog

当对话框应重新提示用户输入时调用。

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

参数

名称 说明
context
必需

此轮次的上下文对象。

instance
必需

此对话框的状态信息。

resume_dialog

当父对话堆栈上的子对话完成此轮次时调用,并将控件返回到此对话组件。

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

参数

名称 说明
dialog_context
必需

对话的当前轮次的对话上下文。

reason
必需

对话恢复的原因。

result

可选,从调用的对话框返回的值。

默认值: None

返回

类型 说明

向轮次结束发出信号

注解

容器通常是堆栈上的叶节点,但开发人员可以自由地在堆栈顶部推送其他对话,这将导致容器在对话结束时收到对 resume_dialog 的意外调用。 为了避免容器过早结束,我们需要实现此方法,只需要求内部对话堆栈重新提示。

属性

persisted_dialog_state

persisted_dialog_state = 'dialogs'