本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 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— 如果是 of,则定义要从用户那里获得
type
的dialogAction
插槽。ElicitSlot
-
type:定义机器人应执行的操作。以下是可能的值:
Delegate
:让 Amazon Lex V2 决定下一步操作。ElicitIntent
:提示客户表达意图。ConfirmIntent
:确认客户的槽位值以及意图是否准备履行。ElicitSlot
:提示客户为意图提供槽位值。Close
:结束意图履行流程。
有关 intent
字段的结构,请参阅 意图。
请求的唯一标识符。该字段对于 Lambda 响应是可选字段。