Настройка интеграции с AI-сервисом DB Advisor#
Примечание
Политика strict совместима только с провайдером llm.provider: mock. С сетевым провайдером (GigaChat и OpenAI) сервис не стартует при redactor.policy: strict (ограничение КБ-3). Для промышленной эксплуатации с сетевым провайдером используйте политику standard.
Примечание
Сервис AI-диагностики (DB Advisor) является опциональным компонентом и не разворачивается по умолчанию.
Включение сервиса AI-диагностики#
Для включения сервиса в редакции Standard используйте профиль dbadvisor в docker-compose конфигурации и установите переменную окружения KINTSUGI_ENABLE_AI_DIAGNOSTICS=true.
Настройка LLM-провайдера#
Определите параметры LLM-провайдера в файле standard/conf/.env:
Переменная |
Пример |
Обязательный |
Описание |
|---|---|---|---|
|
|
Да |
Тип провайдера: |
|
|
Нет |
Потолок токенов генерации на один вызов LLM (по умолчанию равен 0) |
Провайдер GigaChat#
Переменная |
Пример |
Обязательный |
Описание |
|---|---|---|---|
|
|
Да |
Адрес OAuth-конечной точки |
|
|
Да |
Базовый URL API chat-completions |
|
|
Нет |
Модель GigaChat |
|
|
Да |
Путь к файлу с ключом авторизации |
|
|
Нет |
OAuth-scope GigaChat |
Провайдер OpenAI-совместимый#
Переменная |
Пример |
Обязательный |
Описание |
|---|---|---|---|
|
|
Да |
Базовый URL API |
|
|
Да |
Имя модели |
|
|
Да |
Путь к файлу с ключом API |
Примечание
API-ключи LLM-провайдеров передаются сервису через файлы в каталоге /kintsugi/dbadvisor/secrets/, монтируемые из .env-файлов как Docker Secrets (через docker compose secrets или volumes с опцией :ro).
Настройка CA-сертификатов и mTLS#
Переменная |
Пример |
Описание |
|---|---|---|
|
|
Путь к файлу CA-сертификата LLM-провайдера |
|
|
Путь к файлу клиентского сертификата (опционально, для mTLS) |
|
|
Путь к файлу клиентского ключа (опционально, для mTLS) |
Настройка маскирования данных#
Перед отправкой данных в LLM чувствительная информация маскируется компонентом Redactor. Политика маскирования настраивается параметром REDACTOR_POLICY.
Переменная |
Пример |
Описание |
|---|---|---|
|
|
Политика маскирования: |
Доступные значения:
standard— базовое маскирование чувствительных данных (строки подключения, IP-адреса, имена БД и пользователей, секреты);strict— строгое маскирование: тексты SQL целиком не передаются за контур, отправляются только структурированные метрики;off— маскирование отключено (только для development/тестирования).
Настройка кастомных паттернов маскирования#
Для дополнительного маскирования пользовательских паттернов определите параметр REDACTOR_CUSTOM_PATTERNS в файле .env. Параметр принимает список JSON-объектов с полями regex (регулярное выражение) и replacement (строка замены).
Настройка прав доступа#
Назначение прав пользователям#
Права asset_pg_ai_view и asset_pg_ai_run назначаются выделенной группе пользователей AI-диагностики (user_group_key). Членство в группе задается одним из способов:
списком пользователей;
ассоциацией с RBAC-ролью через поле
role_name.
Проверка корректности настройки#
Проверка работоспособности#
Проверка |
Конечная точка |
Ожидаемый результат |
|---|---|---|
Живость процесса |
|
|
Готовность сервиса |
|
|
Доступность метрик |
|
Prometheus-метрики с префиксом |
Запуск диагностики |
|
|
Фиксированные параметры сервиса#
Параметр |
Значение |
Описание |
|---|---|---|
|
8080 |
Порт REST + WebSocket API |
|
5000 мс |
Тайм-аут чтения HTTP-запроса |
|
5000 мс |
Тайм-аут чтения заголовков HTTP-запроса |
|
300 с |
Тайм-аут записи HTTP-ответа |
|
30 мин |
Тайм-аут неактивного HTTP-соединения |
|
10 |
Лимит запусков диагностики на пользователя в минуту |
|
8 |
Максимальное количество одновременных прогонов диагностики |
|
1000000 |
Бюджет LLM-токенов на один прогон диагностики |
|
10 |
Максимальное количество соединений с собственной БД сервиса |
|
8080 |
Порт подключения к сервису backend |
|
10 с |
Тайм-аут ожидания ответа от сервера backend при установке соединения |
|
3 |
Максимальное количество попыток переподключения к backend |
|
5 с |
Максимальная задержка между попытками переподключения к backend |
Маппинг секретов#
В редакции Standard секреты маппятся через Docker volumes с опцией :ro:
Секрет |
Путь на VM |
Путь в контейнере |
|---|---|---|
GigaChat API key |
|
|
OpenAI-совместимый API key |
|
|
DB password |
|
|
LLM CA cert |
|
|
mTLS client cert |
|
|
mTLS client key |
|
|
Права на файлы: директория 750 (владелец, группа 10001), файлы 640.