Как сделать чат-бота с искусственным интеллектом от OpenAI в WhatsApp?#
Платформа Make предоставляет широкие возможности для автоматизации различных процессов.
В этом руководстве мы рассмотрим процесс создания чат-бота с использованием генеративного искусственного интеллекта и интеграции OpenAI в Make.
Для этого нам понадобится аккаунт Green-API с настроенным инстансом, а также аккаунты Make и OpenAI.
Содержание#
- Настройка приложения Green-API
- Создание сценария
- Настройка получения входящих сообщений
- Обработка запроса через OpenAI
- Отправка ответного сообщения пользователю
- Тестируем работу
Настройка приложения Green-API#
Настройка приложения Green-API подробно описана в разделе Настройка интеграции
Создание сценария#
Scenario (сценарий) - автоматизированный процесс, создаваемый в Make. Каждый сценарий состоит из триггера и действия. При срабатывании триггера в одном из приложений Make автоматически выполняет действие в другом.
Шаблон сценария
Вы можете создать сценарий по инструкции далее или воспользоваться нашим готовым шаблоном.
Алгоритм создания сценария:
- Войдите или зарегистрируйте учетную запись в Make
- В боковом меню нажмите кнопку
Scenarios

- На странице сценариев нажмите
Create a new scenario
, чтобы создать новый сценарий

- Сценарий успешно создан!
После создания сценария на странице Make появится знак плюс (добавление модуля).
Настройка получения входящих сообщений#
Для получения сообщений в Make требуется настроить триггер:
Настройка инстанса
При использовании триггера Watch webhooks автоматически устанавливается настройка инстанса:
"webhookUrl": "вебхуксервер make",
"incomingWebhook": "yes"
Порядок настройки триггера:
- Создайте новый сценарий
- Нажмите на знак
+
, в списке приложений найдите GREEN-API for WhatsApp

- Выберите в начале списка триггер Watch webhooks

-
Нажмите на добавленный модуль, чтобы открыть его настройки
-
Нажмите
Create a webhook
чтобы добавить вебхук

- Нажмите
Create a connection
чтобы добавить подключение к инстансу

- Укажите значения Вашего инстанса
idInstance
иapiTokenInstance
(Сценарий будет получать сообщения с номера, привязанного к этому инстансу)

Поле
Connection name
можно использовать для названия добавляемого инстанса (например "рабочий номер" или "продажи").
Это позволит вам легко найти нужную учётную запись в списке доступных при создании интеграций.
- Нажмите
Save
для сохранения значений
По умолчанию сценарий запускается при получении сообщения от любого написавшего номера.
Для запуска сценария при получении сообщения от определённого номера (или нескольких конкретных номеров), используйте параметр chatIds

chatIds
- Номер можно выбрать из списка контактов, нажав на значок выпадающего списка:

- Номер можно добавить вручную, введя его в поле
ChatId
:

При заполнении номера вручную, требуется вводить в международном формате + постфикс c@us
- phoneNumber@c.us
.
Например: 79876543210@c.us
.
Для добавления нескольких номеров, добавьте желаемое количество полей, нажав на Add item

- Нажмите
Save
, чтобы сохранить настройки
- Сделайте тест, нажав кнопку
Run once
.
Если в выбранном чате есть входящие сообщения, и тест успешен, нажмите налупу
, чтобы увидеть, какие поля будут доступны при настройке действия.

Готово! Триггер настроен, готов к использованию!
Ошибка при обработке вебхука
- Если при запуске сценария модуль
OpenAI
получает ошибку, как ниже на скрине, необходимо установить фильтр между модулямиNew Message Webhook
и модулемOpenAI

- В фильтре установите условие, где
typeWebhook
должен быть равенincomingMessageReceived
.


Обработка запроса через OpenAI#
В этом этапе мы настроим оправку сообщения пользователя в интеграцию от OpenAI для получения ответа от нейронной сети.
-
Среди интеграций находим "OpenAI"
-
Для генерации ответа пользователю выбираем модуль "Create a Completion"
-
Перед дальнейшей настройкой получим
Api key
иOrganization ID
из личного кабинета аккаунта OpenAI- Чтобы получить
Api Key
необходимо зарегистрироваться или войти в аккаунт OpenAI -
Переходим на вкладку
Api Keys
и нажимаем на кнопкуCreate New Api Key
-
Вводим название ключа и выбираем проект. В нашем случае это будет "Default Project". После ввода всех необходимых данных нажимаем на кнопку
Create New Key
-
Сохраняем полученный ключ
-
Кроме
Api Key
нуженOrganization ID
. Его можно найти на вкладкеGeneral
- Чтобы получить
-
Введем данные аккаунта в модуль
-
Нажимаем на кнопку
Create a connection
-
Вставляем данные в поля
API Key
иOrganization ID
полученные в пункте 3
-
-
Следующим этапом является выбор модели, которая будет генерировать ответ пользователю. Каждая модель из списка имеет как свои преимущества, так и недостатки, с которыми можно ознакомится на официальной документации.
Для наших целей подойдет модель "gpt-4o-mini", так как она предлагает высокое качество ответов при быстрой скорости генерации и низкой цене

-
Создадим запрос к модели. На данном этапе нужно выбрать роль и её сообщение
В данном примере создадим используем запрос с ролью "System", чтобы передать модели имя пользователя и формат диалога.
Что такое роли и в чем их разница?
При использовании API от OpenAI можно столкнутся с тем, что при формировании запроса к ChatGPT у запроса имеется "Роль". В чем же их отличие? * Запрос с ролью "System" представляет собой запрос напрямую к языковой модели, задавая её контекст и поведение. Например, можно сделать тон модели более формальным или дать дополнительную информацию, на основе которой модель будет формировать ответ * Запрос с ролью "User" передает запрос пользователя, на который языковая модель отвечает
-
Для этого нажмем на кнопку
Add message
-
Выбираем роль. Сначала создадим роль "System" с дополнительными инструкциями для модели
-
Заполним сообщение, упомянув имя пользователя на основе поля senderName
-
Создаем второй запрос от роли "User", передав переменную с сообщением пользователя в поле
Text Content
-
Перед переходом на следующий этап нужно снова отправить сообщение на номер привязанный к инстансу для дальнейшей настройки
Отправка ответного сообщения пользователю#
-
Создаем новый модуль "Send Message" из интеграции от Green-API
-
В качестве получателя выбираем отправителя из первого сообщения
-
Текстовым сообщением будет являться ответ от языковой модели. Выбираем переменную "Result" из модуля "Create a Completion"
-
Запускаем автоматизацию, нажав на переключатель в углу экрана
Тестируем работу#
Для тестирования работы автоматизации достаточно отправить сообщение на номер привязанный к инстансу. Через несколько секунд в ответ придет ответное сообщение, содержащие ответ от ChatGPT, а в Make можно будет увидеть успешное выполнение автоматизации.

Таким образом мы настроили личного чат-бота в WhatsApp с ИИ для общения с пользователями.
Примеры использования приложения Green-API#
Настройка интеграции Make и WhatsApp
Как сделать обмен сообщениями между WhatsApp и Slack
Как сделать обмен сообщениями между WhatsApp и Discord
Как использовать Google Sheets для организации рассылок в Make