我如何从应用程序中向 Amazon Lex Bot 传递所需的输入?

问题描述 投票:1回答:1

我已经用Amazon lex创建了一个机器人,它的验证&用Python和MongoDb.Bot的履行工作与预期一样。

现在我正在努力将我的机器人与ipad应用程序集成。

目前,我的机器人询问用户关于他的账户ID,然后机器人在DB中验证该ID,并根据响应。

现在整合后,不是向用户询问账户ID,而是将ID从ipad应用程序传给机器人,然后机器人根据ID进行响应。

我的问题是关于这个。我们如何才能将账户ID从ipad应用中传递给机器人,然后我的机器人或lambda函数如何才能得到这个ID?

如果有人做过类似的功能,请提出建议。

aws-lambda amazon-lex
1个回答
1
投票

你会想使用 requestAttributessessionAttributes 来传递信息,如帐户ID和初始输入的信息给你的机器人。

然后,你的机器人就可以从 event.requestAttributesevent.sessionAttributes

参考文献。Lex-Lambda输入事件和响应格式

sessionAttributes - 客户端在请求中发送的特定应用程序会话属性。如果您希望 Amazon Lex 将它们包含在对客户端的响应中,您的 Lambda 函数应在响应中将这些属性发送回 Amazon Lex。有关更多信息,请参阅 设置会话属性

requestAttributes - 客户端在请求中发送的特定请求属性。使用请求属性来传递不需要在整个会话中持久化的信息。如果没有请求属性,值将为空。更多信息,请看 设置请求属性


其他信息

你需要自己处理userInput的传递,以便在你的Lex机器人中包含以下内容 requestAttributes 数据。为此,您需要使用 后期内容 (文本或音频输入)或 PostText 仅限文本输入)来发送数据给您的Lex机器人。

您的Lex机器人将解释输入的数据,并将数据传递给您的Lex机器人。requestAttributes 到您的Lambda函数中,在那里您可以根据账户ID处理逻辑。

通过PostText将用户输入的数据作为JSON对象发送。

POST /bot/botName/alias/botAlias/user/userId/text HTTP/1.1
Content-type: application/json

{
   "inputText": "Hello Bot",
   "requestAttributes": { 
      "accountID" : "xxxxxxxx" 
   },
   "sessionAttributes": { 
      "name" : "John Smith" 
   }
}

要查看Lex将传递给你的Lambda函数的内容,以及如何获取 requestAttributes 有,请看这个问题,我在那里做了更深入的回答。AWS Lex Python Codehook引用

© www.soinside.com 2019 - 2024. All rights reserved.