抓住用户说的话,不带副词。有Amazon.SearchQuery的替代方法吗?

时间:2019-05-17 12:46:47

标签: node.js alexa alexa-skill alexa-slot

对于我正在研究的技能,我能够掌握用户所说的内容。但是,我需要使用Amazon.SearchQuery的“载体短语”。在我的技能的某一点上,运营商用语并非完全用户友好。对于用户来说,仅能够说出一些内容而不是在其前面加上一个载体短语将是有帮助的。就像“ {term}是什么”。我希望能够只使用“ {term}”,但这是不可能的。

我读到Amazon.LITERAL曾经是解决此问题的方法,但现在已弃用,并且仅支持当前的生产技能。

3 个答案:

答案 0 :(得分:1)

只需使用一个空格作为带有AMAZON.SearchQuery:“ {term}”的载体短语。

答案 1 :(得分:0)

如果您仅在技能的某个部分需要这种行为,slot elicitation可能是您最好的选择。这将使此广告位不会对语言模型的其余部分产生负面影响。您可以将其用于各种插槽类型,包括AMAZON.SearchQuery。

通过仅在一定的技能水平上保持这一点,就可以充分利用Alexa的语言解析功能,从而避免以自己的技能进行操作(让Alexa告诉您Intents和Slots与尝试进行REGEX匹配) 。并且仍然能够在需要时引起用户的完整响应。

这是ElicitSlot(v2 Alexa Node SDK)上的官方博客文章:https://developer.amazon.com/blogs/alexa/post/dbceb5dd-3c4d-40f1-be22-172f4050fbcb/building-conversational-alexa-skills-how-to-dynamically-elicit-slots-based-on-a-previous-answer-using-dialog-management

还有一个旧版本(v1 Alexa Node SDK): https://developer.amazon.com/blogs/alexa/post/5fe7565a-9547-4e03-be36-6c62ed356d57/dynamically-elicit-slots-during-dialog-management-based-on-previously-given-slot-values

答案 2 :(得分:0)

如果您在对话框内部(即,包含广告位的话语不是意图样本的话语,而是广告位样本的话语),则可以使用不带附加语的AMAZON.SearchQuery。因此,如果可以触发对话框,则可以在缺少该值时引发该插槽,并接受没有锚点的响应。