Действие — Сгенерировать сообщение через OpenAI
Действие предназначено для генерации сообщений через OpenAI
ВАЖНО! Для работы данного действия нужно получить настроить интеграцию с OPENAI. То есть, взять ключ OPENAI
и добавить его в соответствующее поле поле в разделе «Интеграции» сообщества для которого будет выполняться это действие.
Рассмотрим действие подробнее:

Важно! Если у вас история хранится на сервере (хостинге) и в действие указана история, например, testmessage.json то после запроса к gpt действие автоматически запишет данные на сервер
1) Переключатель позволяет выбрать сообщество из которого будет выполнено действие.
2) модель OpenAI для запросов : поддерживаются переменные например, %model_id%
По умолчанию: gpt-3.5-turbo. Доступные значения (выбираете одно, про них пояснял в интеграциях):
gpt-4o, gpt-4o-mini, gpt-4o-nano, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, gpt-4-turbo, gpt-3.5-turbo
Если вы укажете несколько значений через запятую, то Автопилот возьмет только первое.
3) текст пользователя: поддерживаются переменные например, %prompt%
По умолчанию: сообщение пользователя: %content%
4) поле для передачи историй (контекста): поддерживаются переменные.
По умолчанию: ничего
5) Откуда брать историю. Из JSON или с сервера (при настроенном хостинге)
6) Доппараметры
Важно! Теперь действие обрабатывает JSON с сообщениями и если количество сообщений в контексте больше 50, то оно стирает самую старую пару user-assistant.
Это сделано для того, чтобы экономить ваши токены
Полезные переменные действия:
- %openai_answer_id% — ID ответа от бота
- %openai_answer% — ответ от бота OPENAI
- %openai_answer_created% —время ответа в Unix. Можно проверять в условиях, если не 0, то бот отдал данные
- %openai_answer_history% — переменная в которой возвращается ответ от бота + запрос пользователя (можно использовать для истории)
- %usage_prompt_tokens% — количество токенов, использованных в входном запросе (то есть сколько "веса" имели переданные сообщения от пользователя в messages
- %usage_completion_tokens% — количество токенов в ответе от модели (сколько "веса" занял ответ).
- %usage_total_tokens% — суммарное количество токенов, prompt_tokens + completion_tokens.
- %openai_content% — сообщение пользователя
- %openai_models% — модель OpenAI
- %openai_chat_history% — история чата в действии
- %openai_chat_history_all% —переменная в которой возвращается ответ от бота + запрос пользователя + история сохраненная история
Команда «Получить ответ от бота»
Важно! Пример универсальной команды с реакцией и на комментарии и в личные сообщения.
События:
1) Написал сообщение с текстом, подходящим под регулярное выражение ^Создай запрос:

ВАЖНО! Для переключения переключатель с содержащим на подходящим под регулярку и вводим нужный текст. Если какие -то условия, например «Сотрудник Аккаунта» у вас были в других командах, то выбирайте их из каталога, нажатием на «Найти в каталоге»
По желанию добавляем условия:
1) «Сотрудник аккаунта, чтобы команду мог запустить только Администратор сообщества, либо тот, у кого есть разрешение.» Тогда команду сможет добавлять только Администратор.

2) Переменная %is_conv%
равна 0
— чтобы команда срабатывала, если подписчик написал в сообщения сообщества.

Опционально через «Добавить секцию» (для комментариев)
События:
1) Событие «Написал комментарий» под постом с ID вставить пост и текстом, подходящим под регулярное выражение ^Создай запрос:

По желанию добавляем условия:
1) «Выполнена команда» № 0 ровно 0 раз, чтобы команду могли запустить только один раз

Опционально через «Добавить секцию» (для ответа от администратора)
События:
Важно! Событие: «Получил сообщение» от админа не работает по умолчанию. Как настроить посмотрите в инструкции.
1) Событие «Получил сообщение от администратора» с текстом, подходящим под регулярное выражение ^Создай запрос:

Действия:
1) Добавляем временную переменную %prompt%
со значением:
{reg}%content%~~Создай запрос:~~0~~{/reg}
которая найдет из регулярного выражения введенный совет. Рассмотрим ее подробнее:
%content%
— означает, что поиск будет идти по тексту введенному пользователем.Создай запрос
— означает, что поиск будет проходить по шаблону, фраза начинается со словСоздай запрос
после чего из фразы мы удалим данную фразу оставив только запрос. Подробности в инструкции.

