Ссылки на AWS Lex Python Codehook

Я все еще новичок в Python (и кодировании), но я пытаюсь создать своего собственного бота Lex с функцией Lambda. Я слежу за учебниками и могу понять, как все это работает. Проблема в том, что когда я пытаюсь написать свои собственные лямбда-функции для Lex, я не могу найти никаких ссылок, которые помогли бы мне написать мой код, например, глядя на код ниже.

def get_slots(intent_request):
    return intent_request['currentIntent']['slots']

Что такое "(intent_request)" и где найти ссылку на это? То же самое для "['currentIntent'], как я могу узнать, что это такое и почему он там?"

Извините, если большинству людей здесь это кажется глупым, но я не могу начать писать код и продолжить изучение, если я не могу найти какую-либо документацию, чтобы предложить, что это такое и почему они необходимы для написания кода для моих собственных ботов Lex .

Заранее спасибо!!!


person tony25225    schedule 07.09.2018    source источник


Ответы (1)


intent_request - это входящий «запрос» или «событие» от Lex к вашей лямбда-функции. Он содержит всю необходимую информацию о вводе данных пользователем и обработке этого ввода вашим ботом Lex (запуск определенного намерения, заполнение определенных слотов, подтверждений и т. Д.)

Это должна быть та документация, которую вы ищете.

Формат события и ответа лямбда-функции:

В этом разделе описывается структура данных о событиях, которые Amazon Lex предоставляет лямбда-функции. Используйте эту информацию для анализа ввода в вашем лямбда-коде. Он также объясняет формат ответа, который Amazon Lex ожидает от вашей лямбда-функции.

А вот формат события / запроса:

{
  "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"
  }
}

Данные slots находятся внутри currentIntent, и они находятся внутри всего объекта intent_request. Вот почему вы видите код: intent_request['currentIntent']['slots']

Чтобы получить атрибуты сеанса, вы можете найти их здесь: intent_request['sessionAttributes']

Также чрезвычайно полезен точный текст, вводимый пользователем: intent_request['inputTranscript']

person Jay A. Little    schedule 08.09.2018
comment
Спасибо, Джей А. Литтл. Это очень помогает. Я прочитаю документацию по предоставленной вами ссылке, но ваш ответ определенно прояснил для меня несколько вещей. - person tony25225; 17.09.2018