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

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

0 голосов
/ 07 сентября 2018

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

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

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

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

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

1 Ответ

0 голосов
/ 08 сентября 2018

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

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

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

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

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

{
  "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']

...