Я создал простого бота с простым намерением lex.Это лекс-намерение имеет один слот slotTwo
.
Затем я связал его с лямбда-функцией Python.Я хочу получить доступ к значению этого слота внутри лямбда-функции.
Лямбда-функция python получает параметры context
и event
.Ссылка ниже показывает структуру для параметра event
.https://docs.aws.amazon.com/lex/latest/dg/lambda-input-response-format.html
I copy it here too:
{
"currentIntent": {
"name": "intent-name",
"slots": {
"slot name": "value",
"slot name": "value"
},
"slotDetails": {
"slot name": {
"resolutions" : [
{ "value": "resolved value" },
{ "value": "resolved value" }
],
"originalValue": "original text"
},
"slot name": {
"resolutions" : [
{ "value": "resolved value" },
{ "value": "resolved value" }
],
"originalValue": "original text"
}
},
"confirmationStatus": "None, Confirmed, or Denied (intent confirmation, if configured)"
},
"bot": {
"name": "bot name",
"alias": "bot alias",
"version": "bot version"
},
"userId": "User ID specified in the POST request to Amazon Lex.",
"inputTranscript": "Text used to process the request",
"invocationSource": "FulfillmentCodeHook or DialogCodeHook",
"outputDialogMode": "Text or Voice, based on ContentType request header in runtime API request",
"messageVersion": "1.0",
"sessionAttributes": {
"key": "value",
"key": "value"
},
"requestAttributes": {
"key": "value",
"key": "value"
}
}
Однако, когда я распечатываю содержимое этого параметра, я вижу только ячейку и могу напрямую получить доступ к его значению, первый уровень.
START RequestId: 60a541d8-b3c8-48b0-a7a3-6b3f65d96482 Version: $LATEST
{
"slotTwo": "some text here"
}
Тест с лямбда-консоли работает нормально.Он может извлечь значение и продолжить логику.Однако, когда я тестирую бота от Лекса, он не работает.Есть идеи почему?Большое спасибо, Эстер