Создание бота на основе ChatGPT в Salebot
ChatGPT в Salebot
Что будем реализовывать
Доступная функциональность на ChatGPT:
- Чат с ботом
- Генератор изображений по нашему описанию
- Редактор нашей картинки по описанию
- Генератор похожих изображений
Пожалуй, интересно всё! Можно пообщаться с роботом и картинку сгенерировать, и, интересно, как ChatGPT отредактирует изображение по описанию.
Будем пробовать все-ё!😄
Этапы реализации (кратко)
- Создание проекта в salebot (https://salebot.pro/) (укажем промокод на 14 дней - botdev).
Регистрация на https://chat.openai.com.
Получаем ключи доступа к API на https://beta.openai.com/account/api-keys.
- Реализация чата с ботом.
Генератор изображений по описанию.
Редактор картинки по описанию.
Генератор похожих изображений.
Не буду останавливаться на регистрации и получении ключей API. Здесь все просто и понятно, и сразу перейду к реализации чата с ботом.
Чат с ботом
В API ChatGPT указаны все нужные нам параметры:
Основные параметры указаны на экране, также, здесь имеется возможность выбора модели и ЯП:
Я остановился на модели text-davinci-003, в рамках знакомства, мне этого будет достаточно. Вы же, можете использовать непосредственно модель ChatGPT (на текущий момент, это: gpt-3.5-turbo). В исходниках есть обе модели.
Портируем все параметры в Salebot (справка по API Salebot):
- Переходим в наш проект Salebot.
- Создаем новый блок Первостепенная проверка условия (светло-зеленый).
Это будет меню бота
- Создаем ещё один блок Первостепенная проверка условия.
Здесь разместим условие запуска: "Поболтать с ботом" и начальный текст для пользователя:
Теперь, когда пользователь нажмёт Поболтать с ботом, он пойдет в этот блок. От него дальше будем писать запрос к API.
Общая схема проекта должна получиться примерно такой:
Создаем два блока Состояние диалога, связываем их как на схеме выше.
В первом блоке делаю запрос к API:
URL запроса: https://api.openai.com/v1/completions
Сохраняемые значения: choices|0|text->text;
Заголовок запроса: {"Content-Type": "application/json", "Accept": "application/json", "Authorization": "Bearer YOUR_API_KEY_HERE"}
JSON параметры: {"model": "text-davinci-003", "prompt": "#{question}", "max_tokens": 2000, "temperature": 1}
Во втором блоке показываем результат: #{text}.
Переходим к тестированию:
Обмениваемся парой фраз с ботом, бот решает задачу. Значит, всё работает, иду дальше, к генерации изображения.
Генератор изображений по нашему описанию
Дублирую 3 связанных между собой блока из схемы выше.
В условии запуска ставлю условие: Придумай картинку.
Смотрю API для генерации изображения:
И подставляю параметры в скопированный блок:
URL запроса: https://api.openai.com/v1/completions
Сохраняемые значения: data|0|url->picture_url;
Заголовок запроса: {"Content-Type": "application/json", "Accept": "application/json", "Authorization": "Bearer YOUR_API_KEY_HERE"}
JSON параметры: {"prompt": "#{question}", "n": 1, "size": "512x512"}
Во втором блоке во вложении просто указываю URL картинки: picture_url.
Готово. Тестируем.
Осталось реализовать:
- Редактор нашей картинки по описанию
- Генератор похожих изображений
Сразу скажу, что в Salebot у меня не получилось реализовать данные фунции по многим причинам, которые здесь расписывать не стану, чтобы не нарушать формат статьи.
Но, чтобы сильно не расстраиваться, я сделал разговор с чат-ботом с помощью картинки.
Принцип такой: пользователь задает вопрос, от сервера приходит ответ, который уходит в генератор изображения. Дальше собираем ответы от сервера в одно сообщение и отправляем пользователю.
Получилось даже забавно:
Ссылка в канале: