MiniMax - китайская нейросеть, которая быстро набрала популярность: она недорогая в реализации и при этом отвечает точно и быстро. В этой статье пошагово соберём чат-бота с этой нейросетью в конструкторе Watbot. Подключать нейросеть будем через сервис Open Router - на нём собрано огромное количество нейросетей для чат-ботов: языковые модели, генерация фото, видео и даже музыки.
Мессенджер для демонстрации - Telegram, но логика сборки универсальна.
Подключение мессенджера
Прежде чем собирать бота, подключите мессенджер. В верхнем правом углу сценария нажмите на иконку скрепки - откроется меню со списком мессенджеров, которые можно подключить.
Чтобы подключить Telegram, зайдите в официальный бот Telegram BotFather и создайте там своего бота. При создании вам выдаётся токен - его нужно вставить в это же окно подключения.
Как устроен сценарий
Сценарий состоит из блоков и связей между ними. В начале работы у вас есть один стартовый блок. Чтобы добавить новый, наведите курсор на чёрную точку у блока, зажмите курсор и проведите голубую стрелку в любое пустое пространство - добавится сразу и связь, и блок.
Чтобы удалить связь, наведите курсор на синюю стрелку - она станет красной, нажмите на крестик, и связь удалится.
Чтобы удалить блок, наведите на него курсор, справа нажмите на три точки, нажмите "удалить" и подтвердите удаление.
Шаг 1. Приветственное сообщение
Добавляем блок "цепочка сообщений". В нём пишем первое приветственное сообщение, например:
"Привет, это нейросеть, отправь свой запрос"
Дальше пользователь будет писать в ответ свой вопрос, и этот ответ нужно сохранить. Для этого в разделе "дополнительно" включите "записать ответ в пользовательскую переменную" и задайте имя переменной, например "промт". Переменную можно назвать как угодно - русскими или английскими буквами, либо только цифрами.
Закрываем блок и от ветки "любая другая фраза" проводим связь в пустое место, чтобы создать новый блок.
Шаг 2. Получение API-ключа в Open Router
Прежде чем собирать HTTP-запрос, нужно получить API-ключ. Для этого на сайте Open Router нажмите на кнопку Get API, пройдите регистрацию, внесите оплату - и вы получите API-ключ.
После этого в верхнем правом углу сайта нажмите на кнопку Docs. Здесь собрана вся документация, на основе которой можно собрать чат-бота. Перейдите во вкладку API Reference (она расположена наверху слева) и в списке найдите вкладку "чат".
Справа в этом разделе показан пример запроса: какой метод, какая ссылка нужна, сколько заголовков и сам массив тела запроса. Эти данные нужно перенести в HTTP-блок конструктора.
Шаг 3. Настройка HTTP-запроса
Добавляем блок "HTTP-запрос" - это главный блок в сценарии, именно он отправляет запрос к Open Router.
Заполняем блок данными из документации:
- В строку URL вставляем ссылку из документации
- Метод - обязательно POST
- Заголовки - три штуки, переносим из документации. В заголовке Authorization после слова Bearer через пробел вставляем свой API-ключ
- Тело - JSON-массив. В нём в поле content в кавычках вставляем свою пользовательскую переменную в формате двойных фигурных скобок со знаком доллара: {{$промт}}. Если переменная называлась по-другому, здесь нужно указать её название
- Модель - пока ставим GPT4, чтобы проверить, что сервис вообще работает, а позже поменяем на MiniMax
- Тайм-аут - ставим на максимум
- Внизу включаем "выводить тело ответа в чат" - это нужно для проверки
Шаг 4. Проверка запроса и поиск пути к ответу
Переходим в Telegram, нажимаем "старт" и отправляем боту любой запрос. Нейросеть отвечает быстро. Копируем полученный ответ и вставляем его в JSON-форматтер.
Слева вставляем скопированный текст, справа переключаем режим отображения на "дерево". В дереве находим ответ от нейросети - он лежит в строке content. Если ответ на месте - значит, запрос настроен правильно и работает.
Копируем путь до этого значения: choices, 0, message, content. В HTTP-блоке конструктора этот путь нужно записать через точки: choices.0.message.content (угловые скобки из документации заменяются на точки).
Шаг 5. Сохранение ответа в переменную
Возвращаемся в HTTP-блок:
- Отключаем "выводить тело ответа в чат"
- Включаем "записать ответ json в переменную"
- Добавляем переменную, например "ответ"
- Вставляем найденный путь choices.0.message.content
Шаг 6. Вывод ответа пользователю
От блока HTTP-запроса создаём ещё один блок "цепочка сообщений", в котором нужно просто вывести сохранённую переменную. Добавляем текст и вставляем свою переменную - внизу есть окошко, куда можно вписать название переменной и нажать Enter: фигурные скобки и знак доллара подставятся автоматически.
Чтобы бот не приходилось перезапускать после каждого сообщения, от этого последнего блока проводим связь обратно к блоку HTTP-запроса - так сценарий зацикливается, и пользователь может писать новые запросы один за другим, а бот будет каждый раз отвечать.
На этом сборка бота на модели GPT4 закончена. Проверьте в Telegram: отправьте команду "старт" и новый запрос - бот должен ответить.
Шаг 7. Замена модели на MiniMax
Возвращаемся в Open Router и в верхнем правом углу нажимаем на Models. Здесь можно посмотреть все доступные модели - не только текстовые. В поиске вводим MiniMax и находим нужную модель M3.
По кнопке Quickstart открывается документация именно по этой модели. Запрос почти не отличается от предыдущего: заголовков нужно два вместо трёх, а массив тела запроса немного другой.
Возвращаемся в HTTP-блок конструктора:
- Удаляем один из трёх заголовков - для MiniMax нужно только два
- Копируем из документации новый массив тела запроса и заменяем им старый
- В теле запроса в строке content (в документации это шестая строка) вставляем свою пользовательскую переменную вместо примера, чтобы туда всегда подставлялся запрос пользователя
Чат-бот на MiniMax собран.
Проверка работы
Переходим в Telegram и отправляем команду "старт", затем пишем свой запрос. Ответы приходят быстро - иногда нейросети требуется немного времени подумать, но в целом она обрабатывает запросы оперативно.
Бот не нужно перезапускать между сообщениями: благодаря связи, зацикленной на блок HTTP-запроса, можно сразу писать следующий вопрос и получать на него ответ.
MiniMax отвечает развёрнуто и по существу, без лишней "воды", которая часто встречается у других языковых моделей.
Полезные ссылки
Сервис для подключения нейросети:
JSON-форматтер для поиска пути к ответу нейросети:
Видео-инструкция ТЕЛЕГРАМ ЧАТ-БОТ С НЕЙРОСЕТЬЮ MINIMAX:
Наше сообщество: