Этот репозиторий содержит сервис управления жизненным циклом LLM-развертываний. Сервис хранит описание deployment-объектов, создает LLMDeployment в Kubernetes и координирует запуск проверки модели через validation service.
- создание и просмотр LLM-развертываний
- redeploy и удаление deployment-объектов
- сохранение metadata в PostgreSQL
- создание LLMDeployment CRD через Kubernetes client manager
- запуск validation run после поднятия модели
- служебные 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_URLK8S_CLIENT_MANAGER_URLVALIDATION_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 |
Проверяет, что сервис доступен и может отвечать на management-запросы. |
GET |
/livez |
Liveness probe для перезапуска контейнера при зависании процесса. |
GET |
/service-info |
Возвращает имя сервиса, версию и базовую информацию для страницы статуса. |
GET |
/deployments |
Отдает список LLM-развертываний с моделью, кластером, статусом и параметрами запуска. |
POST |
/deployments |
Создает deployment metadata и отправляет LLMDeployment CRD в Kubernetes client manager. |
GET |
/deployments/{deployment_id} |
Возвращает детальное состояние конкретного развертывания. |
DELETE |
/deployments/{deployment_id} |
Удаляет deployment из control plane и инициирует удаление связанного LLMDeployment. |
POST |
/deployments/{deployment_id}/redeploy |
Перезапускает существующее развертывание без создания новой бизнес-сущности. |
POST |
/deployments/{deployment_id}/validate |
Запускает проверку модели через validation service после поднятия runtime workload. |
docker build -t hse-llm-project-2026/deployment_service:local .
docker run --env-file .env -p 8000:8000 hse-llm-project-2026/deployment_service:localФайлы развертывания лежат в папке deploy/. Для сервисов, которые уже подключены к стенду, используются Helm values и deploy-скрипты из соответствующего репозитория или общего инфраструктурного пайплайна.
- Swagger UI:
/docs - OpenAPI:
/openapi.json - Health check:
/health - Liveness check:
/livez
Igor Malysh