Loading repository data…
Loading repository data…
akiamuradev / repository
AI-assisted multi-platform tutor bot for Telegram and VK Mini App: async Python backend, aiohttp API, PostgreSQL, task-based RAG, user memory, React/Vite frontend and Docker.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
TutorEngine объединяет LLM, память ученика, RAG по базе заданий, прогресс и достижения.EVO:LUTION Tutor Bot помогает школьникам разбирать учебные вопросы, тренироваться на заданиях и отслеживать прогресс. Пользователь может общаться с репетитором в Telegram или VK Mini App, а оба интерфейса работают через единый TutorEngine.
Это не только оболочка над LLM. В проекте реализованы асинхронный Python backend, PostgreSQL, поиск по базе учебных заданий, память диалога, маршрутизация моделей, защита от спама и перегрузки, HTTP API и отдельный React-интерфейс.
aiogram и VK Mini App на React/Vite.flowchart LR
TG["Telegram Bot<br/>aiogram"] --> ENGINE["TutorEngine<br/>учебное ядро"]
VK["VK Mini App<br/>React + VK Bridge"] --> API["HTTP API<br/>aiohttp"]
API --> ENGINE
ENGINE --> MEMORY["Память<br/>история + профиль"]
ENGINE --> RAG["RAG<br/>поиск + reranking"]
ENGINE --> GATEWAY["AI Gateway<br/>лимиты + model routing"]
MEMORY --> DB[("PostgreSQL<br/>пользователи и прогресс")]
RAG --> DB
GATEWAY --> LLM["OpenRouter / LiteLLM"]
Основные компоненты:
| Компонент | Путь | Назначение |
|---|---|---|
| Telegram entrypoint | backend/src/bot.py | Запуск polling и подключение роутеров |
| HTTP API | backend/src/web_api.py |
| Backend для VK Mini App |
| TutorEngine | backend/src/modules/tutor_engine.py | Общая логика AI-репетитора |
| AI Gateway | backend/src/modules/ai_gateway.py | Очередь, ограничения и статистика запросов |
| AI client | backend/src/modules/ai_client.py | Работа с OpenRouter/LiteLLM и fallback-моделями |
| RAG | backend/src/rag/ | Анализ запроса и поиск учебных заданий |
| Memory | backend/src/modules/memory.py | История диалога и профиль ученика |
| Database | backend/src/database.py | Асинхронный доступ к PostgreSQL |
| VK Mini App | frontend/vk-mini-app/ | Интерфейс на React/Vite |
Подробности есть в описании архитектуры и структуре проекта.
| Область | Стек |
|---|---|
| Backend | Python 3.11, aiogram, aiohttp, asyncpg, httpx |
| AI | OpenRouter-compatible API, LiteLLM-compatible proxy |
| Data | PostgreSQL 16, SQL, task-based RAG |
| Frontend | React 18, Vite, VK Bridge |
| Math | SymPy, NumPy, Matplotlib |
| Infrastructure | Docker Compose, Nginx, GitHub Actions |
Понадобятся Git, Docker с Docker Compose, Telegram bot token и ключ OpenRouter либо доступ к LiteLLM-compatible proxy.
git clone https://github.com/akiamuradev/evolution-tutor-bot.git
cd evolution-tutor-bot
cp .env.example .env
Для PowerShell:
Copy-Item .env.example .env
Заполните в .env как минимум:
TG_BOT_TOKEN=your-telegram-bot-token
BOT_USERNAME=@your_bot_username
OPENROUTER_API_KEY=your-openrouter-api-key
POSTGRES_USER=tutor_user
POSTGRES_PASSWORD=choose-a-password
POSTGRES_DB=tutor_db
DATABASE_URL=postgresql://tutor_user:choose-a-password@postgres:5432/tutor_db
WEB_API_PORT=8080
Для прямой работы с OpenRouter удалите или закомментируйте LITELLM_BASE_URL и LITELLM_API_KEY. Если они заданы, приложение считает LiteLLM основным провайдером. Сам LiteLLM в docker-compose.yml не запускается.
docker compose up -d --build
docker compose ps
Будут запущены три сервиса:
tutor-bot — Telegram polling;tutor-api — HTTP API на порту 8080;postgres — PostgreSQL с постоянным volume postgres_data.Проверка API:
curl http://localhost:8080/health
Логи:
docker compose logs -f --tail=100 tutor-bot tutor-api
Остановка:
docker compose down
cd frontend/vk-mini-app
npm ci
npm run dev
Vite откроет приложение на http://localhost:5173. В режиме разработки запросы /api проксируются на http://localhost:8080.
Для внешнего API создайте frontend/vk-mini-app/.env:
VITE_API_BASE_URL=https://api.example.com
| Метод | Endpoint | Назначение |
|---|---|---|
GET | /health | Состояние API, базы, RAG и очереди AI |
POST | /api/chat | Ответ AI-репетитора |
GET | /api/profile | Профиль и сводка ученика |
GET | /api/achievements | Достижения и прогресс |
GET | /api/activity | Статистика активности |
GET | /api/practice/task | Случайное практическое задание |
POST | /api/practice/answer | Проверка и сохранение ответа |
VK-запросы могут авторизовываться через подписанные launch params. Для локальной разработки поведение настраивается переменными WEB_API_ALLOW_UNSIGNED_VK_LAUNCH и WEB_API_ALLOW_INSECURE_USER_ID.
Docker создаёт структуру базы, но публичный репозиторий не содержит production dump с готовым банком заданий. Практика и RAG требуют заполненных таблиц subjects и fipi_tasks.
Инструменты загрузки и обслуживания данных находятся в:
backend/src/parsers/;backend/src/download_fipi_tasks.py;backend/src/load_full_fipi_base.py;tools/fipi/ и tools/db/.Перед production-использованием загрузчики следует проверить на соответствие актуальной схеме и правилам источников данных.
.
├── backend/
│ ├── database/ # начальная SQL-схема
│ └── src/
│ ├── api/ # HTTP handlers
│ ├── modules/ # AI, память, лимиты, TutorEngine
│ ├── rag/ # поиск по учебным заданиям
│ ├── routers/ # Telegram-сценарии
│ └── parsers/ # загрузка учебных данных
├── frontend/
│ └── vk-mini-app/ # React/Vite приложение
├── docs/ # архитектура и конфигурация Nginx
├── tools/ # служебные скрипты
├── docker-compose.yml
└── .github/workflows/ci.yml
Backend compile check:
python -m compileall -q backend/src
Frontend build:
cd frontend/vk-mini-app
npm ci
npm run build
Эти проверки выполняются в GitHub Actions при push в main и в pull request. Отдельного набора unit/integration-тестов в текущей версии репозитория нет.
Проект распространяется по лицензии MIT.
TutorEngine combines LLM calls, student memory, task-based RAG, progress tracking and achievements.EVO:LUTION Tutor Bot is a multi-platform educational assistant for students. Users can ask study questions, work through practice tasks and review their progress in Telegram or a VK Mini App. Both clients rely on the same backend tutoring core.
The repository goes beyond basic LLM integration. It includes an asynchronous Telegram layer, an aiohttp API, PostgreSQL persistence, dialog memory, task-based retrieval, model routing, anti-spam controls, AI concurrency limits and a separate React interface.
TutorEngine for Telegram and HTTP API clients.flowchart LR
TG["Telegram Bot<br/>aiogram"] --> ENGINE["TutorEngine<br/>shared tutoring core"]
VK["VK Mini App<br/>React + VK Bridge"] --> API["HTTP API<br/>aiohttp"]
API --> ENGINE
ENGINE --> MEMORY["Dialog memory<br/>history + profile"]
ENGINE --> RAG["Task-based RAG<br/>search + reranking"]
ENGINE --> GATEWAY["AI Gateway<br/>limits + model routing"]
MEMORY --> DB[("PostgreSQL<br/>users and progress")]
RAG --> DB
GATEWAY --> LLM["OpenRouter / LiteLLM"]
See architecture details and the project structure guide.
| Area | Technologies |
|---|---|
| Backend | Python 3.11, aiogram, aiohttp, asyncpg, httpx |
| AI | OpenRouter-compatible API, optional LiteLLM-compatible proxy |
| Data | PostgreSQL 16, SQL, task-based RAG |
| Frontend | React 18, Vite, VK Bridge |
| Math | SymPy, |