选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

设置 Lex V2 机器人的会话属性

聚焦模式
设置 Lex V2 机器人的会话属性 - Amazon Lex

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

会话属性包含特定于应用程序的信息,于会话期间在机器人与客户端应用程序之间传递。Amazon Lex 向为机器人配置的所有 Lambda 函数传递会话属性。如果 Lambda 函数添加或更新会话属性,Amazon Lex 会将新信息返回给客户端应用程序。

在 Lambda 函数中使用会话属性来初始化机器人并自定义提示和响应卡。例如:

  • 初始化 — 在订购披萨机器人中,客户端应用程序在第一次调用 RecognizeTextRecognizeUtterance 操作时传递用户位置作为会话属性。例如,"Location": "111 Maple Street"。Lambda 函数根据该信息查找最近的披萨店下订单。

  • 个性化提示 — 配置提示和响应卡,以引用会话属性。例如,“嘿 [FirstName],你想要什么浇头?” 如果您传递该用户的名字作为会话属性 ({"FirstName": "Vivian"}),Amazon Lex 将用该名字替换占位符。然后,它会向该用户发送个性化提示,“Vivian 您好,您想要什么配料?”

会话属性在会话存续期内一直存在。Amazon Lex 将其存储在加密数据存储中,直到会话结束。客户端可以在请求中通过调用RecognizeTextRecognizeUtterance操作来创建会话属性,并将sessionAttributes字段设置为一个值。Lambda 函数可以在响应中创建会话属性。在客户端或 Lambda 函数创建会话属性后,每当客户端应用程序在发给 Amazon Lex 的请求中不包括 sessionAttribute 字段时,都会使用存储的属性值。

例如,假设您有两个会话属性 {"x": "1", "y": "2"}。如果客户端调用 RecognizeTextRecognizeUtterance 操作而未指定 sessionAttributes 字段,Amazon Lex 通过存储的会话属性 ({"x": 1, "y": 2}) 调用 Lambda 函数。如果 Lambda 函数未返回会话属性,Amazon Lex 会将存储的会话属性返回给客户端应用程序。

如果客户端应用程序或 Lambda 函数传递会话属性,Amazon Lex 将更新存储的会话属性。传递现有值 (例如 {"x": 2}) 将更新存储的值。如果您传递一组新的会话属性(如 {"z": 3}),将删除现有值而只保留新值。当传递空映射 {} 时,将擦除存储的值。

要向 Amazon Lex 发送会话属性,您需要创建属性 string-to-string映射。下面显示了如何映射会话属性:

{ "attributeName": "attributeValue", "attributeName": "attributeValue" }

对于 RecognizeText 操作,您可以使用 sessionState 结构的 sessionAttributes 字段将映射插入请求正文中,如下所示:

"sessionState": { "sessionAttributes": { "attributeName": "attributeValue", "attributeName": "attributeValue" } }

对于 RecognizeUtterance 操作,您对映射进行 base64 编码,然后将其作为 x-amz-lex-session-state 标头的一部分进行发送。

如果要在会话属性中发送二进制或结构化数据,则必须先将该数据转换为简单字符串。有关更多信息,请参阅 在 Lex V2 机器人中设置复杂属性

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。