本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
常见的结构 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 确定为用户输入的可能分辨率的值列表。
包含有关构成多值槽位的槽位信息的对象的列表。每个对象的格式与普通槽位的格式相匹配,shape
和 value
字段如上所述。仅当槽位由多个值组成时,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 如何解释来自用户的音频输入(如果是)
type
。dialogAction
ElicitSlot
有关更多信息,请参阅 在对话中使用拼写样式捕获时段值。以下是可能的值:Default
:Amazon Lex V2 以默认方式解释音频输入以履行槽位。SpellByLetter
:Amazon Lex V2 监听用户对槽位值的拼写。SpellByWord
:Amazon Lex V2 根据与每个字母相关的单词(例如,“a as in apple”)来监听用户对槽位值的拼写。 -
slotToElicit— 如果为,则定义要从用户那里获得
type
的dialogAction
插槽。ElicitSlot
-
type:定义机器人应执行的操作。以下是可能的值:
Delegate
:让 Amazon Lex V2 决定下一步操作。ElicitIntent
:提示客户表达意图。ConfirmIntent
:确认客户的槽位值以及意图是否准备履行。ElicitSlot
:提示客户为意图提供槽位值。Close
:结束意图履行流程。
有关 intent
字段的结构,请参阅 意图。
请求的唯一标识符。该字段对于 Lambda 响应是可选字段。