Проект создан командой AEternum Team для хакатона TenderHack в Самаре (19.09 - 21.09.2025).
🎉 Команда AEternum Team заняла призовое место!
- Оксана - Менеджер проекта, TeamLead
- Валерий (coffeinium) - Fullstack, ML-Engineer, капитан команды
- Олег (Oleg4311) - Frontend разработчик, Оратор
- Владимир - ML-Engineer
Оптимальная и финальная модель: cic_model_v2_production.pkl
Для работы необходимо указать в .env файле:
AEAPISETTINGS_ML_MODEL_PATH=src/core/ml/assets/cic_model_v2_production.pklhttp://localhost:5173/- Панель с поисковой строкойhttp://localhost:8000/ml/admin- Админ панель для ознакомления с ML
- API Documentation - Полная документация REST API с примерами запросов и ответов
- ML API Documentation - Утилиты для обучения и тестирования ML модели
AEProject/
├── backend/ # Backend API (FastAPI)
│ ├── main.py # Главный файл приложения
│ ├── API.md # Полная документация API
│ ├── requirements.txt # Python зависимости
│ ├── Dockerfile.dev # Dockerfile для разработки
│ ├── init.sql # SQL скрипт инициализации БД
│ └── src/ # Исходный код
├── frontend/ # Frontend (React + Vite)
│ ├── Dockerfile.dev # Dockerfile для разработки
│ ├── package.json # Node.js зависимости
│ └── src/ # Исходный код
├── compose.dev.yaml # Docker Compose для разработки
├── compose.dev.for-ports-error.yaml # Альтернативная конфигурация (другие порты)
├── .env # Переменные окружения
└── README.md # Основная документация
- Docker и Docker Compose
- Git
-
Клонируйте репозиторий и перейдите в директорию:
cd AEProject -
Запустите все сервисы:
docker-compose -f compose.dev.yaml up --build
-
Доступ к приложению:
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000
- PostgreSQL: localhost:5432
Если стандартные порты заняты, используйте альтернативную конфигурацию:
-
Запустите с альтернативными портами:
docker-compose -f compose.dev.for-ports-error.yaml up --build
-
Доступ к приложению:
- Frontend: http://localhost:5173
- Backend API: http://localhost:8000
- PostgreSQL: localhost:5433 (изменен порт)
GET /user/search- Поиск и анализ запросов с MLGET /user/history- История запросовPOST /user/complete_data- Дополнение частичных данныхGET /api/ml/predict- Прямая классификация намеренийGET /api/ml/health- Проверка состояния ML модели
- Контейнер:
ae-project-postgres - Порт: 5432
- База данных:
aeproject_dev - Пользователь:
postgres - Пароль:
postgres - Подсеть:
172.20.0.0/16
- Контейнер:
ae-project-backend - Порт: 8000
- Автоперезагрузка: Включена (файлы монтируются)
- Логи: Сохраняются в volume
backend_logs
- Контейнер:
ae-project-frontend - Порт: 5173
- Hot Reload: Включен (файлы монтируются)
- API URL: http://localhost:8000
# Запуск всех сервисов
docker-compose -f compose.dev.yaml up
# Запуск в фоновом режиме
docker-compose -f compose.dev.yaml up -d
# Остановка всех сервисов
docker-compose -f compose.dev.yaml down
# Пересборка и запуск
docker-compose -f compose.dev.yaml up --build
# Просмотр логов
docker-compose -f compose.dev.yaml logs -f
# Просмотр логов конкретного сервиса
docker-compose -f compose.dev.yaml logs -f backend
# Выполнение команд в контейнере
docker-compose -f compose.dev.yaml exec backend bash
docker-compose -f compose.dev.yaml exec postgres psql -U postgres -d aeproject_devОсновные переменные в файле .env:
# Database
POSTGRES_DB=aeproject_dev
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
DATABASE_URL=postgresql://postgres:postgres@postgres:5432/aeproject_dev
# API
AEAPISETTINGS_UVICORN_HOST=0.0.0.0
AEAPISETTINGS_UVICORN_PORT=8000
AEAPISETTINGS_UVICORN_DEBUG=Falsepostgres_data- Данные PostgreSQLbackend_logs- Логи backend приложения- Локальные файлы монтируются для hot reload в режиме разработки
-
Проверка статуса контейнеров:
docker-compose -f compose.dev.yaml ps
-
Подключение к PostgreSQL:
docker-compose -f compose.dev.yaml exec postgres psql -U postgres -d aeproject_dev -
Просмотр логов конкретного сервиса:
docker-compose -f compose.dev.yaml logs backend
# Остановка сервисов
docker-compose -f compose.dev.yaml down
# Остановка и удаление volumes (ВНИМАНИЕ: удалит данные БД!)
docker-compose -f compose.dev.yaml down -v
# Удаление образов
docker-compose -f compose.dev.yaml down --rmi all