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

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

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

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

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

Deep Refactoring

May 28, 2019
Tweet

More Decks by Deep Refactoring

Other Decks in Education

Transcript

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

    View full-size slide

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

    View full-size slide

  3. Natural-language understanding
    + определение наименований аэропортов
    + дробные числа
    + относительные даты

    View full-size slide

  4. API Webhook. Response.
    То, что видит и
    слышит пользователь
    Кнопки, которые видит и может
    нажимать пользователь (если у
    него устройство с экраном)
    Признак завершения диалога

    View full-size slide

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

    View full-size slide

  6. Диаграмма активностей

    View full-size slide

  7. Выбор идеи
    № Критерий Вес
    Игра
    “Да-Нетка”
    Помощник сборки
    кубика рубика
    Игра
    “Слово за слово”
    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

    View full-size slide

  8. Концепция сценария игры “Слово за слово”
    Приветствие - Говорим пользователю привет (мы
    рады его видеть) и совсем кратко поясняем суть
    игры.
    Правила - Подробное описание правил и
    особенностей навыка.
    Выбор режима игры - предполагается два режима:
    А) Игра с Алисой (один на один)
    Б) Игра в команде (более одного игрока + Алиса).
    Определение игроков - определение имен
    участников.
    Начало игры - подтверждение начала самого
    игрового процесса.
    Игровой процесс - реализация игровой механики.
    Завершение игры - подведение итогов, умоляем
    пользователя остаться, но соглашаемся если он не
    хочет этого.
    Фазы диалога

    View full-size slide

  9. FSM - Finite-state machine

    View full-size slide

  10. Структура диалога
    Блок
    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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  14. Описание заголовка фазы.
    Приветствие для вывода на экран
    Приветствие для озвучивания
    Идентификатор
    состояния/фазы
    Кнопки

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide