Боты, способные порекомендовать хороший фильм, уже существуют — так что идея была не новой. Но нам хотелось свой собственный, душевный и ламповый бот, с рекомендациями от себя и своих коллег. Почему бы и нет?
Сейчас наш бот умеет:
1. Показывать случайный фильм или сериал. Если вы хотите разгрузить голову и предоставить выбор боту, он справится. А вам останется выбрать из случайных рекомендаций или положиться на выбор бота.
2. Выдать рекомендации по определённому жанру, предоставив пользователю возможность продолжать поиск в рамках этого жанра, нажимая «ещё!», пока не надоест.
3. Также бот умеет показывать случайную книгу из корпоративной библиотеки с указанием формата (у нас есть бумажные, электронные и аудиокниги) и кратким описанием. Сейчас бот умеет выдавать ссылку на скачивание, если книга есть в корпоративной электронной библиотеке. А в дальнейшем мы научим его искать по названию и автору, показывать информацию о том, у кого на руках находится бумажная книга, и добавим навигацию по библиотеке.
4. Бот собирает рекомендации пользователей — он предлагает заполнить анкету и сохраняет её в базе, которую использует для выдачи рекомендаций. Анкета включает в себя вопросы о названии, жанре, годе выхода и, самое важное, кто рекомендует посмотреть и почему. Всё это доступно прямо из бота, что очень удобно для пользователей.
Как это работает?
Всё гениальное просто — поэтому в качестве базы данных для бота мы используем гугл-таблицу. Она доступна в любое время, и её легко редактировать (если вдруг понадобится исправить опечатки).
Как мы его создали
Создавая бота, мы не были ограничены заранее продуманным и утверждённым техническим заданием. У нас было небольшое описание в подготовленной форме с пожеланиями, из которой мы извлекли множество вопросов, уточнений и требований к проекту.
Первый этап создания бота мало чем отличался от наших проектов разработки: мы начали со сбора требований и их визуализации (нарисовали карту навигации, посмотрели похожие существующие боты, чтобы понять, что можно использовать, а что нам не подходит).
Основные три вещи, которые нам были важны для запуска:
- база рекомендаций (начальную базу мы с коллегами собирали в гугл-табличку);
- возможность добавить свою рекомендацию прямо из бота, чтобы она участвовала в выдаче;
- и непосредственно выдача рекомендаций (случайных и по жанру).
При этом меню жанров содержит только те жанры, которые соответствуют выбору пользователя (только те, что уже есть у фильмов или сериалов в зависимости от выбора пользователя).
Потом мы включили выдачу случайных книг из библиотеки. Мы понимали, что для книг случайная выдача — не самое очевидное решение. По сути, бот должен искать книги по жанру, автору и названию и выдавать список с возможностью его пролистать (кнопки с постраничной навигацией). А также информировать пользователя о том, есть ли нужная бумажная книга в библиотеке или она сейчас на руках. Но идея с книгами появилась у нас в процессе создания, поэтому мы расширим и доведем её до идеала чуть позже.
Помимо функциональности книжного раздела, у нас есть масса идей для улучшения бота, если он будет пользоваться популярностью: добавить обложки, постеры, трейлеры с «Кинопоиска». Т. е. максимально расширить возможности пользователя в части получения информации о рекомендациях бота.
Что мы поняли, пока делали бот
Мы делали свой бот не в коммерческих целях, а для собственного удовольствия. И поняли, что даже для небольших внутренних продуктов следует начинать с проработки документации. Прежде чем приступать к задаче, надо тщательно продумать логику и требования, чтобы не сталкиваться с сюрпризами в процессе разработки, когда и всплывают важные нюансы.
Это касается вопросов дальнейшего масштабирования проекта: любые дальнейшие пожелания должны вписываться в проект без необходимости переделывания логики.
Фильмобот — не первый бот, который мы сделали для компании. У нас есть бот внутренней техподдержки, которому можно оставить заявку в любом удобном формате (надиктовать сообщение, прислать фото, видео, текст) в любое время, — и вопрос будет решён. Мы создали его, чтобы не терять подобные запросы в личных сообщениях и головах (когда, например, увидел что-то в нерабочее время или не знаешь, кому написать о проблеме).