chat-gpt-vk-bot
chat-gpt-vk-bot представляет собой ВКонтакте бота с встроенным chat-gpt
Начало работы
Клонируйте репозиторий:
git clone https://gitflic.ru/project/hazkorj/chat-gpt-vk-bot chat-gpt-vk-bot
Создайте в корне проекта файл .env:
BOT_TOKEN=<Токен бота>
OPENAI_TOKEN=<Openai токен>
CONFIRMATION=<Строка подтверждения>
SECRET=<Секретная строка>
PORT=<Порт сервера>
BOT_TOKEN
Обязательный параметр - токен вашего ВКонтакте бота, взятый из настроек сообщества
OPENAI_TOKEN
Обязательный параметр - ваш openai токен для chat-gpt, взятый с официального сайта openai
CONFIRMATION
Необязательный параметр - строка для подтверждения адреса вашего сервера, взятая из настроек сообщества ВКонтакте. Требуется только при использовании на сервере
SECRET
Необязательный параметр - секретная строка, взятая из собщества ВКонтакте. Используется по желанию при использовании на сервере
PORT
Необязательный параметр - порт сервера
Если вы используете хостинг, он должен предоставить вам возможность задать данные переменные окружения другим способом.
Установите зависимости:
npm install
Запустите бота:
npm start
Для Docker:
docker build -t bot .
docker run -p $PORT:$PORT bot
Настройка бота и список команд
В файле config.json, который лежит в корне проекта, находятся настройки бота и список команд с их описанием.
{
"prefix": "/",
"commandsData": {
"start": {
"name": "Начать",
"description": "Начать работу с ботом",
"nonPrefix": "true"
},
"help": {
"name": "help",
"description": "Список команд"
},
"test": {
"name": "test",
"description": "Проверить работает ли бот"
},
"chatGpt": {
"name": "gpt",
"shortName": "g",
"description": "Chat GPT версии 3.5 turbo"
}
}
}
Здесь prefix
- это префикс для использования команд. В теории вы можете изменять его на свой вкус, но на практике в групповых чатах бот реагирует только на /
команды. Полагаю, что это было сделано разработчиками ВКонтакте умышленно.
В блоке commandData
находится список команд с их названиями и описанием.
Важно! Вы можете изменять все поля внутри самих команд, но изменение ключа команды внутри
commandData
может привести к ошибке.
У команд есть 5 полей:
name
(обязательное поле) - название для использования команды
nonPrefix
- (необязательное поле) - если стоит значение true
, значит команду можно использовать только без префикса
shortName
(необязательное поле) - короткое название команды
nonPrefixName
(необязательное поле) - безпрефиксное название команды
description
(необязательное поле) - описание комнады