首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在一次使用Amazon时添加相同类型的多个插槽?

如何在一次使用Amazon时添加相同类型的多个插槽?
EN

Stack Overflow用户
提问于 2018-09-23 08:29:53
回答 1查看 2.9K关注 0票数 3

我正在构建一个聊天机器人,允许用户选择一个或多个服务。我想要的是用户在一次发言中添加多个相同类型的插槽。

我的服务时段有如下服务:

  • 咨询
  • 治疗
  • 医疗保健
  • 戒毒治疗..。

我希望用户能够键入以下内容:

代码语言:javascript
复制
I need {Service} and {Service}
I need {Service}, {Service} and {Service}

我需要咨询和治疗

但是当我试图用这些话语来构建时,我会发现这样的错误:

对于意图"FindService“,插槽" {Service}”在"I需要{Service}、{Service}和{Service}“时无效。话语中的插槽必须具有{slotName}的形式。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-24 07:56:41

我能够重现你的错误:

对于意图“_____”,插槽“{__________}”在使用"__________“时无效。话语中的插槽必须具有{slotName}的形式。

--这是由在大括号旁边有任何字符引起的,而Lex需要"{slotName}“两边的空格。您必须完全删除逗号,因为如果您只需在},之间放置一个空格来修复这个逗号,那么您将得到以下错误:

","________“表示意图"___”包含一个不受支持的字符或单词。话语只能由Unicode字符、空格和有效的标点符号组成。有效的标点符号是:缩写、下划线、撇号和连字符的句点。如果您的话语中有一个插槽占位符,请确保它是{slotName}格式,并且两端都有空格。

另外,删除逗号后,还应该收到另一个错误:

插槽名“服务”在意图"FindService“中多次使用"I需要{Service} {Service}和{Service}”。

因此,要解决这个问题,您应该使用不同的slotNames slotType.创建多个插槽,但都使用相同的。使用插槽名,如:Service_one Service_two Service_three。请注意,不能在槽名中使用数字(0-9),否则会得到错误:

为“slots.#.member.name”指定的值无效。成员必须满足正则表达式模式:^(A?)+$

在创建这三个单独的插槽后,您可以编写如下新的有效语句:

代码语言:javascript
复制
I need {Service_one} and {Service_two}
I need {Service_one} {Service_two} and {Service_three}

没有错误的设置。现在我不知道Lex将如何区分话语#2的列表,特别是两个插槽相邻,并寻找相同的slotType值。因此,您必须对其进行测试,并观察Lex如何填充插槽,然后构建相应的Lambda验证代码。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52464381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档