1

我从此处BookTrip详细介绍的 Amazon Lex构建了机器人。

与机器人聊天时,用户可以继续预订酒店房间或租车,直到他们结束对话。这是一个成功预订的示例,然后通过聊天机器人界面进行了另一次预订尝试:

预订第二次酒店聊天截图

当我在 Amazon Connect 联系流中使用此聊天机器人时,用户无法在第一次预订之后继续预订任何东西。从逻辑上讲,联系流将继续执行BookHotelorBookCar意图,直到执行ConnectToAgentorEndConversation意图。

联系流截图

我尝试循环BookHotelBookCar返回到“获取客户”输入块的开头,但错误出现了。

4

2 回答 2

1

执行此操作的最佳方法是将用户保留在机器人中,直到他们完成所有预订,然后退出返回 Amazon Connect。您可以通过以下方式执行此操作:

  1. 获取初始预订的槽值
  2. 使用 lambda 来完成意图(写入数据库等)并清除槽值
  3. 使用 ConfrimIntent 来询问“您要添加另一个预订吗”</li>

如果用户回答“是”,确认意图,那么您将引出槽值(从第 1 步开始)

如果用户回答“否”,您将退出到 Amazon Connect

您可以在此处查看 lambda 请求和响应详细信息

在此处的 AWS 开发人员论坛上也有关于此模式的很好的讨论。


于 2018-06-06T19:48:58.930 回答
0

我找到了一种解决方法,它适用于你有多个意图的情况,尽管有几个缺点。

基本上,在 Amazon Connect 中创建一个虚拟块。我将 Set Contact Attributes 与一个名为“continue”的虚拟属性一起使用,其值为“continuing”。它从不使用。然后在成功时,将其循环回以重新启动 Lex 块!

在此处输入图像描述

保存和发布时没有错误,适用于我的用例。

以下是上图设置的工作方式:
A. 播放欢迎提示(这曾经是 Lex 块启动时的提示)
B. “获取客户输入”是 Lex 块。
C. Lex 结束任何意图并移动到虚拟块(设置联系人属性)
D. 设置虚拟属性成功后,返回以重新启动 B. Lex 块。

以下是缺点:
1. Lex 块在启动时需要一些提示,因此您必须将其设计到您的机器人中,因为它会在您的意图结束时提供提示,然后在 Lex 块重新启动时提供另一个提示.
2. 这会创建一个无限循环,至少在用户结束通话或会话超时之前是这样。解决此问题的一种方法是创建一个专门用于说再见的意图,并且不要将该意图实现指向虚拟块。

于 2018-10-06T14:48:23.837 回答