我正在构建一个聊天机器人,向用户询问一系列可能的响应问题,例如:
Bot:“你想让你的用户说什么?”
UserA:“我的名字是Bob。#chatbots很酷!!!”
或
UserB:“123”
我希望Lex几乎可以接受任何用户响应。目前,如果用户响应与现有插槽不兼容,它将继续重复相同的问题。
是否有内置插槽或构建自定义插槽的方式?
答案 0 :(得分:0)
在Lambda initialization and validation hook
中,您可以调用elicit slot
,以便将整个用户响应作为参数返回。
有关如何使用elicit slot
的示例,请查看一些示例Lex lambda函数。
答案 1 :(得分:0)
您可以创建一个没有任何意图值的插槽,并取消选中所需的复选框。然后在Lambda initialization and validation hook
中,只需从event['inputTranscript']
获取用户输入,然后将该值分配给广告位。
希望它有所帮助。
答案 2 :(得分:0)
Lex没有AMAZON.SearchQuery,但是一种解决方法是在SlotType枚举中包含许多不同的值,就像CloudFormation堆栈根据此blog post创建的Lex bot所做的那样。在这种情况下,自定义广告位类型具有81个枚举值,包括-
在这种机器人的情况下,slot值用于在Elasticsearch实例中进行搜索。
您可以尝试遵循该路径。自定义slot type can have unto 10,000 enumerated values。另请注意,必须启用“扩展值”选项。