如何将所需的输入从应用程序传递到 Amazon Lex Bot?



>我用Amazon lex创建了一个机器人,它用Python和MongoDb进行了验证和实现。 机器人按预期工作。

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

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

现在,在集成后,应将该ID从ipad应用程序传递到机器人,然后机器人应根据该ID进行响应,而不是询问用户的帐户ID。

我的问题是关于这个的。我们如何将账户 ID 从 iPad 应用程序传递到机器人,然后我的机器人或 lambda 函数如何获得它?

请建议是否有人做过类似的功能。

你将需要使用requestAttributessessionAttributes将帐户 ID 等信息传递给具有初始输入的机器人。

然后,机器人可以从event.requestAttributesevent.sessionAttributes中检索这些内容

参考:lex-lambda 输入事件和响应格式

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

请求属性 – 客户端在请求中发送的请求特定属性。使用请求属性传递不需要在整个会话中保留的信息。如果没有请求属性,则该值将为 null。有关更多信息,请参阅 设置请求属性

<小时 />

附加信息

您需要自己处理将用户输入传递给 Lex 机器人,以便包含requestAttributes数据。为此,您需要使用 PostContent(文本或音频输入(或 PostText(仅限文本输入(将数据发送到 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 参考

最新更新