Skip to content

Конфигурация приложения ai-core ​

Скачать пример файла конфигурации

ai-core — локальное AI-ядро flip On-Premise. Сервис регистрирует установку в облаке flip и проксирует запросы AI-функций (генерация изображений, удаление фона, AI-текст) в облачное ядро https://ai.flip-chart.ru. Ключ установки хранится в базе данных ai-core в зашифрованном виде. Входящие запросы ai-core принимает только от backend; публикация через обратный прокси не требуется.

Компонент необязательный: без ai-core приложение работает, AI-функции недоступны (см. Отключение).

Файл конфигурации монтируется в контейнер по пути /flip/cfg/config.yml. Строка подключения к базе данных задаётся переменной окружения POSTGRES_DSN: по ней при старте контейнера применяются миграции, без неё контейнер не запускается.

Сетевой доступ

Требуется исходящий доступ по HTTPS (порт 443) к ai.flip-chart.ru. Переменные окружения HTTP_PROXY и HTTPS_PROXY не используются; прокси задаётся в Upstream.ProxyURL (см. Дополнительные параметры).

Настройка backend

В конфигурации backend задаются адрес ai-core (AI.LocalCore.BaseURL) и токен доступа (AI.LocalCore.Token), совпадающий с Auth.Local.Token. Для работы AI-функций в backend также требуются включённый file-handlers (FileHandlerServiceConfig) и S3-хранилище.

Переменные окружения ​

ПеременнаяОписание
POSTGRES_DSNОбязательна. Строка подключения к базе flip_ai_core (секрет). В Docker Compose задаётся в .env (AI_CORE_POSTGRES_DSN), в Kubernetes — ключом POSTGRES_DSN секрета ai-core-config.

Пример: postgres://flip:secret-passwd@flip-postgres:5432/flip_ai_core?sslmode=disable. Специальные символы в имени пользователя и пароле кодируются (percent-encoding); для подключения по TLS указывается sslmode=require или sslmode=verify-full.

Поля файла конфигурации также задаются переменными окружения: путь поля в верхнем регистре, . → _ (Auth.Local.Token → AUTH_LOCAL_TOKEN). Значение переменной окружения имеет приоритет над файлом.

База данных ​

ai-core использует отдельную базу flip_ai_core на том же сервере PostgreSQL, что и backend. База создаётся до первого запуска ai-core:

sql
CREATE DATABASE flip_ai_core OWNER flip;

flip — пользователь PostgreSQL приложения. В Standalone-установке (каталог deploy/docker-compose):

bash
docker compose exec flip-postgres sh -c 'createdb -U "$POSTGRES_USER" -O "$POSTGRES_USER" flip_ai_core'

Описание конфигурационных полей ​

Неизвестный ключ в файле — ошибка запуска.

Auth.Local ​

  • Token: Токен доступа backend к ai-core (секрет), не короче 32 символов. Совпадает с AI.LocalCore.Token в конфигурации backend. Генерация: openssl rand -hex 32.
  • PreviousToken: Прежний токен на время ротации. Вне ротации не задаётся.

Postgres ​

Необязательные параметры пула соединений.

  • MaxOpenConns, MaxIdleConns: Размер пула соединений. 0 — значение драйвера.
    Пример: 10
  • ConnMaxLifetime: Максимальное время жизни соединения. 0 — без ограничения.
    Пример: 30m

Дополнительные параметры ​

Уровень логирования, прокси и адреса листенеров задаются отдельным необязательным файлом. Путь к нему указывается в переменной окружения ADJUSTABLE_CONFIG_FILE. Эти параметры не задаются в config.yml и переменными окружения. Без файла действуют значения по умолчанию.

yaml
Logger:
  Level: info          # debug | info | warn | error
  Elastic: false       # формат логов ECS
Upstream:
  ProxyURL: ""         # прокси для запросов к https://ai.flip-chart.ru, например http://proxy.example.ru:3128
Server:
  PublicAddr: ":9100"
  MetricsAddr: ":9102"
  ShutdownTimeout: 10s

Upstream.ProxyURL — абсолютный адрес со схемой http или https. При изменении портов в Server правятся также AI.LocalCore.BaseURL в backend и порты контейнера.

Порты ​

ПортНазначение
9100API для backend
9102/metrics, /healthz, /readyz

Остановка ​

При остановке ai-core дожидается завершения начатых генераций. Время на остановку контейнера — не меньше 120 секунд: stop_grace_period: 120s в docker-compose, terminationGracePeriodSeconds: 120 в Helm-чарте.

Ротация токена ​

  1. В конфигурации ai-core укажите текущий токен в Auth.Local.PreviousToken, новый — в Auth.Local.Token; перезапустите ai-core.
  2. Укажите новый токен в AI.LocalCore.Token конфигурации backend; перезапустите backend.
  3. Удалите Auth.Local.PreviousToken из конфигурации ai-core; перезапустите ai-core.

Отключение ​

  • Docker Compose: удалите сервис flip-ai-core из docker-compose.yaml и секцию AI из конфигурации backend, затем выполните docker compose up -d --remove-orphans.
  • Kubernetes: укажите ai-core.enabled: false в values.yaml, удалите секцию AI из конфигурации backend и выполните helm upgrade.

Документация flip On-Premise и Cloud