Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/raiksler/lora-the-dog
Chat bot for VK
https://github.com/raiksler/lora-the-dog
docker postgresql python python3 vk vk-api vk-bot vkontakte
Last synced: about 1 month ago
JSON representation
Chat bot for VK
- Host: GitHub
- URL: https://github.com/raiksler/lora-the-dog
- Owner: Raiksler
- Created: 2022-09-15T15:29:58.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-02-12T15:38:25.000Z (almost 2 years ago)
- Last Synced: 2024-10-13T06:41:08.154Z (2 months ago)
- Topics: docker, postgresql, python, python3, vk, vk-api, vk-bot, vkontakte
- Language: Python
- Homepage: https://vk.com/lora_the_dog
- Size: 50.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.txt
Awesome Lists containing this project
README
"Lora the dog", чат бот для VK бесед, имитирующий поведение моего лабрадора =)
Бот разработан с использованием VK API, и предполагает наличие у вас соответствующего токена.Code by A. Goryachev
______________________________________________________________________________________________Текущие возможности:
1) Базовые ответы на запросы. Лора будет отвечать на приветствия и прощания. Для разговора с Лорой, в беседе к ней нужно обращаться через @. Лора понимает запросы в разной
формулировке, например о ее настроении можно узнать множеством способов: 'Как ты?, 'Как твое настроение?' и т.д. При разработке не ставилась цель по прохождению теста Тьюринга, поэтому количество таких команд ограничено разумными пределами, но все-же, их число достаточно обширно, чтобы в диалоге с Лорой не пришлось выбирать слова.
2) Настроение. В зависимости от настроения, реакция Лоры на те или иные команды меняется. Настроение Лоры меняется от некоторых действий. Узнать текущее настроение можно спросив у нее напрямую: "Как дела?", "Как настроение?" и т.д. Параметр настроения независим для разных чатов.
3) Возможность влиять на настроение Лоры при помощи игр или угощений. Подробнее о командах взаимодействия можно узнать, спросив у Лоры о ее настроении при низком уровне настроения.
4) Лора привязана к серверам open-meteo и может давать прогноз погоды на сегодня\завтра при соответствующих запросах, например: 'Погода на завтра', 'Погода сегодня'. При достаточно высоком уровне настроения, Лора будет автоматически давать ежедневный утренний прогноз погоды в 8:00 по МСК.Добавить бота в беседу можно по ссылке:
https://vk.com/lora_the_dogСамостоятельный хост бота:
Необходимо произвести следующие настройки паблика:
1) В настройках API, включить функцию Long Poll и разрешить следующие типы событий: Входящие сообщения, исходящие сообщения. Бот тестировался на версии API 5.131.
2) В настройках для бота, включить "возможности ботов" и разрешить добавлять сообщество в чаты.Развертывание бота силами docker:
Для начала, необходимо внести свой вк токен в переменную соответствующую переменную файла lora_the_dog/env.py. Образ бота может быть создан из корневой директории проекта, командой . Будут созданы образы двух связанных контейнеров. В первом контейнере расположен бэкэнд бота, все зависимости установятся самостоятельно. Во втором контейнере будет поднята бд postgresSQL со всеми необходимыми настройками и таблицами. Бот автоматически запустится при поднятии контейнеров командой . С этого момента, можно добавлять бота в беседы из своего паблика.Хост на обычной машине без контейнеризации:
При каждом запуске, бот будет запрашивать ваш токен. Для того, чтобы этого избежать, можно добавить его в соответствующую переменную окружения файла lora_the_dog/env.py, в этом случае, бот перестанет запрашивать токен при запуске и будет использовать заданный по умолчанию. Ключ можно сгенерировать в настройках паблика.
Для хранения и оперирования данными чатов, бот использует базу данных PostgreSQL. Для корректной работы бота необходимо создать на локальной машине базу данных и пользователя со следующими параметрами: (user='postgres', password='pgadminpass', host='localhost', database='lora_the_dog'). Все взаимодействие с бд находится в классе Db_manager модуля main.py, вы можете самостоятельно настроить параметры пользователя и бд в дандер ините этого класса. Бд lora_the_dog содержит всего одну таблицу. Для ее создания используйте следующий SQL запрос: CREATE TABLE chats (id bigint PRIMARY KEY, mood bigint);
После этого, можно запустить модуль main.py и добавить бота в любую беседу. (Естественно, не забыв установить зависимости через poetry).