|
|
||
|---|---|---|
| .claude | ||
| app | ||
| static | ||
| tests | ||
| .env.example | ||
| .env.test | ||
| .gitignore | ||
| CLAUDE.md | ||
| DB_API_CONTRACT.md | ||
| DB_API_CONTRACT_V2.md | ||
| DEVELOPMENT_PLAN.md | ||
| Dockerfile | ||
| MIGRATION_GUIDE.md | ||
| PRODUCTION_CHECKLIST.md | ||
| PROJECT_STATUS.md | ||
| README.md | ||
| REFACTORING_PLAN.md | ||
| REFACTORING_TODO.md | ||
| TESTING.md | ||
| coverage.xml | ||
| docker-compose.yml | ||
| format.py | ||
| pytest.ini | ||
| requirements-dev.txt | ||
| requirements.txt | ||
| run_all_tests.bat | ||
| run_e2e_tests.bat | ||
| run_integration_tests.bat | ||
| run_tests.bat | ||
| run_tests.sh | ||
| run_unit_tests.bat | ||
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 checkGET /- 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
Документация
- TESTING.md - руководство по тестированию
- PRODUCTION_CHECKLIST.md - чек-лист для продакшн
- DB_API_CONTRACT.md - контракт с DB API
- PROJECT_STATUS.md - статус проекта
Status
Проект готов к продакшн
- Backend полностью реализован (все endpoints, services, interfaces)
- Frontend интегрирован (HTML/CSS/JS)
- 99% test coverage (unit + integration + E2E)
- Docker ready
- Требуется: настройка
.envи сертификатов
Перед деплоем: см. PRODUCTION_CHECKLIST.md
License
Proprietary