通过


IntentDialog class

标识用户意向,并选择性地从用户话语中提取实体。

扩展

构造函数

IntentDialog(IIntentDialogOptions)

构造 IntentDialog 的新实例。

方法

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() 期间调用 堆栈上每个对话的调用,以确定用户话语是否触发了任何对话操作。

matches(RegExp | string, string | IDialogWaterfallStep[] | IDialogWaterfallStep, any)

在用户话语中检测到给定意向时调用处理程序。

注意: 匹配的完整详细信息(包括检测到的意向列表 & 实体)将传递给启动的第一个瀑布步骤或对话 参数

matchesAny(RegExp[] | string[], string | IDialogWaterfallStep[] | IDialogWaterfallStep, any)

在用户话语中检测到任何给定意向时,调用处理程序。

注意: 匹配的完整详细信息(包括检测到的意向列表 & 实体)将传递给启动的第一个瀑布步骤或对话 参数

onBegin((session: Session, args: any, next: () => void) => void)

在调用 session.beginDialog()后首次加载对话时调用。 这使机器人有机会处理传递给对话的参数。 处理程序应始终调用 next() 函数以继续执行对话主逻辑。

onDefault(string | IDialogWaterfallStep[] | IDialogWaterfallStep, any)

没有与用户意向匹配的处理程序时要调用的默认处理程序。

注意: 识别尝试的完整详细信息(包括检测到的意向 & 实体列表)将传递到启动的第一个瀑布步骤或对话的 参数

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

分析用户话语,并分配 0.0 - 1.0 的分数,指示对话理解用户话语的自信程度。 始终为堆栈上的活动对话框调用此方法。 分数为 1.0 表示完美匹配并终止任何进一步识别。 当评分小于 1.0 时,堆栈上的每个对话都将调用其 recognizeAction() 方法,以查看是否有任何已命名操作绑定到对话,以便更好地匹配用户话语。 还将评估在机器人级别注册的全局操作。 如果对话框的分数更高,则任何绑定操作都会调用 dialogs replyReceived() 方法,并将使用从 recognize() 调用返回的结果对象调用。 这样,对话框就可以将识别阶段收集的其他数据传递给 replyReceived() 方法进行处理。

如果某个操作的分数较高,则会调用该操作的对话框,而不是 dialogs replyReceived() 方法。 对话将保留在堆栈上,如果操作调用新对话,可能会在某些时候恢复,因此对话应为 dialogResumed()的意外调用做好准备。

recognizer(IIntentRecognizer)

将新的识别器插件添加到意向对话。

reloadAction(string, TextOrMessageType, IBeginDialogActionOptions)

将操作绑定到对话,该操作将导致对话在触发时重新加载。 这可用于实现处理用户话语(如“开始”)的逻辑。

replyReceived(Session, IRecognizeResult)

处理从用户收到的消息。 由对话框系统调用。

selectActionRoute(Session, IRouteResult)

为话语选择具有最高置信度分数的路由。

triggerAction(ITriggerActionOptions)

将操作绑定到对话,该对话将在每次触发时将其设置为活动对话。 默认行为是通过清除堆栈并在堆栈根处启动对话来插插任何现有对话。 中断的对话可以通过将自定义 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

要触发的对话框的完全限定 ID。

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

要启动的对话框的 ID。

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

应启动的对话框的 ID。

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

用于使用最候选路由调用的函数。。

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} - 匹配意向时要开始的对话的 ID。
  • 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} - 匹配意向时要开始的对话的 ID。
  • dialogId:{IDialogWaterfallStep[]} - 匹配意向时要执行的步骤瀑布。
  • dialogId:{IDialogWaterfallStep} - 匹配意向时要执行的单步瀑布图。 调用内置提示或启动新对话将导致当前对话在子提示/对话框完成时结束。
dialogArgs

any

(可选)参数,用于传递在 dialogId 时启动的对话是 {string}

返回

onBegin((session: Session, args: any, next: () => void) => void)

在调用 session.beginDialog()后首次加载对话时调用。 这使机器人有机会处理传递给对话的参数。 处理程序应始终调用 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} - 要开始的对话的 ID。
  • dialogId:{IDialogWaterfallStep[]} - 要执行的步骤瀑布。
  • dialogId:{IDialogWaterfallStep} - 要执行的单步瀑布图。 调用内置提示或启动新对话将导致当前对话在子提示/对话框完成时结束。
dialogArgs

any

(可选)参数,用于传递在 dialogId 时启动的对话是 {string}

返回

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

分析用户话语,并分配 0.0 - 1.0 的分数,指示对话理解用户话语的自信程度。 始终为堆栈上的活动对话框调用此方法。 分数为 1.0 表示完美匹配并终止任何进一步识别。 当评分小于 1.0 时,堆栈上的每个对话都将调用其 recognizeAction() 方法,以查看是否有任何已命名操作绑定到对话,以便更好地匹配用户话语。 还将评估在机器人级别注册的全局操作。 如果对话框的分数更高,则任何绑定操作都会调用 dialogs replyReceived() 方法,并将使用从 recognize() 调用返回的结果对象调用。 这样,对话框就可以将识别阶段收集的其他数据传递给 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

用于分配操作的唯一名称。

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

当前会话的会话对象。

triggerAction(ITriggerActionOptions)

将操作绑定到对话,该对话将在每次触发时将其设置为活动对话。 默认行为是通过清除堆栈并在堆栈根处启动对话来插插任何现有对话。 中断的对话可以通过将自定义 onInterrupted 处理程序添加到其触发器操作选项来截获此中断。 此外,还可以通过向触发器操作选项提供自定义 onSelectAction 处理程序来自定义触发对话框的启动方式。

function triggerAction(options: ITriggerActionOptions)

参数

options
ITriggerActionOptions

用于配置操作的选项。

返回