Как сохранить разговор с Алекса в базу данных - PullRequest
0 голосов
/ 10 октября 2018

Я разрабатываю навык Alexa для школы, мой клиент хочет сохранить разговор, который Алекса имела с родителями, и хочет отобразить его в личном кабинете ученика.Как сохранить весь разговор с моим умением в базе данных?

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Вы не получите высказывание пользователя навыка или то, что сказал пользователь.Но с помощью запроса Alexa вы можете заново создать поток беседы.
Используйте эту информацию:

  1. userId
    Если выу вас нет привязки аккаунта в вашем умении, вам придется сохранить это, чтобы отфильтровать разговоры от конкретного пользователяОбратите внимание, что userId изменится, когда пользователь отключит и снова включит ваше умение.
  2. sessionId
    Если вы хотите отфильтровать определенный сеанс пользователя.Вы также можете рассчитывать на SessionEndedRequest, чтобы узнать, когда закончился сеанс, но это чисто.
  3. Intents
    Вы не получите пользовательскую речь, но от intents выможет определить намерение пользователей.Это поможет вам угадать, что мог сказать пользователь.
  4. Слоты
    Если вы объедините slots с отображенным intents, вы получите больше информации.Поскольку значения слотов всегда передаются вам, вы можете сохранить это и узнать точное значение, которое пользователь сказал в своем разговоре.
  5. Отметка времени
    Всегда сохранять отметку времени,это поможет вам узнать, когда именно поступил запрос.
  6. Alexa Response
    Всегда сохраняйте ответ, который вы отправляете обратно.
  7. sessionAttributes
    Если у вас есть какая-то важная информация, которая, по вашему мнению, будет полезна, сохраните ее тоже.

С помощью этой информации / фильтров, если вы отсортируете ее с помощью timestamp, вы получите представлениео разговоре конкретного / всего пользователя с Alexa.

0 голосов
/ 10 октября 2018

Вы можете получить и сохранить / сохранить то, что Алекса говорит , но вы не можете получить именно то, что пользователь скажет навыку Алексы,Но то, что вы можете получить, это намерение пользователя (то есть то, что называется намерением).Решение вашей проблемы состоит в том, чтобы использовать какую-то базу данных, составить таблицу и делать что-то подобное в каждом намерении

const HelpIntentHandler = {
  canHandle(handlerInput) {
    return handlerInput.requestEnvelope.request.type === 'IntentRequest'
      && handlerInput.requestEnvelope.request.intent.name === 'AMAZON.HelpIntent';
  },
  handle(handlerInput) {
  
  
    const speechText = 'You can say hello to me!';
    *//write code to add speechText to a table against the intent name/sample utterence with date and time*
    return handlerInput.responseBuilder
      .speak(speechText)
      .reprompt(speechText)
      .withSimpleCard('Hello World', speechText)
      .getResponse();
  },
};
...