Личный ассистент с ChatGPT в телеграм-боте
Сегодня новые возможности для бизнеса открывает использование чат-ботов. Чат-бот - это виртуальный сотрудник, который всегда на связи, никогда не отпрашивается, не отвлекается, не уходит в отпуск или на больничный, да еще и может работать круглосуточно. Он намного дешевле, чем разработка отдельного приложения, проще в создании и обслуживании, а в ряде случаев работает эффективнее лендингов и стандартных рекламных рассылок.
Платформа Leadtex - это универсальный конструктор чат-ботов, который позволяет создавать проекты для Telegram, Viber, WhatsApp и ВКонтакте.
На платформе доступны 20 готовых интеграций с различными сервисами, что открывает широчайшие возможности для оптимизации и развития бизнеса. Также у Leadtex есть гибкие возможности создания кастомных решений без навыков программирования, в частности - интеграция с ChatGPT.
Интеграция GPT в чат-боты позволяет создавать виртуальных персональных ассистентов, которые умеют поддерживать длительные диалоги с пользователем.
В данной статье мы разберем, какие возможности есть у ChatGPT сегодня, какие задачи может решать бот-ассистент с искусственным интеллектом и как создать чат-бота с внедрением ChatGPT без единой строчки кода.
Что умеет ChatGPT сегодня
Чат GPT - это самая популярная нейросеть, которая может обрабатывать большие объемы данных. С последним обновлением GPT, возможности значительно расширились.
На сегодняшний день ChatGPT умеет запоминать контекст предыдущих сообщений и давать более глубокие и информативные ответы.
Он отвечает на конкретный вопрос, дает пояснения, может исполнять различные роли, общаться как в более официальном и строгом ключе, так и в более теплом и живом тоне, в зависимости от потребностей аудитории. Это делает его идеальным инструментом для создания личных ассистентов, способных эффективно взаимодействовать с пользователями.
Какие задачи может решать ассистент в телеграм-боте
Чат-боты в мессенджерах с интеграцией ChatGPT можно использовать для решения многих задач бизнеса:
- ответы на часто задаваемые вопросы (FAQ);
- онлайн-запись на прием или консультацию;
- консультации по ассортименту в магазине;
- информация о доступных услугах, скидках и акциях, в том числе - персонализированных;
- проведение опросов и сбор обратной связи;
- аналитика больших объемов данных.
Это только часть вариантов внедрения личного GPT-ассистента в телеграм-боты.
Ты можешь создать чат-бота в телеграм самостоятельно. Все, что тебе понадобится - это 2 сервиса и пошаговая инструкция от Leadtex, которая позволит тебе настроить чат-бот, даже если ты никогда не писал ни строчки кода.
Итак, поехали!
Создание сценария на Leadtex
1 Создание бота в Telegram и подключение к платформе Leadtex
Чтобы подключить бота к платформе Leadtex, тебе нужно зарегистрироваться. Сделать это по ссылке в несколько кликов.
Далее открой раздел «Каналы», выбери «Telegram» - «Добавить аккаунт».
- Вторым шагом необходимо создать твоего личного бота в мессенджере.
Для этого перейди в специального бота @BotFather в телеграм, он позволяет создать и настроить новый чат-бот.
Ссылку ты увидишь сразу после нажатия кнопки «Добавить аккаунт» в предыдущем шаге.
В левом углу выбери Меню – /new bot – напиши имя для чат-бота (например, Чат ГПТ), создай для бота уникальный username.
Важно! Username нужно писать на латинице, и заканчиваться он должен словом bot.
После этого ты получишь сообщение, в котором будет указан API токен. Скопируй этот токен и вставь в соответствующее поле на платформе Leadtex
Нажми «Сохранить». Теперь у тебя есть ссылка на созданного бота в телеграм.
2 Создание логики бота в визуальном конструкторе
Логика чат-бота включает в себя множество сценариев. Сценарии - это системы сообщений, которые бот будет отправлять пользователю, и внутренние решения, обеспечивающие работу чат-бота.
В визуальном конструкторе Leadtex можно полностью построить архитектуру будущего бота с помощью готовых блоков, не имея навыков программирования.
Приступим к практической реализации кейса.
- Перейди в раздел «Сценарий», удали блок «Заявка».
Блок «Цепочка сообщений» подтяни к блоку «Старт» и соедини их связью. Теперь после запуска чат-бота пользователь попадет в блок «Цепочка сообщений».
- В блоке «Цепочка сообщений» поменяй приветственное сообщение.
Для этого открой настройки этого блока и напиши там нужный текст. Например: «Привет! Вы хотите задать вопрос или продолжить предыдущий разговор?»
В разделе «Меню» создай две кнопки. Согласно первоначальному вопросу - «Задать вопрос», для старта новых диалогов с ассистентом, и «Продолжить предыдущий разговор», для продолжения диалога.
Важно! Текст на кнопках должен соответствовать тексту в блоке «Цепочка сообщений».
Нажми кнопку «Настройка клавиатуры», в выпавшем окне выбери Telegram и перемести названия кнопок наверх. Так они будут отображаться в чат-боте сразу вместе с отправленным текстовым сообщением, без замены пользовательской клавиатуры.
Пролистай меню справа и выбери настройку «Подменять предыдущее сообщение в чате».
- От кнопки «Задать вопрос» создай новый блок.
Он находится в выпадающем меню в разделе «Еще - Специальные - Операция над переменной».
Открой настройки этого блока. В поле «Значение\Выражение» напиши цифру 0, затем в поле «Имя результирующей переменной» задай нужное название (например, «чат»).
В поле «Тип результирующей переменной» поставь «Локальная» (индивидуальная переменная пользователя). На этом окно настроек блока можно закрыть.
Эта переменная поможет определить, нужно ли боту продолжать прежний диалог или стоит создать новый.
- От команды «Продолжить» создай еще один новый блок - «Цепочка сообщений».
Перейди в его настройки, нажми кнопку «Текст», чтобы добавить нужное сообщение, например «Спрашивайте, что вас интересует».
Чуть ниже в разделе «Меню» добавь кнопку «Отмена». При ее нажатии пользователь сможет вернуться в предыдущий блок. Чтобы процесс сработал, протяни связь от кнопки «Отмена» к первому блоку «Цепочка сообщений».
В настройках включи опцию «Записать ответ в пользовательскую переменную» и назначь имя переменной, например «запрос», и активируй функцию «Подменять предыдущее сообщение в чате».
Пользовательская переменная сохраняет данные, которые пользователь напишет чат-боту, и позволяет использовать их в дальнейшем диалоге.
На этом шаге мы предполагаем, что пользователь введет ответ на сообщение самостоятельно, поэтому для того, чтобы чат-бот продолжил движение по сценарию, проводим связь от команды «Любая другая фраза».
- Создай еще один блок «Цепочка сообщений».
В настройках текстового поля добавь текст «Думаю над ответом…», поскольку ChatGPT сгенерирует ответ для пользователя через какое-то время.
Это сообщение даст пользователю понять, что процесс продолжается, просто боту требуется некоторое время на размышления.
Снова активируй в меню настроек опцию «Подменять предыдущее сообщение в чате».
- Поскольку в ответ на то сообщение, которое мы настроили на этом этапе, пользователь ничего писать не будет, настрой следующий блок по команде «Продолжить».
Зайди в меню «Еще - Специальные - HTTP запрос» и добавь данный блок в сценарий.
На этом этапе твой сценарий будет выглядеть так:
С помощью HTTP блока можно отправлять запросы сторонним сервисам.
В настройках этого блока в разделе «Меню» добавь команду «Завершить». С помощью этой команды пользователь сможет выйти из диалога с чат-ботом, если решит не продолжать разговор. Пока оставь этот блок пустым, закончим его настройку немного позже, когда будем создавать сценарий на платформе Make и получим ключ от ChatGPT.
В случае, если потребуется задать следующий вопрос в цепочке, нужно активировать опцию «Записать ответ в пользовательскую переменную» и выбрать ранее созданную переменную «запрос».
- От команды «Завершить» этого блока сделай новый блок «Цепочка сообщений».
В настройках текстового блока напиши сообщение, которое будет завершать диалог с пользователем. Например: «Отличная вышла беседа! Спрашивайте снова, если появятся вопросы».
В данном блоке создай кнопку «Выйти в главное меню» и перетяни ее в настройках точно так же, как в пункте настройки приветственного сообщения.
- Добавь новый блок «Сценарий», в настройках выбери «Главный сценарий» и протяни связь к данному блоку от кнопки «Выйти в главное меню».
При нажатии на кнопку пользователь переместится в самое начало прописанного тобой сценария. На этом этапе завершен процесс для ветки, в которой пользователь хочет завершить беседу.
- Для продолжения диалога нам необходимо зациклить сценарий.
Для этого в блоке «HTTP-запрос» необходимо создать связь с командой «Любая другая фраза».
Боту повторно потребуется время на обдумывание, поэтому скопируй блок «Цепочка сообщений» с заготовленным сообщением «Думаю над ответом…».
Дополнительно продублируй блок «HTTP-запрос». От команды «Продолжить» в блоке «Цепочка сообщений» протяни связь к скопированному блоку.
На тот случай, если пользователь решит продолжить общение, нужно создать цикл. Для этого снова скопируй блок «Цепочка сообщений» с подготовленным сообщением «Думаю над ответом…», протяни связь между блоками и замкни, как показано на схеме.
Таким образом пользователь сможет продолжать общение сколько угодно долго и в любой момент завершить диалог.
Мы закончили выстраивание цепочки на стороне Leadtex, далее выполним подготовительные настройки OpenAi и перейдем к подключению Make.
Создание ассистента на OpenAI
Для создания виртуального ассистента тебе потребуется выполнить всего 2 действия на стороне OpenAi.
1 Получение секретного ключа
Для получения ключа открой сайт OpenAI, выбери раздел «API», пункт «Docs». Если ты еще не зарегистрирован на площадке, придется это сделать, инструкцию можно без труда найти самостоятельно.
Перейди в раздел «API keys», выбери «Create new secret key», задай название твоему ключу и нажми зеленую кнопку «Create secret key».
Сохрани этот ключ, он потребуется для настройки интеграции.
2 Создание личного ассистента
Выбери раздел «Assistance» и нажми «Create an assistant». Задай ему любое имя, которое сочтешь нужным. В поле «Model» выбери модель, подходящую под твою задачу. Для большинства функций подойдет gpt-3.5-turbo, она дает не самые креативные ответы, зато работает очень быстро.
В поле «Instructions» можно оставить особые инструкции, чтобы ассистент отвечал определенным тоном или выполнял конкретную роль.
Кроме того, в поле «Flies» ты можешь загрузить нужные файлы - текстовые или pdf, из которых твой бот-ассистент будет брать информацию. В этом случае придется выбрать модель gpt-3.5-turbo-1106, далее активируешь опцию «Retrieval». После этого можешь загружать необходимые файлы.
Нажми «Save» для сохранения настроек и создания ассистента.
Готово, теперь созданный тобой ассистент появится в списках при настройке Make с уникальным ID.
Переходим к завершающему этапу создания проекта - интеграции ChatGPT и Telegram-бота.
Создание логики в Make
1 Регистрация на платформе Make
Зарегистрируй новый аккаунт на платформе Make по ссылке, заполнив все необходимые поля.
При регистрации тебе будет доступен 1 месяц бесплатного использования сервиса.
Рассмотрим, как создать логику сценария на платформе Make.
- Создание логики сценария в Make
Перейди в раздел меню «Scenarios» и нажми «Create new scenario», чтобы создать новый сценарий.
- В созданном сценарии нажми кнопку создания нового сценария и добавь первый модуль, который называется «Webhook».
Выбери вариант «Custom webhook» в меню программы. С помощью этого бабла мы будем получать сигнал от Leadtex о том, что необходимо отправить запрос в ChatGPT.
Нажми кнопку «Add», в поле «Webhook name» укажи нужное название, например «Leadtex GPT», и сохрани с помощью кнопки «Save».
- На этом этапе ты можешь закончить настройку блока HTTP на Leadtex, который ранее оставил пустым.
Скопируй адресную строку из появившегося окна. Это можно сделать, нажав кнопку «Copy address to clipboard».
Затем вернись на Leadtex в ранее созданный сценарий и вставь скопированный адрес в поле «URL» в каждом блоке «HTTP-запрос».
После действий в предыдущем пункте Make ждет запроса на указанный URL, чтобы установить соединение между чат-ботом в телеграм и нашим сценарием.
Для тестирования соединения, запусти разовую отработку сценария в Make с помощью кнопки «Run once» в левом нижнем углу.
Перейди в Telegram и отправь любой запрос в твоем чат-боте.
Для того, чтобы отправить запрос, открой Telegram и через @BotFather открой созданный ранее чат-бот, запусти его по кнопке «Start/Начать» и выбери «Задать новый вопрос».
Если все настроено корректно, ты увидишь в Make, что первый модуль получил какие-то данные, в кружке справа от модуля появилась цифра 1.
Нажми ее, открой ветку «Contact». В ней ты увидишь имя пользователя. Чуть ниже проверь ветку «Variables», в которую должны сохраниться полученные переменные.
Если ее открыть, ты убедишься, что получены две переменные, первая - «чат» со значением 0 (Value 0), как было задано в блоке «Операция над переменной» на платформе Leadtex.
Вторая переменная под названием «запрос» пришла с тем значением, который ты написал на предыдущем этапе, когда отправил запрос в чат-бот.
Нам необходимо разделить все диалоги с пользователем на новые и уже существующие. Для этого нужно настроить две ветки сценария.
- Создай следующий модуль.
Добавь переключатель, который будет направлять пользователя по двум веткам: в уже существующий диалог или создавать новую беседу. Нажми кнопку «Tools» и в выпавшем меню выбери «Router».
- В появившемся новом модуле нажми на «+», программа создаст две новые ветки.
В первой ветке выбери новый бабл из списка, в нашем случае это будет «OpenAI» для интеграции с ChatGPT.
Из появившегося списка выбери вариант «Message an assistant».
В поле «Connection» нужно будет создать соединение с OpenAI. Для этого нажми кнопку «Add», чтобы добавить новое соединение, в поле «Connection name» задай нужное название.
В следующем поле вставь API-ключ с площадки OpenAI, который ты создал ранее в разделе «Создание ассистента на OpenAI».
Подключение установлено. Теперь тебе нужно получить ответ от чата GPT на сообщение пользователя, которое ранее мы сохранили в переменную и передали в Make.
Поставь курсор в поле Message, и в появившемся меню откроются данные из модуля «Webhook». Открой ветку с переменными «Variables» и выбери значения переменных «Value».
Поскольку в этом модуле находятся две переменные, нужно еще раз открыть всплывающее окно у первого модуля «Webhook - Contact - Variables». В первой переменной у нас будет храниться номер чата, а во второй - сам запрос.
Добавляем цифру 2 в квадратные скобки в поле «Message», чтобы Make понимал, значение какой переменной нужно будет передать чату GPT.
Следующее поле - «Assistant». В списке ассистентов при нажатии стрелки увидишь созданного ранее ассистента. Выбирай его.
Поле «Thread ID» хранит в себе уникальный ID чата, в котором происходит диалог. Благодаря этому ID возможно сохранять историю общения с конкретным пользователем. Если это поле оставить пустым, будет создан новый чат. Это тебе и нужно для новых диалогов, так что можно сохранять ветку, нажав «ОК».
После того, как только ChatGPT получит запрос, обработает его и даст ответ, помимо текста ответа, мы получим Thread ID того чата, в котором будет можно продолжать общение.
Для того, чтобы его сохранить, добавь в настраиваемую ветку еще один модуль и найди в списке бабл Leadtex (который должен быть заранее добавлен в Make), внутри него выбери функцию «Добавить\обновить переменную» («Set\Update variable»).
Как добавить бабл Leadtex на платформу Make
Для загрузки бабла Leadtex в кабинет Make воспользуйся ссылкой.
Тебе достаточно просто перейти по ссылке. Make сразу предложит тебе установить бабл Leadtex. Нажми «Install», поставь галочку в поле «My organisation» и еще раз нажми «Install»
После установки бабла Leadtex нажми «Go to dashboard» и вернись обратно во вкладку нового сценария в Make.
Теперь, если ты нажмешь на «+», то увидишь, что в меню появился бабл Leadtex, который тебе понадобится для создания сценария будущего чат-бота в Telegram на базе Make.
Вернемся в ранее созданный сценарий и продолжим его настройку.
- В поле «Connection» создай соединение с Leadtex: нажми «Add», напиши нужное имя нового соединения и введи API токен.
Чтобы получить API токен, перейди на Leadtex, нажми на имя пользователя и выбери раздел «Настройки». В нем выбери «Ключ API» и скопируй появившийся ключ. Перейди обратно в Make, вставь скопированный ключ в поле «API токен» и сохрани изменения.
- Прежде чем продолжать настраивать основные поля, закрой блок и разорви связь между модулями «OpenAI» и «Leadtex» с помощью команды Unlink.
Затем попробуй отправить однократный запрос с помощью кнопки «Run once», чтобы убедиться, что связь бота с ChatGPT работает корректно.
Для теста созданной логики открой Telegram и снова запусти чат-бота. Нажми кнопку «Задать новый вопрос» и напиши в боте какой-нибудь вопрос.
На схеме с модулями ты увидишь, когда чат GPT сформирует ответ - возле соответствующего модуля появится цифра 1.
Нажми на значок возле модуля «OpenAI», разверни меню. В нем ты увидишь Thread ID того чата, где происходит общение, и в ветке «Content - Text» будет отображен текст ответа на вопрос, который был передан чат GPT.
- Продолжаем настраивать блок Leadtex.
В поле Contact ID тебе нужно написать значение ID контакта из бабла Webhook, раздел Contact, поле ID.
Далее задай имя переменной. Переменную, в которой хранится нужное значение, ты создал на Leadtex в блоке «Операция над переменной» под названием «чат». Соответственно, в поле «Variable name» просто напиши «чат».
Обрати внимание! Название переменной должно полностью совпадать на Leadtex, и во введенном поле.
В поле «Variable value» будут сохраняться значения переменной при общении в чат-боте, поэтому туда нужно поставить Thread ID. Нажми «ОК» для сохранения настроек.
- Осталось настроить последний блок.
Введи в поиске Telegram и выбери модуль «Telegram bot», в нем выбери команду «Send a Text Message or a Reply», которая позволяет отправлять текстовые сообщения.
Теперь снова необходимо создать соединение с ботом. Нажми на «Add», выбери имя для соединения, вставь в нужное поле API токен - тот самый, который ты получил от бота BotFather при подключении бота к Leadtex.
В поле «Chat ID» нужно поставить значение из модуля «Webhook», там оно отображается под названием Telegram ID.
В следующее поле нужно добавить текст, который ты получил в модуле «OpenAI» в разделе «Content - Text - Value», и нажать «ОК».
Ветка создания нового чата и отправки сообщения готова!
Сохрани ее и протестируй: нажми кнопку «Run once», открой телеграм, перейди в чат-бота, перезапусти его командой start, задай новый вопрос и убедись, что созданная ветка работает корректно.
- Теперь настрой переключатель, чтобы в твоем чат-боте в телеграм работали обе заложенные ветки.
У модуля «Router» нажми на иконку с гаечным ключом и установи фильтр через пункт «Set up a filter».
В выпавшем меню в поле «Condition» тебе надо выбрать переменную, по которой будет происходить фильтрация.
Данные ты получаешь от Leadtex через модуль «Webhook».
Открой список переменных «Variables», выбери значение переменной Value. Ранее ты настроил в цепочке переменную «чат» на первом месте, соответственно в поле «Condition» между значениями в квадратных скобках добавь цифру 1.
Теперь на это место всегда будет подставляться нужная переменная.
В следующем поле «Text operations» укажи условие, которому должна быть равна переменная, чтобы сценарий пошел по верхней ветке создания нового чата.
В самом начале создания сценария на Leadtex ты предусмотрел, что если пользователь задает новый вопрос, то для переменной «чат» задается значение 0. Соответственно, в этом поле поставь 0 и сохрани изменения.
- Теперь произведи настройку нижней ветки аналогичным способом.
Нажми «Set up a filter» для нижней ветки, точно так же выбери значение переменной 1, но в поле «Text operation» на этот раз выбери «Not equal to 0», т.е. переменная не равна 0.
В этом случае если пользователь уже задал вопрос, переменной «чат» присвоилось значение ID нужного чата. Когда он задаст новый запрос, то чат-бот отправит данные в блок «HTTP-запрос», запрос пойдет на тот же самый адрес, запустится сценарий в Make, но бот пойдет уже по нижней ветке. Это произойдет потому, что переменная «чат» будет содержать какое-то значение, отличное от 0.
Сценарий повторного диалога в Make
Чтобы пользователь мог продолжить диалог, а ChatGPT учитывал контекст предыдущих сообщений, создай вторую ветку сценария на Make.
1 Изменения бабла OpenAi
Нажми правой кнопкой мыши на модуль OpenAI в верхней ветке и выбери команду Clone.
Перетяни получившийся кружок вниз. Открой его настройки. Здесь все остается без изменений, единственное что тебе нужно - указать номер чата в поле «Thread ID».
Этот номер хранится в данных, полученных от платформы Leadtex через «Webhook» в разделе с переменными Variables - Value. Значение переменной находится на первом месте под номером 1. Вставь его в нужное поле, нажми «ОК».
2 Изменение ответа от ChatGPT
Осталось только настроить отправку сообщения, которое сгенерирует чат GPT, в Telegram. Скопируй модуль «Telegram Bot» из верхней ветки, перетащи в нижнюю ветку, и поменяй настройки. Тебе необходимо изменить только значение в поле «Text». Выбери в модуле «OpenAI» из нижней ветки раздел «Content - Text - Value» и сохрани настройки.
Протестируй получившуюся цепочку.
Снова нажми кнопку «Run once», открой телеграм и напиши новый вопрос, но так, чтобы он вытекал из контекста предыдущего диалога. На этот раз сработает нижняя ветка, и если все настроено правильно, ты получишь корректный ответ от OpenAI на свой вопрос.
3 Добавление кнопок для навигации в сообщение
Последняя деталь - нужно создать кнопку для завершения диалога в телеграм. Открой модуль Telegram Bot, активируй опцию дополнительных настроек Show advanced settings», найди раздел Reply markup в самом нижнем разделе меню. Вставь туда текст {"inline_keyboard":[[{"text":"Завершить","callback_data":"Завершить"}]]}
Эта команда позволяет создать inline-клавиатуру с одной кнопкой «Завершить». Сохрани изменения и сделай то же самое с модулем Telegram Bot в нижней ветке на Make.
Тестирование сценария и запуск ассистента с ChatGPT в Telegram-боте
Обе ветки сценария готовы, и остается только убедиться, что чат-бот работает корректно: может отвечать на вопросы, учитывать контекст предыдущего диалога или завершать беседу.
Для этого попробуй протестировать всю цепочку еще раз и проверь, что все этапы настройки работают как надо.
Затем сохрани сценарий на Make и поставь переключатель в левом нижнем углу экрана в положение “ON”, чтобы твой чат-бот работал в постоянном режиме.
Все! Можно приступать к финальному тестированию в телеграм.
Теперь ты умеешь создавать чат-бота-ассистента самостоятельно и встраивать в него самую продвинутую на сегодняшний день нейросеть ChatGPT.
Регистрируйся на платформе Leadtex, создавай чат-ботов и внедряй их в свою работу.
Если туториал был полезен для тебя обязательно подписывайся на наш блог и делись в комментариях результатами.