Чат-боты для начинающих

За последние несколько лет чат-боты превратились из надоедливых онлайн-безделушек в действительно удобный инструмент. «Алиса» подсказывает пользователям погоду и кино на выходные, а крупные корпорации благодаря роботизации избавляют сотрудников от рутины. Да и слушатели наших курсов всё чаще интересуются этой темой: как работают боты, как они понимают вопросы пользователей, как организован обмен данными с бэкендом. Рассказываем и показываем.

Разговор с железным человеком

По сути своей чат-бот мало отличается от привычного поисковика. Главное его преимущество — в возможности шире интерпретировать запросы, учитывая привычную человеку семантику и построение фраз, близкое к разговорному. Для понимания пользовательских вопросов применяются две техники: одна определяет паттерны (pattern matching), вторая угадывает смысл запроса (intent classification).

Например, вы собираетесь в отпуск. Открываете Telegram и спрашиваете у бота, какие самолеты отправляются такого-то числа из города X в город Y. Скрипт вычленяет в этом предложении основные данные: дата поездки, пункт отправления, пункт назначения. Это и есть определение паттернов. С другой стороны, вы можете просто сообщить боту, что планируете отдохнуть. Продвинутая программа сверится с вашим календарем, вспомнит, что вы много раз катались на лыжах, и предложит варианты подходящего отдыха в нужные даты. Для этого ей необходимо понять истинный смысл вопроса.

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

Настоящая наука начинается, когда боту нужно прочитать скрытое содержание сообщения. В нашем примере — тот факт, что вы не просто делитесь радостью предстоящего отпуска, а просите помощи в его организации. В основе таких сервисов лежат технологии машинного обучения: аналитики данных и эксперты по data science прогоняют через аналитическую модель миллионы пользовательских вопросов, чтобы бот узнал, как человек строит свою речь.

Как следствие, если в механике pattern matching несложно разобраться стороннему наблюдателю, то правила intent classification нередко представляют собой черный ящик. Зато и возможности таких программ гораздо шире.

DS
Специализация Data Science
Идет набор в группу 150 000 ₽

Отвечают знатоки

Понять вопрос — это полдела, на него нужно ещё и ответить. Для этого также существует несколько технологий.

Самое простое — это метод статичных ответов, когда программа просто подставляет данные в готовый шаблон:

— Какие самолеты летят в Нижневартовск 25 августа?

— В этот день в Нижневартовск из Москвы улетают такие-то рейсы…

— Когда день рождения у моей жены?

— День рождения вашей жены через два дня.

— Сколько сейчас стоит тысяча долларов?

— По курсу на сегодняшнюю дату, это составит…

Если бот должен работать с более сложными вопросами, вам понадобится динамичная система. Это позволит программе обращаться к внутренним базам знаний, выбирать несколько вариантов ответа и предлагать пользователю наиболее подходящий. Такие решения заменяют традиционные разделы FAQ.

— Как мне привязать карту к учетной записи?

— Кто в нашей компании подписывает договоры аренды?

— Какие направления ИИ выросли больше всего за последние полгода?

Наконец, с применением глубинного обучения боты получают возможность вести разговор практически на человеческом уровне. Самые интересные разработки сейчас лежат именно в этой области, хотя до практической реализации им ещё далеко. Именно эти технологии превратят нынешних чат-ботов в робопомощников, о которых фантасты мечтают уже больше полувека.

partfolio_ds
Специализация Аналитик Данных
Идет набор в группу 73 900 ₽

Что нам стоит бота построить

На рынке существуют десятки платформ для чат-ботов. Эти решения объединяют в себе аналитическое ядро, интерфейс разработчика, средства интеграции со сторонними системами. Выбор платформы зависит от задач, которые вы ставите перед своим ботом, и вопросов, с которыми ему предстоит работать.

Какая аудитория будет у вашего сервиса — тысячи, десятки тысяч пользователей? Бот будет решать практические задачи или вести развлекательные беседы? Может быть, и то, и другое? Все это нужно решить «на берегу», чтобы не тратить зря время разработчиков и спонсорские деньги.

Базовый чек-лист для выбора платформы выглядит примерно так:

  • Обучаемость бота. Нужно решить, будете вы учить свою программу вручную, откроете ей корпоративные базы или позволите расширять знания самостоятельно. От этого зависят требования к интеграционным возможностям, а также способ тренировки вашей системы.
  • Интерпретация пользовательских вопросов. Как обсуждалось выше, если ваш бот будет просто помогать с покупкой товаров, ему не нужны функции речевой аналитики и глубокое понимание контекста запроса.
  • Простота развертывания. Этот параметр также тесно связан с интеграцией бота: чем больше возможностей для подключения сторонних ресурсов, тем сложнее архитектура системы. Как следствие, небольшой компании вряд ли нужно тратить время на освоение решения для крупных корпораций.
  • Цена. Одни платформы полностью бесплатны, другие предлагают фиксированные тарифы, третьи за деньги предоставляют дополнительные мощности или интеграционные модули.

Когда с этими вопросами разобрались, можно переходить непосредственно к выбору платформы. Многие из них позволяют создавать ботов без единой строчки кода — рисовать блок-схемы и деревья решений, настраивать интеграцию драг-н-дропом. Не думайте, что за это приходится расплачиваться функциональностью, ведь в эту категорию попадают такие популярные сервисы, как Chatfuel или Motion.ai.

Преимущества таких платформ очевидны: они помогают быстро разобраться в механике онлайн-собеседников, причем технических возможностей вполне хватает, чтобы запустить бота средней руки. Что касается недостатков, то при использовании этих продуктов вам стоит забыть о машинном обучении и прочих продвинутых технологиях. Подобрать билеты в кино или поговорить с посетителем Facebook-страницы такой бот сможет, но на комплексные задачи его ресурсов уже не хватит. «По-человечески» он тоже не заговорит — для интерпретации речи, разумеется, тоже нужен специализированный ИИ-модуль. Наконец, созданные на таких платформах чат-боты плохо справляются с растущей нагрузкой, так что если вы планируете увеличивать клиентскую базу, лучше подобрать более серьёзную архитектуру.

Среди таких решений есть как независимые сервисы (Meya, Pandorabots, NLP API), так и продукты технологических гигантов (Facebook Messenger, Microsoft Bot Framework, API.ai от Google). Для работы с ними понадобится знание Python и/или JavaScript, также желательно познакомиться с существующими языками разметки вроде YAML или AIML. Этот багаж позволит вам интегрировать бота со сторонними системами, подробно продумать механику коммуникации с пользователем, а при желании превратить программу в полноценного собеседника.

текст: Помогаев Дмитрий

Поделиться:
Опубликовано в рубрике Наука о данных (Data Science)Tagged

SkillFactory.Рассылка