Skip to content

OldCodersClub/LariskaBot

Repository files navigation

LariskaBot - telegram-bot (Python, aiogram)

stars forks watchers wakatime

License: MIT GitHub Actions Branch master Last Commit

jetbrains pycharm

Телеграмм-бот для чата @OldCodersClub

Lariska

Бот использует приоритеты при поиске и генерации ответов для пользователей:

  • фильтры (handler) aiogram (самый приоритетный)
  • готовые ответы для конкретных пользователей (приветствие при первом сообщении пользователя, один раз за сутки)
  • собственная база готовых ответов с использованием FuzzyWuzzy (расстояние Левенштейна) для нечёткого сопоставления вопросов и ответов (настроен на 80% совпадение)
  • OpenAI API (срабатывает только если обратиться к боту по имени)

Любой ниже расположенный фильтр срабатывает, только если были пропущены все расположенные выше.

Запуск в Докере

Создать и запустить контейнер:

$ export BOT_TOKEN=<BOT_TOKEN>
$ export AI_KEY=<AI_KEY>
$ export VCHAT_ID=<VCHAT_ID>
$ export DCHAT_ID=<DCHAT_ID>
$ export SCHAT_ID=<SCHAT_ID>
$ docker-compose up -d

Остановить запущенный контейнер:

$ docker-compose stop

Запустить остановленный контейнер:

$ docker-compose start

Остановить и удалить контейнер и сеть:

$ docker-compose down

Удалить докер-образ:

$ docker rmi lariska_bot

Очистить логи:

$ sudo rm -rf logs/*

Deploy on Railway

Переменные

  • BOT_TOKEN - токен Telegram-бота
  • CHAT_ID - ID чата, в котором разрешено работать боту.
  • AI_KEY - OpenAI API токен
  • DOMAIN - URL-адрес с названием приложения. После развертывания перейдите в настройки проекта (Settings) и скопируйте домен из раздела Domains. Это должно быть похоже на worker-production-XXXX.up.railway.app. Это и будет значение для переменной DOMAIN.