Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Пишем игровой навык для Алисы Яндекс с помощью Excel

Пишем игровой навык для Алисы Яндекс с помощью Excel

Рассмотрим практические и теоретические подходы, а также сам процесс разработки чат-бота для платформы Яндекс Диалоги

Видео: https://www.youtube.com/watch?v=l83F9VfSBHw

80eadbf0a221aaa4b764854df32fb781?s=128

Deep Refactoring

May 28, 2019
Tweet

Transcript

  1. None
  2. Общий принцип работы Алиса Навык

  3. API Webhook. Request. Информация об устройстве, с помощью которого пользователь

    разговаривает с Алисой Данные, полученные от пользователя. • original_utterance - полный текст. макс. 1024 символа • type - тип запроса (голос/кнопка) • markup/dangerous_context - признак криминального контекста • nlu - Natural-language understanding Данные, о сессии. • new - признак новой сессии. • message_id - id сообщения (фактически, порядковый №) • session_id - уникальный идентификатор сессии • user_id - идентификатор экземпляра приложения
  4. Natural-language understanding + определение наименований аэропортов + дробные числа +

    относительные даты
  5. API Webhook. Response. То, что видит и слышит пользователь Кнопки,

    которые видит и может нажимать пользователь (если у него устройство с экраном) Признак завершения диалога
  6. TTS (text-to-speech) 1. Символ “+” перед буквой определяет ударение: -

    На двери висит зам+ок. - На двери нарисован з+амок. 2. Пунктуационные знаки отделенные пробелами, образуют паузу в паузу в 50-100 мс, что может быть использовано для расстановки акцентов: - Казнить нельзя - - - помиловать - Казнить - - - нельзя помиловать 3. Некоторое слова можно писать как они звучат: Но предупреждаю, - - - я ращитываю на поб+еду. Yandex SpeechKit JS API - TTS demo https://webasr.yandex.net/ttsdemo.html “и так” - не сойдет, пользователь не поймет и не простит!
  7. Диаграмма активностей

  8. Выбор идеи № Критерий Вес Игра “Да-Нетка” Помощник сборки кубика

    рубика Игра “Слово за слово” 1 Многопользовательский режим 0.4 1 0 1 2 Функционирование на устройствах без экрана 0.2 1 0 1 3 Предопределенность пользовательских команд 0.3 0 1 1 4 Локаничность 0.1 0 1 1 Итого 1 0.6 0.4 1
  9. Концепция сценария игры “Слово за слово” Приветствие - Говорим пользователю

    привет (мы рады его видеть) и совсем кратко поясняем суть игры. Правила - Подробное описание правил и особенностей навыка. Выбор режима игры - предполагается два режима: А) Игра с Алисой (один на один) Б) Игра в команде (более одного игрока + Алиса). Определение игроков - определение имен участников. Начало игры - подтверждение начала самого игрового процесса. Игровой процесс - реализация игровой механики. Завершение игры - подведение итогов, умоляем пользователя остаться, но соглашаемся если он не хочет этого. Фазы диалога
  10. FSM - Finite-state machine

  11. Структура диалога Блок 1.1 Блок 1.2 Блок 1.n Диалог Фаза

    1 ... Блок 2.1 Блок 2.2 Блок 2.n Фаза 2 ... Блок n.1 Блок n.2 Блок n.n Фаза n ... Команда Следующая Фаза (id) Логика (условие+действие) Фаза Блок 1 Ответ Команда Следующая Фаза (id) Логика (условие+действие) Блок 2 Ответ Команда Следующая Фаза (id) Логика (условие+действие) Блок n Ответ Приветствие ID
  12. Структура фазы диалога ID фазы Команда (что сказал пользователь) Логика

    проверка условие и/или выполнение действия Описа ние фазы Описа ние блока Приветствие для вывода на экран Приветствие для озвучивания Ответ для вывода на экран Ответ для озвучивания ID следующей фазы Приветствие для озвучивания
  13. Структура фазы диалога в excel ID фазы Команда (что сказал

    пользователь) Логика проверка условие и/или выполнение действия Описа ние фазы Описа ние блока Приветствие для вывода на экран Приветствие для озвучивания Ответ для вывода на экран Ответ для озвучивания ID следующей фазы
  14. Структура проекта фазы модули игра А - подтверждения начала игра

    А - игровой процесс игра А - ввод имени игра Б - подтверждения начала игра Б - игровой процесс игра Б - ввод имени без состояния подтверждение выхода выбор режима игры
  15. Описание заголовка фазы. Приветствие для вывода на экран Приветствие для

    озвучивания Идентификатор состояния/фазы Кнопки
  16. Handler - обработчик блока. Пример 1. Признак текущего состояния -

    идентификатор фазы Функция реализующая логику - механику/правила игры Варианты ответа - списком Данные для шаблона - этого тут быть не должно!!! Установка следующего состояния/фазы Сборка ответа пользователю
  17. Handler - обработчик блока. Пример 2. Признак текущего состояния -

    идентификатор фазы Сопоставление команды
  18. Механизм сборки ответа Ответ согласно сценарию текущей фазы Переменные для

    подстановки в ответ Заголовок следующей фазы Response + + =
  19. None