在没有载体短语的情况下抓住用户所说的话。 Amazon.SearchQuery 有替代方案吗?

Grabbing what a user says without a carrier phrase. Is there an alternative to Amazon.SearchQuery?

对于我正在研究的技能,我能够抓住用户所说的内容。但是,我需要 "carrier phrase" 和 Amazon.SearchQuery。在我的技能的某个点上,Carrier Phrase 并不完全是用户友好的。如果用户能够说出一些东西而不是在它前面放一个载体短语,这将很有帮助。喜欢 "What's {term}" 。我希望能够在该意图中只放入“{term}”,但这是不可能的。

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

如果您的技能的某个部分只需要这种行为,slot elicitation 可能是您的最佳选择。这将使该插槽不会对语言模型的其余部分产生负面影响。您可以将其与各种插槽类型一起使用,我相信包括 AMAZON.SearchQuery.

通过仅在您的技能的特定流程中保持这一点,您可以充分利用 Alexa 的语言解析,避免在您自己的技能中这样做(让 Alexa 告诉您 Intents 和 Slots 与尝试 REGEX比赛)。并且仍然能够在需要时引出用户的完整响应。

这里是关于 ElicitSlot (v2 Alexa Node SDK) 的官方博客post: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

如果您在对话中,则可以在没有载体短语的情况下使用 AMAZON.SearchQuery(即包含槽的话语不是意向样本话语而是槽样本话语)。因此,如果您可以触发对话,则可以在缺少值时引出插槽并接受没有锚点的响应。

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