了解机器人对话
构建机器人后,您可以将您的客户端应用程序与 Amazon Lex V2 运行时操作集成,以便与您的机器人进行对话。用户启动与您的机器人的对话时,Amazon Lex V2 会创建一个会话。会话封装了您的应用程序和机器人之间交换的信息。有关更多信息,请参阅 了解 Amazon Lex V2 机器人会话。
典型的对话涉及用户和机器人之间的来回流程。例如:
User : I'd like to make an appointment
Bot : What type of appointment would you like to schedule?
User : dental
Bot : When should I schedule your dental appointment?
User : Tomorrow
Bot : At what time do you want to schedule the dental appointment on 2021-01-01?
User : 9 am
Bot : 09:00 is available, should I go ahead and book your appointment?
User : Yes
Bot : Thank you. Your appointment has been set successfully.
使用 RecognizeText 或 RecognizeUtterance API 操作自行管理对话。使用 StartConversation API 操作让 Amazon Lex V2 为您管理对话。
要管理对话,您必须向机器人发送用户言语,直到对话达到合乎逻辑的结局。当前对话是在会话状态下捕获的。每次用户言语后,会话状态都会更新。会话状态包含对话的当前状态,并由机器人在对每个用户言语的响应中返回。
对话可以处于以下任意状态:
-
ElicitIntent:表示机器人尚未确定用户的意图。
-
ElicitSlot:表示机器人已检测到用户的意图并正在收集履行意图所需的信息。
-
ConfirmIntent:表示机器人正在等待用户确认收集的信息是否正确。
-
Closed:表示用户的意图已完成,并且与机器人的对话已达到合乎逻辑的结局。
用户可以在第一个意图完成后指定新意图。有关更多信息,请参阅 与 Lex V2 机器人的对话上下文。
意图可以具有以下状态:
-
进行中:表示机器人正在收集完成意图所需的信息。这与
ElicitSlot
对话状态有关。 -
等待中:表示当机器人要求提供特定槽位的信息时,用户请求机器人等待。
-
已履行:表示与意图关联的 Lambda 函数中的业务逻辑成功运行。
-
履行就绪:表示机器人收集了履行意图所需的所有信息,并且客户端应用程序可以运行履行业务逻辑。
-
失败:表示意图达成失败。
请参阅以下主题,了解如何通过 Amazon Lex V2 API 来管理您的机器人与用户之间的对话上下文和会话。