3

我正在构建一个聊天机器人,它会向用户提出一个具有多种可能响应的问题,例如:

机器人:“你想让你的用户简介说什么?”

用户A:“我的名字是鲍勃。#chatbots 很酷!!!”

或者

用户B:“123”

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

是否有一个内置插槽,或者有一种方法可以构建一个以这种方式运行的自定义插槽?

4

3 回答 3

1

Lambda initialization and validation hook您可以在其中调用elicit slot以将整个用户响应作为参数取回。

查看一些示例 Lex lambda 函数,了解如何使用elicit slot.

于 2017-06-11T20:10:01.760 回答
1

您可以创建一个没有任何意图值的插槽,然后取消选中所需的复选框。然后在 中Lambda initialization and validation hook,只需从中获取用户的输入event['inputTranscript']并将该值分配给插槽。

希望能帮助到你。

于 2018-01-04T06:04:51.547 回答
1

Lex 没有AMAZON.SearchQuery,但处理它的一种方法是在 SlotType 枚举中包含许多不同的值,就像在此博客文章中的 CloudFormation 堆栈创建的 Lex 机器人中所做的那样。在这种情况下,自定义插槽类型有 81 个枚举值,包括 -

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

此机器人案例中的槽值用于在 Elasticsearch 实例中进行搜索。

您可以尝试遵循该路径。自定义插槽类型最多可以有 10,000 个枚举值。另请注意,必须启用“扩展值”选项。

于 2019-01-16T03:34:46.857 回答