Aws lambda 如何将与Alexa的对话存储到数据库中

Aws lambda 如何将与Alexa的对话存储到数据库中,aws-lambda,alexa,alexa-skills-kit,Aws Lambda,Alexa,Alexa Skills Kit,我正在为学校开发Alexa技能,我的客户希望存储Alexa与家长的对话,并希望将其显示在学生的仪表板上。如何将我掌握的全部对话存储到数据库中 您可以获得并存储/保存alexa所说的内容,但您无法准确获得用户对alexa skill所说的内容。但您可以得到的是用户的意图(即所谓的意图)。 解决您的问题的方法是使用一些数据库,创建一个表,并在每个目的中执行类似的操作 const HelpIntentHandler={ canHandle(handlerInput){ return handlerI

我正在为学校开发Alexa技能,我的客户希望存储Alexa与家长的对话,并希望将其显示在学生的仪表板上。如何将我掌握的全部对话存储到数据库中

可以获得并存储/保存alexa所说的内容,但您无法准确获得用户对alexa skill所说的内容。但您可以得到的是用户的意图(即所谓的意图)。 解决您的问题的方法是使用一些数据库,创建一个表,并在每个目的中执行类似的操作

const HelpIntentHandler={
canHandle(handlerInput){
return handlerInput.requestEnvelope.request.type==='IntentRequest'
&&handlerInput.requestEnvelope.request.intent.name==='AMAZON.HelpIntent';
},
句柄(handlerInput){
const speechText='你可以向我打招呼!';
*//编写代码,将speechText添加到表中,与带有日期和时间的意图名称/示例语句相对应*
返回handlerInput.responseBuilder
.发言(演讲稿)
.reprompt(演讲稿)
.withSimpleCard('Hello World',speechText)
.getResponse();
},

};您将无法获得用户所说的技能或用户所说的内容。但是,根据Alexa request提供的信息,您可以重新创建对话流程。
使用以下信息:

  • 用户ID
    如果你的技能中没有帐户链接,你就必须坚持使用它来过滤特定用户的对话。请注意,当用户禁用并重新启用您的技能时,此
    userId
    将发生更改
  • 会话ID
    如果要筛选出用户的特定会话。您还可以依靠
    sessionedrequest
    检查会话何时结束,但这是干净的
  • 意图
    您无法获得用户语音,但从
    意图中可以识别用户意图。这将帮助您猜测用户可能会说什么
  • 插槽
    如果将
    插槽
    与映射的
    意图
    相结合,您将获得更多信息。由于插槽值总是传递给您,因此您可以将其持久化,并将知道用户在其对话中所说的确切值
  • 时间戳
    始终保存时间戳,这将帮助您准确地知道请求何时到达
  • Alexa响应
    始终坚持您发送回的回复
  • 会期献礼
    如果你有一些你认为会有帮助的粗略信息,那么也保存它

  • 使用这些信息/过滤器,如果您使用
    时间戳对其进行排序
    ,您将了解特定/所有用户与Alexa的对话

    我可以举一些例子来说明如何做到这一点吗?选择一个数据库,并从每个请求的请求负载中记录这些信息。一旦你的数据库中有了这些记录,你就可以很容易地查询它了。当然我会试试的。非常感谢。