Этот репозиторий содержит сервис проверки модели перед переводом deployment в рабочее состояние. Сервис хранит SLO-конфиги, запускает validation runs и возвращает verdict для deployment service.
- каталог SLO-конфигов
- создание validation run для deployment
- получение отчета по проверке
- отмена validation run
- сбор метрик из Prometheus
- служебные health/livez/service-info ручки
-
app/— основной код приложенияmain.py— FastAPI-приложение и HTTP-ручкиconfig.py— настройки сервиса
-
deploy/— файлы и переменные для развертывания -
.env.example— пример переменных окружения -
Dockerfile— сборка Docker-образа -
pyproject.toml— зависимости и настройки Python-проекта -
requirements.txt— список зависимостей для совместимого запуска без uv
-
Установите зависимости:
uv sync
-
Создайте
.envна основе.env.example:cp .env.example .env
-
Запустите сервис:
uv run uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
Если uv не используется, можно запустить через обычный virtualenv:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --host 0.0.0.0 --port 8000 --reloadDATABASE_URLPROMETHEUS_URLDEPLOYMENT_SERVICE_URLSECURITY_SERVICE_URLSERVICE_TOKENLOG_LEVEL
Пример .env:
DATABASE_URL=postgresql://postgres:postgres@localhost:5432/llm_platform
SERVICE_TOKEN=change-me
LOG_LEVEL=INFO| Метод | Ручка | Назначение |
|---|---|---|
GET |
/health |
Проверяет доступность validation service. |
GET |
/livez |
Liveness probe контейнера. |
GET |
/service-info |
Возвращает служебную информацию о сервисе валидации. |
GET |
/validation/slo-configs |
Возвращает доступные SLO-конфиги для формы деплоя и проверки модели. |
POST |
/validation/slo-configs |
Создает SLO-конфиг с порогами TTFT, TPS, TPOT, error rate и очереди. |
GET |
/validation/slo-configs/{slo_config_id} |
Возвращает конкретный SLO-конфиг по идентификатору. |
DELETE |
/validation/slo-configs/{slo_config_id} |
Отключает или удаляет SLO-конфиг, если он больше не нужен. |
GET |
/validation/runs |
Возвращает историю запусков валидации. |
POST |
/validation/runs |
Создает validation run для конкретного deployment после поднятия модели. |
GET |
/validation/runs/{run_id} |
Возвращает статус validation run: pending, running, passed, failed или cancelled. |
POST |
/validation/runs/{run_id}/cancel |
Отменяет активную проверку модели. |
GET |
/validation/reports/{run_id} |
Возвращает отчет по метрикам и итоговый verdict проверки. |
docker build -t hse-llm-project-2026/validation_service:local .
docker run --env-file .env -p 8000:8000 hse-llm-project-2026/validation_service:localФайлы развертывания лежат в папке deploy/. Для сервисов, которые уже подключены к стенду, используются Helm values и deploy-скрипты из соответствующего репозитория или общего инфраструктурного пайплайна.
- Swagger UI:
/docs - OpenAPI:
/openapi.json - Health check:
/health - Liveness check:
/livez
Igor Malysh