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

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

Платформа Make предоставляет широкие возможности для автоматизации различных процессов.
В этом руководстве мы рассмотрим процесс создания чат-бота с использованием генеративного искусственного интеллекта и интеграции 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 получает ошибку, как ниже на скрине, необходимо установить фильтр между модулями New Message Webhook и модулем OpenAI

Ошибка

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

Фильтр1

Фильтр2


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

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

  1. Среди интеграций находим "OpenAI"

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

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

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

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

    1. Чтобы получить Api Key необходимо зарегистрироваться или войти в аккаунт OpenAI
    2. Переходим на вкладку Api Keys и нажимаем на кнопку Create New Api Key

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

    3. Вводим название ключа и выбираем проект. В нашем случае это будет "Default Project". После ввода всех необходимых данных нажимаем на кнопку Create New 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", так как она предлагает высокое качество ответов при быстрой скорости генерации и низкой цене

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

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

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

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

    При использовании API от OpenAI можно столкнутся с тем, что при формировании запроса к ChatGPT у запроса имеется "Роль". В чем же их отличие? * Запрос с ролью "System" представляет собой запрос напрямую к языковой модели, задавая её контекст и поведение. Например, можно сделать тон модели более формальным или дать дополнительную информацию, на основе которой модель будет формировать ответ * Запрос с ролью "User" передает запрос пользователя, на который языковая модель отвечает

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

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

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

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

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

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

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

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

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

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


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

  1. Создаем новый модуль "Send Message" из интеграции от Green-API

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

  2. В качестве получателя выбираем отправителя из первого сообщения

    Изображение с выбором 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