Запуск системы¶
Первый запуск¶
cd /opt/llm-firewall
# Запуск всех сервисов
docker compose up -d
# Просмотр статуса
docker compose ps
Порядок инициализации (dependency chain)¶
Сервисы запускаются в определённом порядке благодаря depends_on:
1. PostgreSQL, Redis, MinIO (инфраструктура)
2. MinIO Init (создание bucket policies)
3. Profiles Registry Migrate (миграции БД)
4. Admin API Migrate (миграции БД)
5. Profiles Registry (управление профилями)
6. OPA (policy engine)
7. Admin API (административный API)
8. PDP (Policy Decision Point)
9. Request Normalizer (нормализация запросов)
10. PII Detector (детекция PII)
11. Translation Service (перевод RU→EN, загрузка модели ~30с)
12. Threat Detector (детекция угроз, загрузка модели ~60-120с)
13. Content Safety (контентная безопасность, загрузка модели ~60-120с)
14. Content Policy Service (кастомные политики)
15. API Gateway (оркестратор — запускается после всех детекторов)
16. Admin API Consumer (обработка событий из Redis)
17. Admin API Retention Worker (периодическая очистка данных)
18. Event Exporter (экспорт событий в SIEM)
19. Admin UI (веб-интерфейс)
Важно
ML-сервисы (threat-detector, content-safety) требуют значительного времени для загрузки моделей. start_period: 120s в health check учитывает это.
Проверка GPU в контейнерах¶
# Translation Service
docker exec llm-firewall-translation-service python -c "
import torch
print(f'CUDA available: {torch.cuda.is_available()}')
print(f'CUDA device: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else \"N/A\"}')
"
# Threat Detector
docker exec llm-firewall-threat-detector python -c "
import torch
print(f'CUDA available: {torch.cuda.is_available()}')
print(f'CUDA device: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else \"N/A\"}')
"
# Content Safety
docker exec llm-firewall-content-safety python -c "
import torch
print(f'CUDA available: {torch.cuda.is_available()}')
print(f'CUDA device: {torch.cuda.get_device_name(0) if torch.cuda.is_available() else \"N/A\"}')
"
Проверка загрузки ML-моделей¶
# Проверка логов на наличие "cuda" или "GPU"
docker compose logs translation-service | grep -i "cuda\|gpu\|device"
docker compose logs threat-detector | grep -i "cuda\|gpu\|device\|model"
docker compose logs content-safety | grep -i "cuda\|gpu\|device\|model"
Ожидаемые сообщения:
Model loaded on cuda.Using device: cuda.CUDA available: True.