首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最简单的方法是部署现有的AWS、Lex和Lambda作为Alexa技能工具包(ASK)?

最简单的方法是部署现有的AWS、Lex和Lambda作为Alexa技能工具包(ASK)?
EN

Stack Overflow用户
提问于 2021-11-30 22:01:05
回答 1查看 142关注 0票数 0

我目前有一个Lex机器人,需要在我的AWS帐户上的Lambda功能。我想把这个现有的机器人变成一个Alexa技能,但不能轻易地迁移它。

我到目前为止所做的事:

  • 发布一个Lex Bot版本并作为一个ASK导出
  • 将JSON文件导入Alexa Developer控制台JSON编辑器
  • 遵循教程,让我的Alexa技能和Lambda函数相互访问。

我已经签入了CloudWatch日志,而Alexa技术似乎正确地调用了我的函数,但是,它不能满足目的。当它达到对话的目的时,Amazon技能只会说:

代码语言:javascript
复制
You just triggered [IntentName]

据我了解,JSON格式对于Alexa和Lex是不同的。和返回格式如下:

代码语言:javascript
复制
// Alexa return
return handlerInput.responseBuilder
        .speak(speakOutput)
        .reprompt(speakOutput)
        .getResponse();

// AWS Lex return
return {
  sessionAttributes: attributes,
  dialogAction: {
    type: 'Close',
    fulfillmentState: fulfillStatus,
    message: {
      contentType: "PlainText",
      content: messageContent,
    }
  }
};

有什么简单的方法可以将我现有的Lambda函数转换成使用Alexa技能而不需要重写整个功能呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-02 17:34:41

我的问题的答案是:不。因为Lex和Alexa使用不同的API,所以没有办法在Alexa中使用我现有的特定于Lex的Lambda函数。

我发现对两者使用一个Lambda最接近的方法是创建一个中间件,以确定调用Lambda的客户端类型。,然后分别处理Lex API调用Alexa调用。此代码来自AWS QnABot GitHub。

在我看来,这似乎与单一责任的想法背道而驰。因为它们都使用不同的代码,所以创建两个单独的Lambdas似乎更好。请告诉我你对这件事的想法。

不幸的是,Lex代码无法简单地转换到Alexa。希望AWS团队在未来为这个问题创建一个简单的解决方案。

不过,这是专门针对Lex V1的。V2似乎更容易转化为Alexa技能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70176677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档