【发布时间】:2020-05-20 16:53:17
【问题描述】:
我想创建简单的技能,用户可以在其中找到老师的柜子在哪里。所以基本上是这样的:“Alexa,我在哪里可以找到 X 老师?” “你可以在 Y 房间找到 X 老师”。 我设法创建了 DynamoDB 表,其中我有一个老师的名字作为主键,房间(他们的橱柜)作为主排序键。它应该正确连接到 lambda 和我的 alexa 技能。 我只需要告诉 Alexa 我要找哪位老师,老师的姓名以相同的意图存储在插槽中,然后 Alexa 将检查 DynamoDB 并在主键下搜索从插槽中提取的老师的姓名,然后告诉我来自主排序键的房间名称。 Alexa 中的代码真的让我很困扰。 我检查了我在互联网上可以找到的所有答案和教程,但要么对我没有用,要么太旧,以至于我无法将其转换为 2020 年的 Alexa 编码风格。总的来说,我对 json 和后端编程的了解非常少。 你能给我一些提示或一些我可以遵循的代码吗?在我看来,这样的事情应该很简单,但实际上并非如此,至少对我而言。 提前感谢您的帮助。
【问题讨论】:
-
请分享一些代码sn-ps。
-
目前没有,因为我什么都做不了,我已经发挥作用的技能(只有简单的硬编码答案)根本不起作用,所以我删除了与此有关的所有内容问题,现在回到简单的硬编码答案。我还研究了在 S3 存储桶上创建 csv/json 文件的可能性,我目前将其用于音频文件(以 Alexa 不支持的语言录制的答案)。也许会这样?但我不知道如何从已识别的插槽中获取字符串,在文件中搜索并将其用作答案
-
您需要查看来自 DabbleLab 的此链接:dabblelab.com/tutorials/using-dynamodb-with-custom-alexa-skills 要构建此功能,您应该逐步构建它并使用 Alexa 托管的 Lambda。从能够成功读取静态 JSON (S3) 开始,然后转向从 DynamoDb 读取所有项目。一旦你有了它,开始使用 Slots 值来查询数据库。使用托管 Lambda,您将拥有 CloudWatch 和 S3 集成。当您将 console.log('some message') 添加到 IntentHandlers 时,您可以在 CloudWatch 中看到输出。
标签: json amazon-dynamodb alexa