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

Python运行时使用Dialog.ElicitSlot报错:意图后期填充槽位遇请求错误

解决Dialog.ElicitSlot调用报错的问题

我来帮你搞定这个槽位填充的问题!你遇到的"Request to skill endpoint resulted in an error"错误,本质是因为返回的响应里缺少了Alexa识别槽位收集指令的关键部分——Dialog.ElicitSlot的directive配置,导致Alexa不知道你要触发后期槽位填充的逻辑。

核心问题分析

你之前返回的响应只包含了基础的outputSpeech,但没有告诉Alexa「我要引导用户填充某个特定槽位」,所以技能端点无法正确解析你的请求,进而报错。

正确的Dialog.ElicitSlot响应格式

要实现让用户从列表中选择选项来填充槽位,你的返回结构必须包含directives数组,明确指定触发Dialog.ElicitSlot,同时要配置好目标槽位、当前意图信息,还要给出清晰的选项引导语。

举个具体的示例(假设你要填充的槽位是FavoriteColor,选项为红/蓝/绿):

return {
  "version": "1.0",
  "sessionAttributes": {},
  "response": {
    "outputSpeech": {
      "type": "PlainText",
      "text": "你想选择哪种颜色呢?可选的有红色、蓝色和绿色哦。"
    },
    "reprompt": {
      "outputSpeech": {
        "type": "PlainText",
        "text": "请从红色、蓝色和绿色中选一个告诉我吧。"
      }
    },
    "directives": [
      {
        "type": "Dialog.ElicitSlot",
        "slotToElicit": "FavoriteColor",
        "updatedIntent": {
          "name": "YourTargetIntentName", // 替换成你实际的意图名称
          "slots": {
            "FavoriteColor": {
              "name": "FavoriteColor",
              "value": null
            }
            // 如果有其他已填充的槽位,也可以在这里保留它们的value
          }
        }
      }
    ],
    "shouldEndSession": false
  }
};

关键注意事项

  • 必须包含directives数组:这是触发Alexa槽位收集逻辑的核心,没有它Alexa无法识别你的意图
  • 槽位名称要精准匹配:slotToElicit的名称必须和你在技能控制台定义的槽位名称完全一致(包括大小写),拼写错误会直接导致失败
  • updatedIntent要正确配置:必须填写当前触发的意图名称,槽位部分要包含所有相关槽位的状态(已填充的可以保留value,未填充的设为null)
  • 不要关闭会话:shouldEndSession必须设为false,这样用户才能继续和技能交互选择选项
  • 引导语要清晰:outputSpeech里必须明确给出可选列表,让用户清楚该说什么来填充槽位

按照这个结构调整你的返回内容后,应该就能正常触发用户选择槽位的流程,不会再出现端点错误啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:10:37