Перейти к содержанию

OpenAI Как сделать чат-бота с искусственным интеллектом от OpenAI в WhatsApp?#

Для создания чат-бота с использованием генеративного искусственного интеллекта и интеграции OpenAI в Make нам понадобится аккаунт Green-API с настроенным инстансом, а также аккаунты Make и OpenAI.

Содержание#

  1. Настройка приложения Green-API
  2. Создание сценария
  3. Настройка получения входящих сообщений
  4. Обработка запроса через OpenAI
  5. Отправка ответного сообщения пользователю
  6. Тестируем работу

Настройка приложения Green-API#

Настройка приложения Green-API подробно описана в разделе Настройка интеграции

Создание сценария#

Scenario (сценарий) - автоматизированный процесс, создаваемый в Make.
Каждый сценарий состоит из триггера и действия. При срабатывании триггера в одном из приложений Make автоматически выполняет действие в другом.

Шаблон сценария

Вы можете создать сценарий по инструкции далее или воспользоваться нашим готовым шаблоном.

Алгоритм создания сценария:

  • Войдите или зарегистрируйте учетную запись в Make
  • В боковом меню нажмите кнопку Scenarios

go-to-scenarios

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

create-new-scenario

  • Сценарий успешно создан!

После создания сценария на странице Make появится знак плюс (добавление модуля).


Настройка получения входящих сообщений#

Для получения сообщений в Make требуется настроить триггер:

Настройка инстанса

При использовании триггера Watch webhooks автоматически устанавливается настройка инстанса:

"webhookUrl": "вебхуксервер make",
"incomingWebhook": "yes"

Порядок настройки триггера:

app

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

watch-webhooks

  • Нажмите на добавленный модуль, чтобы открыть его настройки

  • Нажмите Create a webhook чтобы добавить вебхук

add-webhook

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

create-webhook

  • Укажите значения Вашего инстанса idInstance и apiTokenInstance

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

make-green-api-form

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

  • Нажмите Save для сохранения значений

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

chatIds

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

specify-chat-yes-contactlist

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

specify-chat-yes-manual

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

Для добавления нескольких номеров, добавьте желаемое количество полей, нажав на Add item

chatIds

  • Нажмите Save, чтобы сохранить настройки

  • Сделайте тест, нажав кнопку Run once.

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

    test-trigger

Готово! Триггер настроен и готов к использованию!

Ошибка при обработке вебхука
  • Если при запуске сценария модуль OpenAI получает ошибку, как ниже на скрине, необходимо установить фильтр между модулями Watch webhooks и модулем OpenAI

Ошибка

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

Фильтр1
пше

Фильтр2


Обработка запроса через OpenAI#

В этом этапе настраивается отправка сообщения пользователя в интеграцию от OpenAI для получения ответа от нейронной сети.

  1. Среди интеграций найдите OpenAI

    Изображение с поиском приложения OpenAI

  2. Для генерации ответа пользователю выберите модуль Create a Completion (Prompt)

    Изображение с выбором модуля "Create a Completion"

  3. Перед дальнейшей настройкой получим Api key и Organization ID из личного кабинета аккаунта OpenAI

    1. Зарегистрируйтесь или войдите в аккаунт OpenAI
    2. Перейдите на вкладку Api Keys и нажимаем на кнопку Create new secret key

      Изображение с переходом к нужной кнопке

    3. Введите название ключа и нажмите на кнопку Create secret key

      Изображение с вводом данных для создания Api Key

    4. Сохраните полученный ключ

      Изображение с окном с Api Key

    5. Кроме Api Key нужен Organization ID. Он находится на вкладке General

      Изображение со страницы General, на которой указан Organization ID

  4. Введите данные аккаунта в модуль

    1. Нажмите на кнопку Create a connection

      Изображение с кнопкой создания соединения

    2. Вставьте данные в поля API Key и Organization ID полученные в пункте 3

      Изображение с введенными данным для соединения с OpenAI

  5. Следующим этапом является выбор модели, которая будет генерировать ответ пользователю.
    Каждая модель из списка имеет как свои преимущества, так и недостатки, с которыми можно ознакомится на официальной документации.

    Для наших целей подойдет модель "gpt-4o-mini", так как она предлагает высокое качество ответов при быстрой скорости генерации и низкой цене

    Изображение с выбором модели для ответа

  6. Создайте запрос к модели. На данном этапе нужно выбрать роль и её сообщение

    В данном примере создадим используем запрос с ролью Developer / System, чтобы передать модели имя пользователя и формат диалога.

    Что такое роли и в чем их разница?

    При использовании API от OpenAI можно столкнутся с тем, что при формировании запроса к ChatGPT у запроса имеется "Роль". В чем же их отличие?

    • Запрос с ролью Developer / System представляет собой запрос напрямую к языковой модели, задавая её контекст и поведение. Например, можно сделать тон модели более формальным или дать дополнительную информацию, на основе которой модель будет формировать ответ
    • Запрос с ролью User передает запрос пользователя, на который языковая модель отвечает

    выбор роли

    1. Для этого нажмем на кнопку Add message

      Изображение с кнопкой создания сообщения с ролью

    2. Выбираем роль. Сначала создадим роль Developer / System с дополнительными инструкциями для модели

      Изображение с выбором роли "System"

    3. Заполним сообщение, упомянув имя пользователя на основе поля senderName

      Изображение с заполненным системным сообщением для модели

    4. Создаем второй запрос от роли User, передав переменную с сообщением пользователя в поле Text Content

      Так как текст сообщения может передаваться в разных полях в зависимости от типа собщения, рекомендуется указать условие:
      "если textMessageData: textmessage не пусто, то использовать его; в ином случае - использовать extendedTextMessageData.text"

      Изображение с заполненным сообщением пользователя для модели

Перед переходом на следующий этап нужно снова отправить сообщение на номер привязанный к инстансу для дальнейшей настройки


Отправка ответного сообщения пользователю#

  1. Добавим новый модуль Send a Message из приложения GREEN-API for WhatsApp

    Изображение с выбором модуля "Send Message"

  2. В качестве получателя выбираем отправителя из уведомления incomingMessageReceived, полученном в модуле Watch webhooks

    Изображение с выбором ChatId отправителя в качестве получателя

  3. Текстовым сообщением будет являться ответ от языковой модели. Выбираем переменную Result из модуля Create a Completion

    Изображение с выбором результата от OpenAI в качестве ответного сообщения

  4. Запускаем автоматизацию, нажав на переключатель в углу экрана

    Запуск


Тестируем работу#

Для тестирования работы автоматизации достаточно отправить сообщение на номер привязанный к инстансу. Через несколько секунд в ответ придет ответное сообщение, содержащие ответ от ChatGPT, а в Make можно будет увидеть успешное выполнение автоматизации.

Изображение с успешным выполнением автоматизации

Личный чат-бот в WhatsApp с ИИ для общения с пользователями настроен и готов к работе.


Примеры использования приложения Green-API#

Настройка интеграции Make и WhatsApp

Как сделать обмен сообщениями между WhatsApp и Slack

Как сделать обмен сообщениями между WhatsApp и Discord

Как использовать Google Sheets для организации рассылок в Make

Как создать WhatsApp эхо-бота с помощью Green-API в Make