常见的结构 AWS Lambda 函数用于 - Amazon Lex

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

常见的结构 AWS Lambda 函数用于

在 Lambda 响应中,有许多结构会反复出现。本节提供了有关这些常见结构的详细信息。

意图

"intent": { "confirmationState": "Confirmed | Denied | None", "name": string, "slots": { // see 槽值 for details about the structure }, "state": "Failed | Fulfilled | FulfillmentInProgress | InProgress | ReadyForFulfillment | Waiting", "kendraResponse": { // Only present when intent is KendraSearchIntent. For details, see // https://docs.aws.amazon.com/kendra/latest/dg/API_Query.html#API_Query_ResponseSyntax } }

intent 字段映射到包含以下字段的对象:

表示用户是否已确认意图的槽位,以及该意图是否已准备履行。以下是可能的值:

Confirmed:用户确认槽位值正确。

Denied:用户表示槽位值不正确。

None:用户尚未进入确认阶段。

意图的名称。

有关履行意图所需的槽位的信息。有关结构的详细信息,请参阅槽值

表示意图的履行状态。以下是可能的值:

Failed:机器人未能履行意图。

Fulfilled:机器人已完成意图的履行。

FulfillmentInProgress:机器人正在履行意图。

InProgress:机器人正在引发履行意图所需的槽位值。

ReadyForFulfillment:机器人已引发意图的所有槽位值,并已准备好履行意图。

Waiting:机器人正在等待用户响应(仅限流式对话)。

包含有关 Kendra 搜索查询结果的信息。仅当意图为 KendraSearchIntent 时才显示此字段。有关更多信息,请参阅 Kendra 的查询API调用中的响应语法

槽值

slots 字段存在于 intent 结构中,并映射到一个结构,该结构的键是用于该意图的槽位的名称。如果该槽位不是多值槽位(有关更多详细信息,请参阅 使用一个插槽中的多个值),则会将其映射到具有以下格式的结构。请注意,shape 取值为 Scalar

{ slot name: { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } } }

如果该槽位是多值槽位,则其映射到的对象中包含另一个名为 values 的字段,该字段映射到一个结构列表,其中每个结构都包含有关构成多值槽位的槽位信息。列表中每个对象的格式与常规槽位所映射到的对象的格式相匹配。请注意,shape 的取值为 List,但 values 下面组件槽位的 shape 的取值为 Scalar

{ slot name: { "shape": "List", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] }, "values": [ { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } }, { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } }, ... ] }

槽位对象中的字段如下所述:

槽位的形状。如果槽位中有多个值(有关更多详细信息,请参阅 使用一个插槽中的多个值),则该值为 List,否则该值为 Scalar

一个对象,其中包含有关用户为槽位提供的值以及 Amazon Lex 的解释信息,格式如下:

{ "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] }

这些字段如下所述:

  • originalValue— Amazon Lex 确定用户对插槽引发的响应中与插槽值相关的部分。

  • interpretedValue— 根据用户的输入,Amazon Lex 为该插槽确定的值。

  • resolvedValues— Amazon Lex 确定为用户输入的可能分辨率的值列表。

包含有关构成多值槽位的槽位信息的对象的列表。每个对象的格式与普通槽位的格式相匹配,shapevalue 字段如上所述。仅当槽位由多个值组成时,values 才会出现(有关更多详细信息,请参阅 使用一个插槽中的多个值)。以下JSON对象显示了两个组件插槽:

"values": [ { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } }, { "shape": "Scalar", "value": { "originalValue": string, "interpretedValue": string, "resolvedValues": [ string, ... ] } }, ... ]

会话状态

sessionState 字段映射到一个对象,该对象包含与用户对话的状态相关的信息。该对象中实际显示的字段取决于对话操作的类型。有关 Lambda 响应中的必填字段,请参阅 响应中的必填字段sessionState 对象的格式如下所示:

"sessionState": { "activeContexts": [ { "name": string, "contextAttributes": { string: string }, "timeToLive": { "timeToLiveInSeconds": number, "turnsToLive": number } }, ... ], "sessionAttributes": { string: string, ... }, "runtimeHints": { "slotHints": { intent name: { slot name: { "runtimeHintValues": [ { "phrase": string }, ... ] }, ... }, ... } }, "dialogAction": { "slotElicitationStyle": "Default | SpellByLetter | SpellByWord", "slotToElicit": string, "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot" }, "intent": { // see 意图 for details about the structure }, "originatingRequestId": string }

这些字段如下所述:

包含用户在会话中使用的上下文相关信息的对象的列表。通过上下文来促进和控制意图识别。有关上下文的更多信息,请参阅 为您的 Lex V2 机器人设置意图上下文。每个对象的格式如下:

{ "name": string, "contextAttributes": { string: string }, "timeToLive": { "timeToLiveInSeconds": number, "turnsToLive": number } }

这些字段如下所述:

  • name:上下文的名称。

  • contextAttributes— 一个包含上下文属性名称及其映射到的值的对象。

  • timeToLive— 一个对象,用于指定上下文保持活动状态多长时间。此对象可以包含以下一个或两个字段:

    • timeToLiveInSeconds— 上下文保持活动状态的秒数。

    • turnsToLive— 上下文保持活动状态的回合数。

表示会话特定上下文信息的键值对的映射。有关更多信息,请参阅 为您的 Lex V2 机器人设置会话属性。对象的格式如下:

{ string: string, ... }

为客户可能在槽位中使用的短语提供提示,以提高音频识别能力。与发音相似的单词相比,您在提示中提供的值可以增强对这些值的音频识别。runtimeHints 对象的格式如下所示:

{ "slotHints": { intent name: { slot name: { "runtimeHintValues": [ { "phrase": string }, ... ] }, ... }, ... } }

slotHints 字段映射到一个对象,该对象中的字段是机器人中意图的名称。每个意图名称都映射到一个对象,该对象的字段是对应意图的槽位名称。每个槽位名称都映射到一个带有单个字段 runtimeHintValues 的结构,即对象列表。每个对象都包含一个映射到提示的 phrase 字段。

确定 Amazon Lex V2 要采取的下一步操作。对象的格式如下所示:

{ "slotElicitationStyle": "Default | SpellByLetter | SpellByWord", "slotToElicit": string, "type": "Close | ConfirmIntent | Delegate | ElicitIntent | ElicitSlot" }

这些字段如下所述:

  • slotElicitationStyle— 确定 Amazon Lex V2 如何解释来自用户的音频输入(如果是)typedialogAction ElicitSlot有关更多信息,请参阅 在对话中使用拼写样式捕获时段值。以下是可能的值:

    Default:Amazon Lex V2 以默认方式解释音频输入以履行槽位。

    SpellByLetter:Amazon Lex V2 监听用户对槽位值的拼写。

    SpellByWord:Amazon Lex V2 根据与每个字母相关的单词(例如,“a as in apple”)来监听用户对槽位值的拼写。

  • slotToElicit— 如果为,则定义要从用户那里获得typedialogAction插槽。ElicitSlot

  • type:定义机器人应执行的操作。以下是可能的值:

    Delegate:让 Amazon Lex V2 决定下一步操作。

    ElicitIntent:提示客户表达意图。

    ConfirmIntent:确认客户的槽位值以及意图是否准备履行。

    ElicitSlot:提示客户为意图提供槽位值。

    Close:结束意图履行流程。

有关 intent 字段的结构,请参阅 意图

请求的唯一标识符。该字段对于 Lambda 响应是可选字段。