我使用Amazon Lex详细here构建了BookTrip
僵尸程序。
当与机器人聊天时,用户可以继续预订酒店房间或租车,直到他们结束对话。以下是成功预订的示例,然后通过chatbot界面进行另一次预订尝试:
当我在Amazon Connect联系人流程中使用此聊天机器人时,用户无法在第一次预订后继续预订任何内容。从逻辑上讲,联系流将继续执行BookHotel
或BookCar
意图,直到执行ConnectToAgent
或EndConversation
意图。
我尝试将BookHotel
和BookCar
循环回到"获取客户"的开头。输入块,但错误输出。
答案 0 :(得分:1)
执行此操作的最佳方法是将用户保留在机器人中,直到他们完成所有预订,然后退回到Amazon Connect。您可以通过以下方式执行此操作:
答案 1 :(得分:0)
我发现了一种解决此问题的方法,该方法可以在您有多个意图时使用,尽管有很多缺点。
基本上,在Amazon Connect中创建一个虚拟块。我将Set Contact Attributes与一个名为“ continue”且值为“ continuing”的虚拟属性一起使用。从未使用过。然后在成功时,将其循环回以重新启动Lex块!
保存和发布时没有错误,并且可以很好地满足我的用例。
以下是上面设置的图像的工作原理:
A.播放欢迎提示(以前是Lex块启动时的提示)
B.“获取客户输入”是Lex块。
C. Lex结束任何意图并移至虚拟块(设置接触属性)
D.成功设置虚拟属性后,移回以重新启动B. Lex块。
这里有缺点:
1. Lex块启动时会要求提示,因此您必须将其设计到机器人中,因为它会在您的意图结束时发出一个提示,然后在重新启动时发出另一个提示。 Lex块。
2.这将创建一个无限循环,至少直到用户结束呼叫或会话超时为止。但是,解决此问题的一种方法是创建一个专为说再见而设计的意图,不要将意图的实现指向假人。