响应卡在aws lambda

时间:2018-03-15 04:49:18

标签: python aws-lambda amazon-lex

我正在尝试创建一个在其中一个插槽中使用响应卡的聊天机器人。我想尝试更新AWS lambda而不是亚马逊lex上的响应卡,因为我不想在卡片中使用图像。但是当我尝试运行它时,它会发出错误“无效的Lambda响应:从Lambda收到错误响应:未处理”。我想要有响应卡的插槽是扇形插槽。我的代码有问题吗?

enter image description here

以下是我的代码。

var arr = ['na','na','ok'];

console.log(getMoreOccurencesElement(arr));

arr.push('ops');
arr.push('ops');
arr.push('ops');

console.log(getMoreOccurencesElement(arr));

function getMoreOccurencesElement(arr) {
return arr
  .reduce((acc, ele) => {
    var prev = acc.find(x => x.value == ele);
    if(prev) {
      prev.counter = prev.counter + 1;
      return acc;
    }
    return acc.concat({value: ele, counter: 1})
  }, [])
  .sort((a, b) => b.counter - a.counter)[0].value;
}

1 个答案:

答案 0 :(得分:0)

看看response structure documented for Amazon Lex。看起来你使用了dialogAction" type"和"履行国家"不正确。

类型可以设置为:

  • 关闭
  • ConfirmIntent
  • 代表
  • ElicitIntent
  • ElicitSlot(不是" elicit_slot"正如你所知)

fulfillmentState 可以设置为:

  • 达到的
  • 失败
当type设置为Close时,应使用

fulfillmentState。 可能还有其他语法问题,但这些问题很突出。