如何扩展Alexa Skill的自定义插槽类型?

时间:2018-08-07 14:13:01

标签: alexa alexa-skills-kit alexa-skill alexa-slot

我想问一个航班号。航班号由EZY,AFR,DLH或CCA等短代码以及3至5位数字的航班号组成。由于我将这些有限的代码集与大量的潜在数字结合在一起,因此我不知道如何定义插槽类型。

我考虑过将其拆分为自定义插槽类型CODE和集成的AMAZON.NUMBERS类型。这样一来,我在模型中就会遇到问题,因为这两个问题都必须满足我的意图,而且我必须要两次询问插槽。

仅键入所有数字的选项似乎是非常不好的做法。如何连接插槽类型?

谢谢。

2 个答案:

答案 0 :(得分:4)

您可以并且应该使用一个自定义SlotType。

Alexa Custom SlotTypes

  

自定义插槽类型定义了插槽代表值的列表。自定义插槽类型用于Amazon内置类型集未涵盖的项目列表。
  ...
  插槽值以书面格式发送给您的技能。例如,“ fire h。d。7”和“ fire h。d。7”都将作为“ Fire HD7”发送给您。为了更好地识别,首字母缩写词和其他涉及口头字母的短语应全部大写(“ HD”)或以句点和空格(“ h。d。”)分隔。

请注意,您在Custom SlotTypes中定义的值不会限制识别用户输入以填充插槽。因此,您无需编写字母数字航班代码的所有可能组合。只需提供大量示例,Alexa就会学习模式并基于但不限于这些示例值来识别语言。

以下是有关如何在SlotType中写入值的一些建议,以便Alexa将输出所需的格式:Custom SlotType Values

答案 1 :(得分:4)

创建一个自定义FLIGHT_NUMBER插槽,并提供各种示例值。

  

创建自定义广告位类型时,需要了解的关键概念是   这是Alexa NLP(自然语言)的训练数据   处理中)。您提供的值不是严格的枚举或数组   限制了用户可以说的话。这有两个含义

     

1)不在您的广告位值中的单词和短语会被传递给您,

     

2)您的代码需要执行所需的任何验证(如果有的话)   说不明。

广告位值中的缩写和数字

在处理诸如EZY或AFR或DLH之类的缩写时,后面要加上数字,您必须提供这样的样本槽值。 (尝试提供更多变化)

e. z. y. two four seven nine three four
a. f. r. one two three four one two 
d. l. h. two three eight zero eight zero

并始终在后端验证您的广告位值。

在“测试模拟器”中进行测试时,请使用类似

的发音
  

航班号a。 F。河一二三四有一二

您将获得slot的值为AFR238080。 Alexa生成的示例请求如下:

"intent": {
            "name": "FlightNumberIntent",
            "confirmationStatus": "NONE",
            "slots": {
                "flightNumber": {
                    "name": "flightNumber",
                    "value": "AFR238080",

...
相关问题