2) Для отправки запроса используем действие «Сгенерировать сообщение для OpenAI» с нужными параметрами:

рассмотрим подробнее:
- модель - указывается одно значение на выбор. gpt-4o, gpt-4o-mini,gpt-4-turbo, gpt-3.5-turbo . По умолчанию: gpt-3.5-turbo
- текст со значением
%prompt%
- здесь указывается сообщение от пользователя
- истории у нас не передается поэтому там пусто. Поддерживаются переменные Автопилота
- откуда брать историю. Из JSON или с сервера (при настроенном хостинге)
Дополнительные параметры по типу max_tokens
передавайте по желанию:
max_tokens
— максимальное количество токенов для запроса/ответа бота. 1000 токенов примерно 1500 кириллическим символам.
3) Во временной переменной %error%
формируем текст при ошибке от бота. Например, через функцию {rand}
{rand}Я устал|Нет настроения отвечать{/rand}

4) Для того, чтобы сохранить текст ответа от бота во временной переменной %text%
пишем:
%openai_answer%

5) Во временной переменной %ok%
формируем текст при ответе от бота. Например, просто передаем текст.
%text%

6) Условная переменная %text%
cо значением:
%ok%
если%text%
подходит под регулярку точка- ИЛИ:
%error%
То есть, есть адекватный ответ от бота мы выдаем его, а нет, выдаем ошибку.

7) Отправляем сообщение с текстом:
%text%

8) Опционально: действием: «Отправить сообщение» отправляем сообщение сотруднику с текстом:
Промт:%prompt%
Ответ бота:%text%

9) Действие: «Прервать/продолжить выполнение команды» с переключателем продолжено, если Событие 1914801
есть среди текущих (то есть запускается в комментариях)

10) Опционально пишем комментарий действием «Написать комментарий в VK» с текстом:
%text%
Важно! Для ответного комментария не забудьте нажать Еще→ сюда вставить переменную %object_id% или кликнуть по сноске справа рядом «Ответить» на комментарий с ID:

Сохранение историй на хостинге
Эта штука позволяет хранить истории для запросов не в полях игрока например, а на своем хостинге и обращаться к нему через соответстветствующие действия.
Зачем это надо?
Все просто, в поле игрока я тестил влезет не более 50 сообщений и все, а на хостинге вы можете записывать столько сообщений в историю сколько вам угодно.
Да, в полях, как и в хостинге можно удалять старые сообщения, но для вашего удобства я сделал вам удобное решение.
Требования для работы скрипта:
- Хостинг или VPS (бесплатный не подойдет, там есть ограничения)
- желательно попроще (потому что для текущей версии требуется Apache). Ну или можете сами подправить под PHP-FPM
- Возможность загружать исполняемые PHP скрипты в отдельную папку.
- Навык смотреть видео и понимать технические инструкции :)
- Желательно иметь хотя бы базовое понимание понятия запроса на сервер.
Важно! Если у вас MacOS, то файл он не отображает (об этом говорится в первом видео). В таком случае нужно создать этот файл на хостинге и сохранить со следующим текстом:
.htaccess
<FilesMatch &qu
ot;\.json$
&
quot;> Order Allow,Deny Deny from all</FilesMatch>
Открываем conig.ini
и меняем необходимые параметры, пароль и ID сообщества в котором будет работать действие
password=123
allowed_clubs=123456,7890
Алгоритм установки:
- Скачиваем по этой ссылке скрипт: https://disk.yandex.kz/d/kBrLcBW1LER6kw
- Создаем поддомен на сайте, или просто готовим отдельную папку.
- Открываем файловый менеджер хостинга и там: загружаем скрипт, и распаковываем при помощи архиватора в подготовленную директорию.
- Там же обычно можно подредактировать конфигурацию.
- Но можно и на компе распаковать, поправить и по одному файлу загрузить.
Полезные ссылки:
- Приобрести домен по дешевке: skyjoom.com/rdn
- Еще один вариант для доменов: namecheap.com
- Удобный и недорогой хостинг: fornex
После настройки можно сохранять истории на сервере.
На этом все. Тестируем.

Все отлично! Сегодня мы научились интегрировать ChatGPT с автопилотом. Творческих успехов.
Оценить / обсудить статью можно в комментариях к этому посту.
Вернуться на главную страницу инструкций