我可以在 alexa 语音服务中动态创建自定义插槽类型吗?

Can I create custom slot types dynamically in alexa voice service?

我想为从用户那里得到的响应创建槽类型,因为我想使用该槽再次查询。找不到任何官方文档说明这是否可行。

我认为您是指 Alexa Skills Kit,而不是 Alexa 语音服务。它是您编写技能(应用程序)所用的 Alexa Skills Kit,它是构成对用户的回复的元素。

不可以,您不能自发地组成插槽类型。 Alexa 服务使用包含槽类型的交互模型将声音数据转换为意图+槽。为了 return 最高质量,他们需要一个固定的交互模型。这是在设计时提供的,"compiled" 进入他们的识别级别。因此,它们不支持需要临时更改交互模型的功能。

我认为,事实上,这是可能的。您必须定义自定义插槽类型,如此处所述:https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/defining-the-voice-interface#custom-slot-types

现在,自定义槽类型要求您提供可能的值,您应该这样做。但!似乎 Alexa 仍会正确解析插槽值,即使它们不在您提供的可能值列表中!

这似乎是一个未记录的功能,我告诉你的是基于我自己的观察:

总的来说,我的印象是交互模型作为一个整体不应被视为一套严格的规则,而应更多地被视为由 Alexa 语音服务自行决定解释的指南。

我能够通过使用名为 'query.' 的自定义插槽类型创建一个名为“搜索”的自定义意图来实现这一确切目标。这会将用户在插槽值中所说的任何内容发送到我的网络服务按字符串搜索。

我不得不在插槽值部分中放入一个示例(以通过验证),但在我的测试中,插槽正在接收动态数据并传递到我的 Web 服务,正如您所期望的那样。请参阅随附的屏幕截图。

screen shot of search intent