vk-chat-bot
💬 Чат бот для соц-сети ВКОНТАКТЕ отвечающий на сообщения пользователей. Теперь поддерживает мультиаккаунтность. Подключи себя и своих друзей, друзей друзей.
❗ Необходима ОС Windows 10+ или Linux. Рекомендуется ОЗУ от 2 ГБ и процессор от 2 ядер.
Инструкция к применению пользователем состоит из 6 шагов:
Шаг 1. Скачиваем с официального сайта Node.js по ссылке https://nodejs.org/en/
Шаг 2. Затем скачиваем сей проект архивом и распаковываем на пк (Зеленая кнопка code<> > Download ZIP).
При наличии git можно просто вбить команды в консольке:
git clone https://github.com/ckieverentineas/vk-chat-bot.git
cd vk-chat-bot-master
Шаг 3. Скачиваем готовую БОЛЬШУЮ базу данных по ссылке https://disk.yandex.ru/d/0oFPdSyZVLkD-g теперь запакованную в zip, тем самым обьем при скачивании сокращен минимум в два раза и закидываем в папку prisma под названием dev.db - относительный путь будет таким vk-chat-bot-master/prisma/dev.db
Шаг 4. Создаем файл .env в корне проекта - относительный путь будет таким vk-chat-bot-master/.env
🆘 Примерная конфигурация проекта файла .env:
DATABASE_URL = "file:./dev.db?socket_timeout=600&connection_limit=1"
root = ИДВК #root user
VK_ENTITIES = '[
{
"token": "ТОКЕН ОТ СТРАНИЦЫ VK ADMIN К ПРИМЕРУ",
"idvk": ИДВК,
"type": "page"
},
{
"token": "ТОКЕН ОТ ГРУППЫ",
"idvk": ИДВК,
"type": "group"
}
]'
💡 Поясняем:
DATABASE_URL - путь к нашей базе данных с заданными настройками подключения. Оставляем, как в примере.
root - idvk вашей главной страницы не для ботов, а лишь управления ими.
VK_ENTITIES массив записей аккаунтов где указывается данные по примеру, т.е.
- type, строка, вписываете page, если бот страничный, group, если бот для группы;
- token, строка, токен который обеспечивает доступ к вашей странице/группе;
- idvk, число, idvk идентификатор от группы или страницы.
Токен для страницы вы можете получить здесь, выбрав приложение в качестве VK Admin: https://vkhost.github.io/
Шаг 5. Просто запустите вначале скрипт init.bat для windows или init.sh для linux, затем по окончанию первого - db.bat для windows или db.sh для linux. Команды для консоли cmd или другом терминале вручную - открыть корень проекта и применить следующие команды:
npm i
npx prisma migrate dev --name init
npx prisma generate
Шаг 6. Бот полностью готов к эксплуатации, просто запустите скрипт start.bat для windows или start.sh для linux каждый раз, когда надо запустить бота. Команды для консоли cmd или другом терминале вручную - открыть корень проекта и применить следующие команды:
npm run dev
если сообщения об успешном запуске не появилось, тогда попробуйте еще одну команду:
npm start
💡 Если не заработало, пишите мне, да и вообще с любыми стактрейсами пишите: https://vk.com/dj.federation
💬 Команды бота уже сделанные:
- !база - считывает тхт формата: \nВопрос\nОтвет\nОтвет\n\nВопрос\nОтвет\n\nВопрос\nОтвет\nОтвет\nОтвет\nОтвет\n\n…..
- !конфиг - показывает текущую конфигурацию бота и версию бота
- !игнор idvk - где idvk, пишем уникальный идентификатор пользователя вк, для включения или отключения режима его игнорирования
- !инфа - выдает информацию о вас и вашем статусе для релевантности бота, конечно вам покажут не все=)
- !юзердроп - удаляет всех пользователей
- !помощь - напоминалка по командам
- !аптайм - показывает время работы бота со времени старта.
- !обучение - достает неизвестные вопросы, обнаруженные ботом и предлагает их скорректировать и дать ответы на них.
-
!дамп - сохраняет txt в корне проекта под названием “questions_and_answers.txt” согласно новому формату для txt документов формату.
💬 Возможности бота:
- GLOBAL Поддержка мультиакаунтности, можно подключить как группу, так и страничку VK;
- GLOBAL Авто-добавление в игнор спамеров, игнорирующих предупреждения о том, что они слишком быстро пишут;
- GLOBAL Игнорирование тех, кто повторяет за ботом или повторяется сам;
- GLOBAL Игнорирование тех, кто упоминает не бота;
- CHAT Игнорирование сообщений в беседах, где находятся больше одного подключенного к приложению бота;
- CHAT Игнорирование сообщений в беседах, ответы на которые адресованы не боту;
- CHAT Думает, когда отвечать на сообщения в беседах, т.е. если в сообщении 1 слово и выше, то шанс на ответ 5%, при двух и более - 10%, 3-х и выше, 35%, от 4-х слов - 50%;
- RESEACH Четкий поиск ответа посредством DirectBoost, т.е. нахождения прямого вхождения 1 к 1 для выдачи ответа;
- RESEACH Нечеткий поиск ответа посредством MultiBoost, самый крутой поисковик по цене/качеству скорости работы, выдает самый ближайщий ответ похожий от 30% и выше, парсит сообщение на предложения и подбирает;
- GROUP Группы помимо всего прочего реагируют на комментарии под своими постами на своей стене;
- GLOBAL Новый формат данных для вопросов и ответов, новый парсер к нему, дампер и адаптация поисковиков;
- EDUCATION Реализована возможность обучать бота, неизведанные вопросы будут добавляться в список неизвестных, а с помощью команды !обучение есть возможность дать ответы на них, и исправить ошибки в вопросах;
-
NEW CORRECTION в FP IHA BOT VK Раньше были системные переменные по типу %username% и другие, теперь они задейстованы и подменяются на данные юзеров.
💬 Подробнее о команде !база:
- Для команды !база по пути vk-chat-bot-master/book/ кладем в директорию (папку) book корня проекта - txt файлы согласно формату, описанному ниже для этой команды. Пишите боту !база - бот начнет считывать любое количество файлов в данной папке и сохранять ответы в базу данных SQLite
💡 Скорость сохранения 6-7 строк в секунду на hdd (если они являются еще неизвестными), когда для ssd примерно 70 в секунду.
⚙ Формат txt для базы данных ТЕПЕРЬ такого плана:
<~Вопрос
~>Ответ
~>Ответ
<~Вопрос
~>Ответ
~>Ответ
~>Ответ
~>Ответ
<~Вопрос
~>Ответ
~>Ответ
~>Ответ
<~Вопрос
~>Ответ
💡 Подсказки по команде !база:
- “<~” - означает вопрос, фича чисто визуальная;
- “~>” - означает один из вариантов ответа на вопрос, также является визуальной фичей и при записи в базу изымается;
- Пустая строка означает переход к следующему вопросу.
-
В диркетории book лежат образцы файлов для команды !база Да и в целом айха бд уже сконвертирован в новый формат, что удалось достать.
💬 Теперь в базе данных есть подмена переменных, в строках ответов на вопросы подменяются следующие переменные:
- %userphoto% в строке с выбранным ответом все такие вхождения заменяет на ссылку страницы написавшего в качестве заглушки
https://vk.com/id${user.id}
- %username% в строке с выбранным ответом все такие вхождения заменяет на ИМЯ написавшего пользователя
- %usersurname% в строке с выбранным ответом все такие вхождения заменяет на ФАМИЛИЮ написавшего пользователя
-
%userstatus% в строке с выбранным ответом все такие вхождения заменяет на ‘сидит в ВК и листает ленту’, ‘ищет интересные группы’, ‘читает свежие новости’, ‘слушает любимую музыку’ , ‘смотрит интересное видео’, ‘общается с друзьями’, ‘играет в интересную игру’, ‘ест вкусную пиццу’, ‘пьет чай с печеньками’, ‘мемит и троллит друзей’, ‘просто скучает’, ‘ждет выходных’, ‘мечтает о лете и отпуске’, ‘хочет спать’, ‘думает о смысле жизни’ или ‘слушает “Радио Тапок”’.
💡 Для примера сохранен ответ в базе данных “Привет, %username% %usersurname%, как поживаешь?” на вопрос “Привет, я скучала”, ответом будет к примеру: Привет, София Лианская, как поживаешь?
⚙ Если вы хотите обучить бота сами и с нуля, то удалите dev.db в папке prisma и выполните скрипт db.bat для windows или db.sh для linux
Обратная прямая связь, вопросы и предложения по адресу: https://vk.com/dj.federation