允许AWS Lex接受任何用户输入

时间:2017-06-07 17:31:44

标签: amazon-web-services aws-lambda chatbot amazon-lex

我正在构建一个聊天机器人,向用户询问一系列可能的响应问题,例如:

Bot:“你想让你的用户说什么?”

UserA:“我的名字是Bob。#chatbots很酷!!!”

UserB:“123”

我希望Lex几乎可以接受任何用户响应。目前,如果用户响应与现有插槽不兼容,它将继续重复相同的问题。

是否有内置插槽或构建自定义插槽的方式?

3 个答案:

答案 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个枚举值,包括-

  • “正在为我的职业生涯提供支持”
  • “ 1234567890”
  • “两个”
  • “ C”
  • “ e”
  • “开始测验”
  • “退出”

在这种机器人的情况下,slot值用于在Elasticsearch实例中进行搜索。

您可以尝试遵循该路径。自定义slot type can have unto 10,000 enumerated values。另请注意,必须启用“扩展值”选项。