Переменные окружения¶
Полный перечень переменных окружения по сервисам — см. Конфигурация системы.
Общие переменные для всех сервисов¶
| Переменная | Описание |
|---|---|
LOG_LEVEL |
Уровень логирования: DEBUG, INFO, WARN, ERROR |
LOG_FORMAT |
Формат логов: json, text |
ENVIRONMENT |
Окружение: development, production |
LLM Gateway Adapter¶
Переменные окружения сервиса llm-gateway-adapter — адаптера между внешним LLM Gateway (LiteLLM, Portkey) и AppSec.AIGate. Назначение сервиса — см. Guardrail Adapter и Интеграция с LiteLLM.
Канонические переменные¶
| Переменная | По умолч. | Описание |
|---|---|---|
SERVICE_NAME |
llm-gateway-adapter |
Идентификатор сервиса (используется в логах и метриках) |
SERVICE_VERSION |
из CI (COMMIT_HASH), иначе dev |
Версия сборки |
ENVIRONMENT |
dev |
dev / staging / production |
SERVICE_PORT |
8000 |
Порт контейнера |
LOG_LEVEL |
INFO |
DEBUG / INFO / WARNING / ERROR |
LOG_FORMAT |
json |
json (прод) или text (локально) |
OTEL_ENABLED |
false |
Включить OpenTelemetry distributed tracing |
OTEL_EXPORTER_OTLP_ENDPOINT |
http://otel-collector.infra.svc.cluster.local:4317 |
OTLP gRPC-коллектор |
Прикладные переменные (префикс ADAPTER_)¶
| Переменная | По умолч. | Описание |
|---|---|---|
ADAPTER_AIGATE_URL |
http://api-gateway:8080 |
Base URL api-gateway для форвардинга guardrail-проверки |
ADAPTER_AIGATE_REQUEST_PATH |
/_aigate/v1/adapters/litellm |
Канонический scan-эндпоинт api-gateway (Feature 030). Для Portkey — /_aigate/v1/adapters/portkey. Профиль выбирается явно (ADAPTER_AIGATE_PROFILE_ID), фиктивный guardrail-провайдер не нужен. |
ADAPTER_AIGATE_PROFILE_ID |
"" |
id профиля типа scan_only/dual (создаётся в Admin UI). Передаётся заголовком X-AIGate-Profile-ID. Заменяет прежнюю резолюцию профиля через dummy-провайдер. Пусто → заголовок не отправляется. |
ADAPTER_AIGATE_TENANT_ID |
default |
Значение заголовка X-Tenant-ID, отправляемого в api-gateway. Устаревшая переменная: в текущей версии (single-tenant) шлюз принимает и игнорирует этот заголовок. Оставлена для обратной совместимости; можно не задавать. |
ADAPTER_AIGATE_TEAM_HEADER |
X-LLM-Team |
Имя заголовка для передачи team в api-gateway (policy-маршрутизация) |
ADAPTER_AIGATE_HTTP_TIMEOUT_CONNECT_SEC |
0.5 |
httpx connect-timeout до api-gateway |
ADAPTER_AIGATE_HTTP_TIMEOUT_READ_SEC |
1.0 |
httpx read-timeout. На стендах с реальными ML-детекторами обычно поднимают до 5.0 — см. note ниже |
ADAPTER_AIGATE_HTTP_TIMEOUT_WRITE_SEC |
0.5 |
httpx write-timeout |
ADAPTER_AIGATE_HTTP_TIMEOUT_POOL_SEC |
0.5 |
httpx connection-pool acquire timeout |
Удалённые переменные
В ранних версиях адаптера существовали переменные ADAPTER_HOST, ADAPTER_PORT, ADAPTER_LOG_LEVEL, ADAPTER_LOG_FORMAT, ADAPTER_AIGATE_TIMEOUT. Они заменены на канонические SPEC-имена либо (для ADAPTER_AIGATE_TIMEOUT) на четыре phase-specific переменных, перечисленных выше. Defaults сохраняют historic fail-fast budget (≤ 4.5 с worst-case с 2 attempts + 0.5 с backoff), вписываясь в LiteLLM guardrail window (5–10 с).
Когда тюнить timeouts на k8s с реальными ML-детекторами
На стендах с реальными ML-детекторами (Wildguard-Qwen3-4b + Qwen3Guard-Stream-4B) под нагрузкой суммарная задержка pipeline может превысить read-timeout по умолчанию (1.0 с) — адаптер ловит httpx.ReadTimeout → fail-secure BLOCK → клиент получает security check unavailable. Обычно достаточно поднять read до 5.0:
# Helm values: deploy/aigate/dev/llm-gateway-adapter.yaml
envVars:
- name: ADAPTER_AIGATE_HTTP_TIMEOUT_READ_SEC
value: "5.0"
Адаптер при старте логирует retry_budget_exceeds_litellm_default warning, если суммарный budget переваливает за 5 с — в этом случае увеличьте LiteLLM request_timeout соответственно либо снизьте per-phase timeouts. Pydantic validator (gt=0) отклоняет нулевые/отрицательные значения с понятной ошибкой при старте — pod не crash-loop'ит молча.
Python SDK (appsec-aigate)¶
Переменные окружения тонкого клиента Python SDK. Назначение и примеры — см. Интеграция через Python SDK.
| Переменная | По умолч. | Описание |
|---|---|---|
AIGATE_URL |
— (обязательна) | Базовый URL api-gateway |
AIGATE_TENANT_ID |
— (обязательна) | Значение заголовка X-Tenant-ID, требуемое SDK. В текущей версии (single-tenant) шлюз принимает и игнорирует его; изоляции по нему нет, задавайте любое стабильное значение (например, default). |
AIGATE_PROFILE_ID |
— (обязательна) | Профиль по умолчанию (scan_only/dual) |
AIGATE_TEAM |
— | Значение заголовка X-LLM-Team (policy-маршрутизация) |
AIGATE_TEAM_HEADER_NAME |
X-LLM-Team |
Имя заголовка team |
AIGATE_FAIL_MODE |
open |
open (пропустить + warning) или closed (бросить BackendUnavailableError) |
AIGATE_PROFILE_CACHE_TTL_SEC |
60 |
TTL кэша профиля |
AIGATE_TIMEOUT_CONNECT_SEC |
0.5 |
httpx connect-timeout |
AIGATE_TIMEOUT_READ_SEC |
5.0 |
httpx read-timeout |
AIGATE_TIMEOUT_WRITE_SEC |
0.5 |
httpx write-timeout |
AIGATE_TIMEOUT_POOL_SEC |
0.5 |
httpx pool-timeout |
AIGATE_CIRCUIT_BREAKER_THRESHOLD |
5 |
Число подряд неудач до размыкания цепи |
AIGATE_CIRCUIT_BREAKER_RECOVERY_SEC |
30 |
Период проверки восстановления |
AIGATE_LOG_PROMPTS |
false |
Логировать тексты промптов/ответов (152-ФЗ — включать осознанно) |
AIGATE_DEGRADED_BUFFER_SIZE |
1000 |
Лимит буфера degraded-событий (только метаданные) |
AIGATE_OTEL_ENABLED |
false |
Включить OpenTelemetry-трейсинг (экстра [otel]) |
AIGATE_PROMETHEUS_ENABLED |
false |
Включить Prometheus-метрики (экстра [prometheus]) |
AIGATE_APP_NAME / AIGATE_APP_VERSION |
(автоопределение) | Идентификация приложения в событиях |
Без аутентификации
SDK не передаёт токенов. Доступ к api-gateway ограничивается сетевой изоляцией. Заголовок X-Tenant-ID шлюз принимает и игнорирует (single-tenant), для маршрутизации политик используется X-LLM-Team (опц.).