Skip to content

karnaksp/self-tg-approve

Repository files navigation

Ck Secretary Bot: Умная секретарша в Telegram

alt text

Ck Secretary Bot — это Telegram-бот aka секретарша, оснащённая искусственным интеллектом на базе Ollama, которая помогает управлять доступом к вашему личному каналу. Бот анализирует запросы от пользователей и решает, предоставить им доступ, основываясь на том, содержит ли их сообщение смешной мем или нет. Кроме того, бот может вести интересные беседы на любые темы, делая общение с посетителями канала более живым и увлекательным. Бот так же оснащен графовой базой данных для хранения данных общения с пользователем внутри сессии и хранения информации для RAG системы. Можно общаться с ботом как в режиме RAG, так и без него, тогда данные в базе данных не сохраняются даже внутри сессии.

Функциональность

Управление Доступом

Бот анализирует сообщения пользователей и определяет, стоит ли предоставлять им доступ к вашему личному каналу. Если сообщение содержит смешной мем в виде картинки, бот отправляет его владельцу канала с запросом - одобрить вступление или отклонить, если да - пользователь получает доступ. В противном случае, бот может предложить отправить более забавное сообщение или послать собеседника подождать в коридоре.

Интерактивное Общение

Бот способен вести полноценные диалоги с пользователями, обсуждая любые темы. Это позволяет создать более дружественную и интересную атмосферу в вашем канале.

Поддержка Базы Данных

Проект использует базу данных Neo4j для хранения информации о пользователях, их запросах и статусах доступа. Это обеспечивает эффективное управление данными и упрощает масштабирование.

Технологии и Инструменты

Язык Программирования и Библиотеки

  • Python: Основной язык программирования проекта.
  • LangChain: Пакеты для работы с RAG.
  • Neo4j: База данных для хранения данных.
  • Pillow: Для работы с изображениями.
  • Requests: Для выполнения HTTP-запросов.
  • Python-Telegram-Bot: Библиотека для создания Telegram-ботов.
  • Docker: для каждого сервиса свой докер, почи все работают в одной сети.
  • Makefile: как всегда, тестирование кода, запуск бота.

Структура Проекта

├─ .dockerignore
├─ .git
├─ .gitignore
├─ api.Dockerfile
├─ api.py
├─ chains.py
├─ docker-compose.yml
├─ entrypoint.sh
├─ errors.md
├─ images
│  └─ datamodel.png
├─ install-docker.sh
├─ install_ollama.sh
├─ loader.Dockerfile
├─ loader.py
├─ pull_model.Dockerfile
├─ requirements.txt
├─ utils.py
├─ telegram_bot
│  ├─ Makefile
│  ├─ commands.py
│  ├─ handlers.py
│  ├─ logger_config.py
│  ├─ main.py
│  ├─ message_config.py
│  ├─ requirements.txt
│  ├─ telegram_bot.Dockerfile
│  └─ utils.py
└─ wait-for-it.sh

Инструменты Разработки

  • Makefile: Для сборки и запуска проекта.
  • Dockerfile: Для контейнеризации приложения.
  • pytest: Для тестирования кода.
  • Pylint: Для проверки стиля кода.
  • Isort: Для автоматической сортировки импортов.

Установка зависимостей

Linux (сервер)

sudo bash install-docker.sh
# Перелогиньтесь или: newgrp docker

Windows

winget install Docker.DockerDesktop
winget install Git.Git

Или скачайте Docker Desktop и Git вручную. После установки перезапустите терминал.

Как Запустить

  1. Клонируйте репозиторий.
  2. Скопируйте .env.example в .env и заполните переменные (токены, пароли, id).
  3. Запустите:
    docker compose up --build

Если мало места на диске — собирайте по одному образу:

docker compose build pull-model
docker compose build api
docker compose build telegram_bot
docker compose up -d

Всё. Виртуальное окружение не нужно — зависимости собираются в Docker.

Развёртывание (git clone на сервере)

# На сервере
git clone <repo-url> .
cp .env.example .env
# отредактируйте .env
docker compose up -d --build

Тестирование

Проект оснащён системой тестирования, которая проверяет корректность форматирование. Вы можете запустить тесты с помощью команды:

make check_lint

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors