8000 GitHub - Nexls/graduate_work: Дипломный проекта курса Middle Python-разработчик в Яндекс.Практикум.
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Дипломный проекта курса Middle Python-разработчик в Яндекс.Практикум.

Notifications You must be signed in to change notification settings

Nexls/graduate_work

Repository files navigation

Voice Assistant

Сервис, обрабатывающий Webhook запросы от Яндекс Алисы. Позволяет искать по базе данных онлайн-кинотеатра.

Запуск

В консоли выполнить команду docker-compose up

Список запускаемых сервисов

Как обрабатываем запросы от Алисы:

Взаимодействие основано на паттерне state machine.
Это значит, что мы обрабатываем запрос пользователя в зависимости от сцены (состояния) в котором он находится.

Всего реализовано 5 сцен:

  1. Welcome
  2. Top Films
  3. Film Info
  4. Person Info
  5. Helper

При старте пользователь попадает на сцену Welcome, тут он получает краткую справку о том, что это за навык.
Затем пользователь задает вопрос сервису.

Чтобы понять, что хочет пользователь, мы выделяем из запроса "намерение" - интент.

Если мы распознали интент, то возвращаем ответ, вместе с этим переводя пользователя на одну из трех сцен:
Top Films / Film Info / Person Info

Находясь на одной из этих сцен, пользователь может задать вопрос, связанный с предыдущим ответом.

Например:

  • Кто автор фильма Дюна?
  • Ответ: Дени Вильнёв (пользователь попадает на сцену Person Info)
  • Сколько ему лет?
  • Ответ: 54

При этом один, и тот же интент, полученный из разных сцен может быть обработан по-разному.
Например, находясь на сцене Film Info, запрос "расскажи подробнее" вернет подробную информацию о фильме.
А аналогичный запрос со сцены Person Info вернет информацию о человеке.

Приоритет обработки интента

  1. Проверяется, возможна ли локальная обработка интента (в рамках текущей Сцены).
  2. Затем проверяется есть ли обработка среди остальных сцен.
  3. При неудаче срабатывает функция fallback, которая просит пользователя сформулировать вопрос иначе.
    При этом все нераспознанные интенты сохраняются для дальнейшего анализа - так мы сможем выделить популярные запросы,
    обработку которых нужно добавить.

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

Список возможных интентов по группам

Топ фильмов

  • Топ по дате
  • Топ по типу
  • Топ по жанру

Информация о фильме

  • Описание фильма
  • Актеры фильма
  • Автор фильма
  • Длительность фильма
  • Жанр фильма
  • Рейтинг фильма
  • Дата выхода

Информация о персоне

  • Возраст человека
  • Фильмы с участием
  • Биография человека

About

Дипломный проекта курса Middle Python-разработчик в Яндекс.Практикум.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published
0