You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AMAZON.LITERAL插槽无返回,Alexa技能对接Web API求助

解决Alexa技能转发用户原始输入到Web API的问题

兄弟,我帮你捋捋这个问题——你用AMAZON.LITERAL插槽拿不到值,根本原因是这个插槽类型早就被亚马逊官方弃用啦!现在它完全不提供功能,不管你加多少示例值都没用。下面给你几个靠谱的替代方案,完美实现把用户所有输入转发到Web API的需求:

方案1:用AMAZON.SearchQuery插槽(最省心的选择)

这个插槽就是专门用来捕获用户的自然语言输入的,能很好地保留原始表述,操作步骤很简单:

  • 新建一个意图(比如叫ForwardInputIntent就行)
  • 给这个意图加一个类型为AMAZON.SearchQuery的插槽,命名成userInput
  • 在意图的样本 utterance 里,写几个类似这样的句式:
    ForwardInputIntent {userInput}
    ForwardInputIntent tell me {userInput}
    ForwardInputIntent say {userInput}
    
    不用写太多,只要让Alexa明白这个插槽是用来承接用户后续所有内容的就行
  • 之后在你的技能后端代码里,直接从request.intent.slots.userInput.value就能拿到用户的原始输入内容

方案2:用AMAZON.FallbackIntent捕获所有漏网输入

如果想让技能不管用户说啥都能接住,FallBack Intent是绝佳选择:

  • 先在技能控制台里手动开启AMAZON.FallbackIntent(默认可能没开)
  • 这个意图不需要额外加插槽,你直接从请求的request.inputTranscript字段就能获取用户完整的语音转文字内容——不管用户说的是啥,这个字段都会返回完整的转录文本
  • 小提醒:有些地区可能限制这个意图的可用性,记得确认下你的技能部署区域支持它

方案3:自定义Catch-All意图(适合需要更灵活控制的场景)

要是上面两种方案都不符合你的需求,你可以自己搞一个万能捕获意图:

  • 新建一个意图,比如叫CatchAllIntent
  • 给它加一堆覆盖各种场景的样本utterance,比如:
    • {catchAll}
    • a {catchAll}
    • the {catchAll}
    • what is {catchAll}
    • 尽量多写不同开头的句式,这样Alexa会把用户的所有输入都匹配到这个意图里
  • 给这个意图加一个自定义插槽catchAll,别给这个插槽设置任何值(留空就行),这样Alexa就会把用户的输入全塞进这个插槽里

最后说个小要点

不管用哪种方案,你都要确保后端代码正确拿到用户输入(要么是插槽值,要么是inputTranscript),然后把这个内容转发到你的Web API,再把API返回的结果整理成Alexa能识别的响应格式返回就好啦。

内容的提问来源于stack exchange,提问作者user6269864

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:58:58