首页 > 解决方案 > AWS Lex AlphaNumeric 内置插槽类型不接受字符串

问题描述

我一直在研究具有多个意图的 AWS Lex 机器人。目前我遇到一个问题,插槽类型为 AMAZON.AlphaNumberic的插槽只接受数字。

当我输入诸如“测试”之类的单词时,它不会继续到下一个插槽,但是当输入诸如“1”之类的数字时,它会转到下一个插槽。

我不确定为什么会发生这种情况,但它只是在几天前才开始这样做。

我尝试过:将 Slot Type 更改为AMAZON.NUMBER,重建 Bot 并使用 Number 进行测试,然后继续到下一个 Slot。将 Slot Type 改回AMAZON.AlphaNumeric并重建。错误仍然出现。

编辑:我现在意识到,当第一个插槽类型是AMAZON.AlphaNumeric时,它只接受数字,但第二个插槽是AMAZON.AlphaNumeric类型,它接受字符串和带数字的字符串的值。

对话

插槽类型

标签: amazon-lexaws-lex

解决方案


不要使用AMAZON.AlphaNumeric插槽来捕获用户输入的任何输入。您现在观察到的行为可能会随着您的机器人复杂性随着插槽和意图的增加而改变,因为您无法预测机器人在后端的训练方式。

AMAZON.AlphaNumeric插槽应该用于选择由字母和数字组成的组合(没有空格)如果您可以为预期的输入定义一个正则表达式,然后扩展槽以验证值,那就更好了。如果您的字符串仅包含数字或字母,请按照文档中的说明定义正则表达式。

由于您似乎正在尝试获取街道地址,因此最好使用AMAZON.StreetAddress内置插槽类型。


推荐阅读