Go to file
itqop dde938c91d fixes bugs 2025-12-25 12:06:02 +03:00
.claude fixes bugs 2025-12-25 12:06:02 +03:00
app fix datetime 2025-12-25 09:52:08 +03:00
static fixes bugs 2025-12-25 12:06:02 +03:00
tests fixes 2025-12-25 10:16:33 +03:00
.env.example first version 2025-12-17 17:37:32 +03:00
.env.test v3 2025-12-18 02:24:00 +03:00
.gitignore integration tests 2025-12-18 10:00:04 +03:00
CLAUDE.md chore: edit mds 2025-12-18 11:52:02 +03:00
DB_API_CONTRACT.md first version 2025-12-17 17:37:32 +03:00
DB_API_CONTRACT_V2.md fix: db api 2025-12-25 09:44:52 +03:00
DEVELOPMENT_PLAN.md chore: edit mds 2025-12-18 11:52:02 +03:00
Dockerfile delete cpmments 2025-12-18 11:36:24 +03:00
MIGRATION_GUIDE.md chore: edit mds 2025-12-18 11:52:02 +03:00
PRODUCTION_CHECKLIST.md chore: edit mds 2025-12-18 11:52:02 +03:00
PROJECT_STATUS.md chore: edit mds 2025-12-18 11:52:02 +03:00
README.md chore: edit mds 2025-12-18 11:52:02 +03:00
REFACTORING_PLAN.md add plan 2025-12-25 11:01:44 +03:00
REFACTORING_TODO.md final stage 2025-12-25 11:56:42 +03:00
TESTING.md chore: edit mds 2025-12-18 11:52:02 +03:00
coverage.xml fixes 2025-12-25 10:16:33 +03:00
docker-compose.yml delete cpmments 2025-12-18 11:36:24 +03:00
format.py chore: edit mds 2025-12-18 11:52:02 +03:00
pytest.ini integration tests 2025-12-18 10:00:04 +03:00
requirements-dev.txt delete cpmments 2025-12-18 11:36:24 +03:00
requirements.txt v3 2025-12-18 02:24:00 +03:00
run_all_tests.bat integration tests 2025-12-18 10:00:04 +03:00
run_e2e_tests.bat integration tests 2025-12-18 10:00:04 +03:00
run_integration_tests.bat integration tests 2025-12-18 10:00:04 +03:00
run_tests.bat v3 2025-12-18 02:24:00 +03:00
run_tests.sh v3 2025-12-18 02:24:00 +03:00
run_unit_tests.bat integration tests 2025-12-18 10:00:04 +03:00

README.md

Brief Bench FastAPI

FastAPI backend для системы тестирования RAG с multi-user поддержкой.

Возможности

  • JWT авторизация (8-значный логин)
  • Multi-environment: ИФТ, ПСИ, ПРОМ
  • Bench mode: batch тестирование
  • Backend mode: имитация бота (вопросы по одному)
  • Сохранение сессий анализа
  • mTLS для RAG backend
  • Аннотации и экспорт

Требования

  • Python 3.11+
  • Docker & Docker Compose (для деплоя)
  • Доступ к DB API сервису
  • mTLS сертификаты для RAG backend (опционально)

Быстрый старт

1. Клонировать репозиторий

cd /path/to/brief-bench-fastapi

2. Настроить окружение

Скопируйте .env.example в .env и заполните:

cp .env.example .env
nano .env

Обязательные переменные:

  • JWT_SECRET_KEY - секретный ключ для JWT (сгенерируйте новый!)
  • DB_API_URL - URL DB API сервиса
  • IFT_RAG_HOST, PSI_RAG_HOST, PROD_RAG_HOST - хосты RAG backend

3. Разместить сертификаты (если используется mTLS)

certs/
  ift/
    ca.crt
    client.key
    client.crt
  psi/
    ...
  prod/
    ...

4. Запустить с Docker Compose

docker-compose up -d

Приложение доступно на http://localhost:8000

5. Проверить здоровье

curl http://localhost:8000/health

Разработка

Локальный запуск (без Docker)

# Создать виртуальное окружение
python -m venv venv
source venv/bin/activate  # Linux/Mac
# или
venv\Scripts\activate  # Windows

# Установить зависимости
pip install -r requirements.txt

# Запустить
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

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

brief-bench-fastapi/
├── app/
│   ├── api/v1/          # API endpoints
│   ├── models/          # Pydantic models
│   ├── services/        # Business logic
│   ├── interfaces/      # API clients (DB, RAG)
│   ├── middleware/      # Middleware
│   ├── utils/           # Utilities (JWT, etc.)
│   ├── config.py        # Configuration
│   ├── dependencies.py  # DI
│   └── main.py          # FastAPI app
├── static/              # Frontend files
├── tests/               # Tests
├── certs/               # mTLS certificates
├── .env                 # Environment variables
├── requirements.txt     # Python dependencies
├── Dockerfile           # Docker image
├── docker-compose.yml   # Docker Compose
└── DB_API_CONTRACT.md   # DB API contract

API Endpoints

Authentication

  • POST /api/v1/auth/login - Авторизация (8-значный логин)

Health

  • GET /health - Health check
  • GET / - Root info

DB API Contract

См. DB_API_CONTRACT.md для полного описания контракта с DB API сервисом.

Интерфейсы (Interfaces)

TgBackendInterface

Базовый класс для всех API клиентов. Требует реализации пользователем!

См. app/interfaces/base.py для заглушки и требований.

DBApiClient

Наследуется от TgBackendInterface, предоставляет методы для работы с DB API:

  • login_user()
  • get_user_settings(), update_user_settings()
  • save_session(), get_sessions(), get_session(), delete_session()

Deployment

Docker Compose

docker-compose up -d

Logs

docker-compose logs -f fastapi

Остановить

docker-compose down

Security

  • JWT токены с 30-дневной экспирацией
  • mTLS сертификаты только на сервере
  • Secrets в .env (не коммитить в git!)
  • CORS настроен (обновить в production)

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

Покрытие: 99%

  • Unit тесты (119 tests) - вся логика
  • Integration тесты - интеграция с DB API
  • E2E тесты - полный стек

Запуск:

.\run_all_tests.bat          # Все (unit + integration)
.\run_unit_tests.bat         # Только unit
.\run_integration_tests.bat  # Integration (требует DB API)
.\run_e2e_tests.bat          # E2E (требует все сервисы)

Подробнее: TESTING.md

Документация

Status

Проект готов к продакшн

  • Backend полностью реализован (все endpoints, services, interfaces)
  • Frontend интегрирован (HTML/CSS/JS)
  • 99% test coverage (unit + integration + E2E)
  • Docker ready
  • Требуется: настройка .env и сертификатов

Перед деплоем: см. PRODUCTION_CHECKLIST.md

License

Proprietary