Подключаем нейросеть Google Dialogflow к вашему боту
Рассказываем, как подключить Google Dialogflow к Телеграм-боту. Есть вариант подключения без использования кода!
8К открытий11К показов
Привет! Меня зовут Илья Осипов, я методист курса программирования на Python «Девман» и больше пяти лет пишу код на этом языке. Сегодня расскажу, как новичку сделать полезного чат-бота.
ChatGPT, купленная Microsoft, постепенно захватывает мир. Но у Google уже лет пять как есть своя нейросеть, которой можно пользоваться бесплатно и так же бесплатно интегрировать в свои продукты. Она поглупее, попроще, но с задачей «понять смысл вопроса и ответить заготовленной фразой» вполне справляется.
Кто-то скажет, что это минус в сравнении с ChatGPT. Но, на мой взгляд, они не конкуренты, а решают разные задачи. ChatGPT в ситуации неуверенности, «придумывает» ответ, даже если он будет неправильным. Она хорошо умеет реагировать на широкий спектр вопросов, выполнять творческие задачи. Но, например, в центре техподдержки это и не нужно. 98% пользователей обращаются с типовыми вопросами: «Как сделать X?», «Где найти Y?». В такой ситуации не нужно творчество, да и генерировать уникальный ответ каждый раз тоже ни к чему. Наоборот, будет странно, если в ответ на вопрос «Как мне вернуть деньги за эту услугу?» клиент получит рассуждения «А нужны ли вам эти деньги?» или ещё какой-нибудь казус, который может выдать ChatGPT.
DialogFlow куда лучше справляется с такого типа задачами. Она всё ещё выполнит полезную работу: прочитает текст и поймёт «смысл» вопроса клиента. Но реагировать будет заранее выверенными ответами, без сюрпризов.
Ниже я расскажу, как зарегистрироваться в DialogFlow и собрать на ней небольшой центр техподдержки. Сначала будет пример, как сделать это вообще без кодинга, а далее поговорим о том, как внедрить технологию в свой код.
Дисклеймер: Да, многих бесят такие боты. Но вы не представляете, сколько денег они экономят на типовых вопросах. Бывает, боты не понимают сложный вопрос и отвечают невпопад. На такой случай обычно всегда можно позвать человека. Но на каждый такой «сложный» вопрос приходится сотня типовых, с которыми бот легко справляется самостоятельно.
Шаг 1: Создайте проект в DialogFlow
Начните с создания профиля на DialogFlow. Зайдите на сайт DialogFlow и создайте проект:
И после этого заполните небольшую форму:
Шаг 2: Поздоровайтесь со своим творением
Сразу, как только создали бота, он уже кое-что умеет: здороваться и говорить, что вас не понял.
С ним уже можно пообщаться, жмите в поле справа-сверху и попробуйте с ним поздороваться. Он понимает множество способов это сделать:
Вот я попробовал с ним поздороваться, и он меня понял:
Как он это понял? За это отвечают намерения (Intents). Каждое намерение — это одна тема разговора, которую понимает бот. Как только вы создали бота, у вас появились два намерения:
На них можно кликнуть и посмотреть, что внутри. Например, я кликнул на «Welcome Intent» и вижу набор приветствий, на которых тренировалась нейросеть:
Шаг 3: Научите бота новым словам
Поздороваться в ответ — это, конечно, важная функция, но за такое вам не заплатят. Давайте научим бота обрабатывать какой-нибудь запрос пользователя, например «Забыл пароль».
Создайте новое намерение по кнопке Create Intent и нажмите внутри Add training phrases:
Теперь нужно объяснить боту, что за намерение он должен обрабатывать. Нужны примеры. Заполните несколько примеров, как пользователь может обратиться в техподдержку. Вот список фраз, который придумал я:
Далее пролистайте вниз и найдите Add Response:
Добавьте текст, которым бот должен отвечать в ответ на тренировочные фразы:
В конце концов, когда вы создали новое намерение, можно написать боту новый вопрос и посмотреть, что он ответит:
Обратите внимание, я написал боту фразу, которой не было среди тренировочных. Даже похожих толком не было. Он понял смысл фразы и научился.
Шаг 4: Подключаем к Telegram
Дальше будет два набора инструкций: для программистов и для людей, которые кодить не умеют.
В любом случае вам надо создать бота в Telegram: это делается прямо в Telegram, через Крёстного отца всех ботов: @BotFather.
Если вы зерокодер
То теперь просто возвращаетесь на сайт DialogFlow, жмёте Integrations, находите Telegram и вставляете туда токен. Готово, можно общаться с новым другом:
Если вы программист
То поздравляю, ваш бот сможет куда больше! Скачайте консольную утилиту gcloud, залогиньтесь в ней через консоль и передайте в неё project_id вашего проекта в DialogFlow. Его можно посмотреть здесь:
После включите API для вашего проекта, скачайте гугловскую библиотеку для вашего языка программирования и можете начинать пользоваться API!
Я программирую на Python, поэтому скачал google-cloud-dialogflow. Теперь пора написать немного кода: нужна авторизация в Google и получение ответа от DialogFlow. По ссылкам вы найдёте готовые примеры кода от Google.
Примеры в документации довольно монструозные, т.к. писались сразу под все языки подряд. Я почистил пример для Python, можете посмотреть его по ссылке на мой gist. Заодно примеры уже собраны в один кусочек кода, вместе. Не забудьте подставить в код свой PROJECT_ID на 36-ой строке, иначе ничего не получится.
В общем-то готово. Код умеет получать ключи от Google, передавать ввод пользователя в DialogFlow и получать ответ. Теперь можете интегрировать этот код буквально куда угодно. Если хотите сделать шаг дальше — можно засунуть этот код в чат-бота.
Теперь, из предыдущей моей статьи можно взять заготовку для бота.. Достаточно закинуть все импорты и функции из обоих заготовок кода в один файл. После, чтобы всё завелось, достаточно чуть переписать код, заменить функцию echo на такой кусочек кода и готово:
А вот что получится в итоге:
Теперь вы можете дообучить бота отвечать на нужные вам вопросы через браузерный интерфейс или по API.
8К открытий11К показов