Как с нуля стать разработчиком чат-ботов
Чат-бот – это программа, которая имитирует диалог. Для бизнеса оплата разработки бота – это выгодное разовое вложение. Оно окупается сокращением расходов на персонал, отвечающий за информационную и техническую поддержку клиентов, поэтому для крупных компаний разработчик чат-ботов – ценный сотрудник. Как с нуля стать таким специалистом, «ПрофГид» выяснил у тех, кто создал не один десяток виртуальных собеседников. Кстати, недавно центр профориентации ПрофГид разработал точный тест на профориентацию, который сам расскажет, какие профессии вам подходят, даст заключение о вашем типе личности и интеллекте.
Чтобы начать разрабатывать чат-ботов с нуля, необходимо научиться хотя бы одному языку программирования.
Наиболее простой, но при этом мощный язык – это Python.
1. Чтобы научиться работать с Python, я бы порекомендовал:
- пройти бесплатный курс Google's Python Class;
- а также прочитать официальную документацию Python, так как официальная документация тоже рассчитана на новичков. Все примеры обязательно запустить самому и подумать почему это работает так.
- Кстати, у Профгида есть тест "Какой курс Python для начинающих выбрать?".
2. Уже имея некоторое понимание о языке Python, нужно разобраться в инструментах разработки.
- Как устанавливать зависимости с помощью pip.
- Как управлять виртуальным окружением с помощью pyenv или venv.
- Как запускать Python-проект.
Все это можно найти здесь – Python Packaging User Guide.
3. После этого нужно научиться работать с библиотеками для взаимодействия с мессенджерами. Для Telegram существует библиотека. Чтобы научиться ей пользоваться, нужно прочитать README и попробовать запустить примеры из папки examples.
4. Понимая, как работает взаимодействие с мессенджерами, можно уже думать о том, что конкретно должен делать наш бот. Фантазия здесь безгранична.
- Если это искусственный интеллект, нужно пройти курс Machine Learning со специализацией в natrual language processing, для новичка, рекомендую курс NLP на Coursera.
- Если же это какое-то иное взаимодействие, запуск сторонних скриптов, работа с базой данных, диском или сетью, то необходимо изучить соответствующие библиотеки в Python. Это не должно быть большой проблемой, потому что почти у каждой Python-библиотеки очень дружественная к новичкам документация.
Для того чтобы начать разрабатывать чат-боты, специальная предварительная подготовка не нужна, разве что знакомство с каким-то языком программирования. Сейчас у меня есть студент первого курса, со знаниями после школы он за неделю между семинарами собрал чат-бота. В Интернете есть огромное количество гайдов, по которым можно собрать чат-бота даже без особого знания и понимания программирования. Если мы говорим об осмысленной разработке, то начать нужно точно с изучения Python. Можно изучать самому, можно пройти любой из многочисленных курсов. Я бы посоветовала посмотреть на ютубе, есть лекции преподавателей МФТИ, которые очень четко объясняют теоретическую часть, а практиковаться можно созданием тех же чат-ботов.
После написания первых ботов с простой функциональностью можно пробовать более сложные вещи.
Для разработки ботов, которые могут поддерживать диалог с пользователем, одного разработчика может быть недостаточно.
- Если цель – разрабатывать ботов, которые могут поддерживать набор тематик с фиксированным количеством интентов (ключевых фраз с запросом пользователя), то можно прикрутить к боту какой-то готовый сервис с интерфейсом, который можно наполнять своими интентами и ответами бота. Например, сервис Гугл Dialogflow, он бесплатный и уже умеет поддерживать какие-то базовые диалоги, помимо тех, что пропишете вы. С подобной разработкой справится даже новичок в программировании.
- Если же мы говорим о каком-то более сложном диалоге, разборе сложных текстовых запросов клиента, то тут не обойдется без специалиста дата сайнс в NLP. А для того чтобы стать специалистом в этой области, нужно пройти длинный путь от изучения языка программирования, линейной алгебры, матстатистики, машинного обучения до изучения deep learning и умения настраивать нейронные сети типа Bert, LSTM и т. д.
Буквально недавно для себя написал чат-бот на Node.js, который умеет контролировать семейный бюджет. В целом для того, чтобы научиться разрабатывать чат-ботов необходимы базовые знания языка программирования, в моем случае им стал JavaScript.
Что касается образования: я считаю, что если у вас есть возможность закончить вуз, это будет только плюсом. Вы выучите базовые принципы разработки, алгоритмы и структуры данных, освоите пару языков программирования и будете намного увереннее себя чувствовать и двигаться по карьерной лестнице. Если такой возможности нет или не хочется учиться 4-5 лет, сейчас есть много онлайн-школ, которые обучают под конкретную профессию, например, разработчика чат-ботов.
Также могу посоветовать смотреть ролики на ютубе, читать статьи в Интернете, где профессионалы делятся своими знаниями и показывают реальный пример и код для того, чтобы разработать чат-бота. Очень много полезной информации есть на Хабре, прям с примерами кода, можно легко разобраться и написать свое приложение. И, самое главное, нужно не бояться совершать ошибки и писать побольше кода, тогда придет уверенность и перестроится мышление на аналитическое.
Если бы я начинал опять с нуля, я бы больше внимания уделил алгоритмам и структурам данных, и вообще Computer Science в целом. Многие очень быстро входят в профессию и потом долго не могут перескочить на уровень выше, так как просто-напросто не хватает базы. Если позволяет время, не торопитесь, начните с азов и постепенно двигайтесь в узкую специализацию.
Привет, мы команда разработки чат-бота для адаптации ZBot из Минска. Хотим поделиться с вами опытом, как мы научились разрабатывать ботов не только для нашей компании, но и помогли другим. Мы разработали веб-приложение, в котором HR-специалист может самостоятельно автоматизировать процесс адаптации новых сотрудников в своей компании при помощи бота, которого он может настроить сам, без привлечения разработчиков и изучения языков программирования. Во время пандемии COVID-19 это позволяет проводить онбординг новых сотрудников даже на удаленке.
Начните свой путь разработчика с выбора идеи чат-бота, которая будет вам действительно интересна: не все программисты любят писать тексты, а для чат-бота составлять их придется, ведь бот должен быть дружелюбным. Например, это может быть бот-гид по вашему городу или бот-продавец.
- На первом шаге нам понадобилось придумать сценарий чат-бота. Сценарий – это логика работы бота, последовательность сообщений, которые имитируют живой диалог с пользователем и плавно продвигают его к намеченной цели. Сценарий нужен нам, чтобы понять, какие функциональные элементы будут нужны: кнопки, меню, картинки и т. д.
- На втором шаге мы выбрали платформу, где будет работать наш чат-бот. Для первой версии мы остановились на Slack, но в дальнейшем также подключили чат-бот и к Telegram. Почему важно выбрать платформу? У каждой платформы свой набор элементов, которые она поддерживает, и свой набор ограничений при работе с текстом и картинками и др. Представление об этом можно получить из официальной документации Telegram, Slack.
- Дальше пришло время выбирать язык программирования для написания чат-бота. Тут стоит оговориться, что так как у нас уже был опыт разработки программных продуктов, пусть и не чат-ботов, мы уже умели работать с базами данных и простыми алгоритмами. Если вы начинаете с нуля, то мы советуем также получить базовое представление о них.
В качестве языков программирования для разработки чат-ботов вы можете выбрать, например, Node.js, Python или R. Мы остановились на Node.js, потому что уже были знакомы с JavaScript. Для изучения языка выбирайте тот формат, который вам удобен: это могут быть как видеоуроки на YouTube, так и статьи типа «Пишем чат-бот для Telegram» на habr.com.
Сейчас мы планируем расширить список поддерживаемых мессенджеров и попробовать разработку чат-ботов для таких платформ, как MS Teams и WhatsApp, а также интеграцию ботов с корпоративными системами.
Подводя итог, хочется отметить, что путь разработчика чат-ботов не так уж и долог, но имеет свои особенности, связанные с разработкой сценариев. Ведь создать востребованного бота, с которым интересно поговорить, нелегко.
Я впервые столкнулся с необходимостью написать свой чат-бот для личного проекта, когда нужно было за два дня сделать доступную и красивую игру-викторину с авторизацией, хранением истории и начислением баллов за правильные ответы. А сейчас занимаюсь разработкой собственного рекомендательного сервиса, который поможет людям планировать свой отпуск.
Чтобы стать разработчиком чат-бота, достаточно хорошо себе представить, какую задачу он будет решать, и прочесть документацию к библиотеке, которую будешь использовать для интеграции с той или иной платформой. Если опыта в программировании нет, можно попробовать собрать своего бота в no-code/low-code среде на ManyChat, Aimylogic, Flow XO и других подобных сервисах, которых сейчас на рынке очень много, однако они не все бесплатные, это тоже стоит учитывать.
Обязательно необходимо нарисовать схему работы бота:
- что он будет делать в том или ином случае, если пользователь выберет вариант 1 или вариант 2;
- а что – если человек введет случайный текст, нужен ли чат со специалистом и т. д.
Такая постановка задачи поможет определиться с тем, хватит ли вам конструктора ботов или все-таки придется писать код.
Для более сложной логики, когда стоит задача рекомендации лучшего действия или предложение лучшего ответа бота с целью удержания человека в сервисе или в чате, придется погрузится в Machine Learning, но этом потом, для начала хватит и обычных if-else веток.
Если вы не знаете, с чего начать, рисуйте схему, выберите платформу (Telegram, WhatsApp и др.) – у всех уже есть готовые библиотеки и подробные инструкции, как и что делать, и начните с чего-нибудь простого: ввели какое-то слово – отдайте ответ-действие или ответ-текст, а лучше и то и другое. Еще очень ускоряет процесс понимания и разработки просмотр видеоуроков на YouTube, или можно пройти небольшой начальный курс на Udemy, Skillbox и аналогичных платформах.
Когда поймете основные принципы работы, можно усложнять, делать разветвления логики, придумать веса разным вариантам ответа, пробовать собирать статистику кликов, предлагать разные варианты действий на основе предыдущих сценариев и т. д.
Если бы мне снова пришлось разбираться в том, как написать свой первый бот, я бы точно начал с небольшого онлайн-курса, где на пальцах пошагово показывают, как и что делать, как все запускать, какие библиотеки использовать и самое главное – там часто предлагают хорошие идеи, если своих нет, а все равно хочется с чего-то начать.
Могу точно сказать, что ботов несложно разрабатывать, важно думать о пользователях и их задачах, которые они смогут быстро решить, воспользовавшись вашим ботом.
Нет смысла стремиться стать именно разработчиком чат-ботов – технологии и потребности рынка меняются так быстро, что чат-боты могут потерять всякую актуальность к тому времени, пока ты освоишь их создание. Корректная постановка задачи должна звучать так: «я хочу стать разработчиком», потому что от просто разработчика до разработчика чат-ботов – маленький шажочек, процента 2 от общих навыков.
Идеальный старт в профессию программиста – сочетание самообучения и фундаментального образования. Прекрасно, если ты можешь объединить эти два способа одновременно. Хорошее вузовское образование (на мой взгляд, в России три сильных университета в сфере computer science – МГУ, СПбГУ и НГУ) дает мощную теоретическую базу, но никак не приблизит к реальному опыту и реальной работе. В вуз можно пойти позже, если появятся амбиции претендовать на позиции уровня senior.
А если ресурс есть на что-то одно, то лучше на первое место поставить самообучение: освоив базовые умения, ты быстро сможешь начать зарабатывать и продолжишь учиться уже на настоящих рабочих задачах.
Вот мои рекомендации по самообучению.
- Определи решаемую средствами программирования проблему, которая тебе искренне интересна. Например, как автоматизировать процесс варки кофе? Или как проследить за тем, не копаются ли родители в твоих вещах, пока тебя нет дома? Почему я говорю, что проблема должна задевать за живое? Потому что в программировании есть такая фишка: однажды что-то перестает получаться, и ты упираешься в стенку. Хороший программист будет биться головой об эту стенку до тех пор, пока не решит проблему. С опытом ты находишь более продуктивные методы, чем биться головой, но в начале пути важно опереться на реально волнующую тебя проблему.
- Есть отличная платформа для помощи новичкам в решении программных задач – https://www.raspberrypi.org/, там продаются дешевые одноплатные компьютеры и разные комплектующие к ним – по сути, конструктор – и доступна куча документации по программированию на языке Python. Ты покупаешь железки, собираешь их, пишешь код – на опыте понимаешь, как устроено взаимодействие hardware и software. Вокруг Raspberry огромное комьюнити, начинающие разработчики со всего мира рассказывают о том, как они решили такую-то задачу.
- И, конечно, нужно учить английский. На русском количество полезной отраслевой информации в разы меньше – это касается и документации, и размера комьюнити. Ну и высококлассную работу без английского, как правило, не найти.
По поводу покупки продукции Raspberry в России. Для некоторых категорий товаров на сайте Raspberry нет указания на международный магазин Farnell, до недавних пор он был указан в качестве официального ресейлера для нашего региона. Сам Farnell продолжает предлагать полный ассортимент Raspberry с доставкой в Россию https://ru.farnell.com/buy-raspberry-pi. Кроме того, кое-что из продукции Raspberry доступно в большом количестве российских магазинов (Озон, МВидео, Алиэкспресс, ДНС и другие более специализированные), но у них уже свободное ценообразование, а не то, что назначает Raspberry. В общем, купить не проблема.
Подведем итоги
- Стать разработчиком чат-ботов с нуля не очень сложно, для этого хватит школьных знаний по информатике и базовых знаний одного из языков программирования, обычно чат-ботов создают на Python.
- Базовые знания можно получить на бесплатных курсах и платформах для новичков в разработке чат-ботов.
- Чтобы не застопориться в профессиональном росте, все-таки надо получить соответствующее высшее образование. Оно даст знание базовых принципов разработки, алгоритмов и структур данных, нескольких языков программирования – все это послужит фундаментом для перехода на следующий профессиональный уровень.
Аналитическая компания Convince and Convert называет 24-часовой сервис от чат-бота наивысшей выгодой в его применении. По данным их опроса, так считают без малого 64% респондентов. Боты широко используются в различных областях бизнеса, а их создание востребовано на современном IT-рынке: поддержка клиентов, каналы продаж, передача информации, финансовые транзакции, управление анкетами и многое другое.
Как работают чат-боты и что умеют?
Чат-боты – это цифровое программное обеспечение, которое запрограммировано для ведения онлайн-разговоров с пользователем-человеком с помощью графики, видео, преобразования текста в речь или же просто текста. Постоянное развитие ИИ позволяет легко преобразовывать человеческий голос и текст в полезную автоматическую аналитику. Затем эти данные обеспечивают индивидуальный подход к каждому пользователю.
Благодаря использованию машинного обучения чат-бот может научиться реагировать и учится на своем опыте. Примеры чат-ботов: Siri от Apple Inc, Alexa Amazons, Google Assistant и другие решения.
Современные голосовые чат-боты умеют не только распознавать речь, но и определять эмоциональное состояние человека. Такие технологии активно тестируют ведущие российские банки с 2020 года. Их применение понятно: если клиент проявляет негативное состояние по телефону или в чате, то бот переадресует пользователя на специалиста call-центра. Это минимизирует риски, поскольку чат-бот, не понимающий контекст проблемы, может только усилить агрессию в адрес клиентского сервиса банка.
Уже существует и социальное применение голосовых помощников. Например, Google запустил проект Euphonia, который обучает ИИ распознавать нетипичную речь людей с инвалидностью. Проект направлен на создание доступной цифровой среды людям с инсультами, БАС, глухотой, синдромом Дауна, которые испытывают сложности с голосовыми помощниками. Результаты воодушевляют: Google обработал миллион образцов звуков и за 2 года исследования ИИ сократил количество ошибок в автоматической генерации с 89 до 13 %.
Как создавать чат-боты
1. Определить возможности чат-бота на основе искусственного интеллекта.
Первое, с чего стоит начать: разобраться, чего вы хотите достичь с помощью чат-бота, какие процессы он сможет упростить? Наиболее эффективно применение любого чат-бота для решения операционных задач, а затем расшифровывания полученных данных.
2. Понять цели использования чат-бота.
Если у вас уже есть веб-сайт или приложение, вы легко ответите на этот вопрос. Как человек взаимодействует с ними (по электронной почте, в чате, по телефону, в социальных сетях или на форуме)? Какие действия выполняют посетители? Какие ожидания они имеют в отношении вашего продукта?
3. Создать диалог с чат-ботом.
Когда разработчик знает о целях, то он может эффективно спроектировать беседу с чат-ботом. Существуют два вида взаимодействия: структурированное и неструктурированное.
Вы знаете, что спросит человек, и можете легко разработать раздел часто задаваемых вопросов в приложении, на сайте или мессенджере.
Такой поток разговора включает в себя простой текст в произвольном стиле. Если трудно определить, какие запросы появятся у людей, то чат-бот может импровизировать. Откуда ваш чат-бот узнает ответ? В этом и заключается роль ИИ, который создает контекст общения на основе анализа NLP.
При разработке сценариев для сообщений важно, чтобы темы разговора были близки к цели, которую выполняет чат-бот. Разработчик должен упростить диалоговый пользовательский интерфейс, в котором разговор с ботом будет максимально естественным и точным.
4. Разработка чат-бота: пошаговая инструкция в 5 этапов.
4.1. Для погружения в язык программирования можно пройти бесплатный курс, например, Университета Стэнфорд: курс по методологии программирования или машинного обучения.
4.2. Следующий этап: необходимо освоить язык программирования. Один из самых популярных в IT-среде – Python. Обрести навыки программирования на любительском уровне помогут бесплатные курсы от Google Python Class или Coursera «Основы программирования на Python».
4.3. Для закрепления материала можно решать различные задачи на ресурсах для практики программирования. Один из них – Codewars.
4.4. Существуют библиотеки для написания чат-ботов, которые освобождают разработчика от задачи писать код с нуля. Например, для написания чат-бота для Telegram на «Питоне» вам помогут: Python Telegram Bot или AIOGram.
4.5. Последний этап – создание чат-бота под конкретные цели. Это могут быть заказы в интернете, участие в тематических хакатонах или реализация собственных идей с последующим тестированием продукта на ваших друзьях или окружении. Это необходимые инструменты, позволяющие буквально набивать руку, приобретая высокую компетенцию.