Настройка интеграции с AI-сервисом DB Advisor#
Настройка интеграции с AI-сервисами (DB Advisor) делится на следующие части:
Включение сервиса AI-диагностики#
Примечание
Сервис AI-диагностики (DB Advisor) является опциональным компонентом и не разворачивается по умолчанию.
Для включения сервиса AI-диагностики выполните следующие шаги:
Задайте значение
trueпараметруapplication.enabledв файле конфигурации Helm-шаблона./helm/application/dbadvisor.Данный параметр отвечает за разворачивание сервиса в Kubernetes-кластере. При значении
falseресурсы сервиса не создаются (под не запускается).Для включения раздела «AI-диагностика» в пользовательском интерфейсе задайте значение
trueпараметруKINTSUGI_ENABLE_AI_DIAGNOSTICSв файлеenvironment.jsonфронтенда.Примечание
Параметр
application.enabledотвечает только за разворачивание сервиса и не влияет на видимость раздела в пользовательском интерфейсе. Эти два параметра настраиваются независимо.
Настройка LLM-провайдера#
Сервис AI-диагностики использует большие языковые модели (LLM) для анализа данных и формирования рекомендаций. Поддерживаются следующие провайдеры:
GigaChat — приоритетный провайдер (доверенный периметр);
AIHub — внутренний OpenAI-совместимый периметр;
OpenAI-совместимый — self-hosted модели внутри контура.
Примечание
Проверка работоспособности и устранение ошибок производились на основе моделей GigaChat-2-Max и Qwen/Qwen3.6-27B.
Настройка провайдера LLM#
Определите параметры LLM-провайдера в секции llm конфигурации:
Параметр |
Пример |
Обязательный |
Описание |
|---|---|---|---|
|
|
Да |
Тип провайдера: |
|
|
Нет |
Потолок токенов генерации на один вызов LLM (по умолчанию равен 0) |
Провайдер GigaChat#
Параметр |
Пример |
Обязательный |
Описание |
|---|---|---|---|
|
|
Да |
Активный провайдер LLM |
|
|
Нет |
OAuth-scope GigaChat |
|
|
Да |
Адрес OAuth-конечной точки |
|
|
Да |
Базовый URL API chat-completions |
|
|
Нет |
Модель GigaChat |
|
|
Да |
Путь к файлу с ключом авторизации |
Провайдер AIHub#
Параметр |
Пример |
Обязательный |
Описание |
|---|---|---|---|
|
|
Да |
Активный провайдер LLM |
|
|
Да |
URL AIHub (OpenAI-совместимый API) |
|
|
Нет |
Модель AIHub |
|
|
Да |
Путь к файлу с ключом API |
Провайдер OpenAI-совместимый (self-hosted)#
Параметр |
Пример |
Обязательный |
Описание |
|---|---|---|---|
|
|
Да |
Активный провайдер LLM |
|
|
Да |
Базовый URL API |
|
|
Да |
Имя модели |
|
|
Да |
Путь к файлу с ключом API |
Примечание
API-ключи LLM-провайдеров передаются сервису через файлы в каталоге /kintsugi/dbadvisor/secrets/, монтируемые из k8s Secrets.
Настройка маскирования данных#
Перед отправкой данных в LLM чувствительная информация маскируется компонентом Redactor. Политика маскирования настраивается параметром redactor.policy.
Параметр |
Пример |
Описание |
|---|---|---|
|
|
Политика маскирования: |
Доступные значения:
standard— базовое маскирование чувствительных данных (строки подключения, IP-адреса, имена БД и пользователей, секреты);strict— строгое маскирование: тексты SQL целиком не передаются за контур, отправляются только структурированные метрики;off— маскирование отключено (только для development/тестирования).
Примечание
Политика strict совместима только с провайдером llm.provider: mock. С сетевым провайдером (GigaChat, AIHub, OpenAI) сервис не стартует при redactor.policy: strict (ограничение КБ-3). Для промышленной эксплуатации с сетевым провайдером используйте политику standard.
Настройка кастомных паттернов маскирования#
Для дополнительного маскирования пользовательских паттернов определите параметр redactor.custom_patterns в ConfigMap сервиса. Параметр принимает список объектов с полями regex (регулярное выражение) и replacement (строка замены).
Настройка прав доступа#
Доступ к разделу «AI-диагностика» управляется двумя asset-привилегиями, вычисляемыми сервисом curator по модели ABAC:
Привилегия |
Описание |
|---|---|
|
Просмотр раздела и результатов диагностики экземпляра |
|
Запуск прогона диагностики и принятие решений по находкам |
Примечание
Раздел «AI-диагностика» дополнительно закрыт фронтовым флагом функций KINTSUGI_ENABLE_AI_DIAGNOSTICS. Даже при наличии привилегий раздел не будет виден в интерфейсе, если флаг функций отключен.
Для заведения привилегий выполните следующие шаги:
Зарегистрируйте ключи привилегий в бэкенде. Добавьте ключи
asset_pg_ai_viewиasset_pg_ai_runв перечисление asset-привилегий бэкенда, по которомуcuratorвалидируетprivilege_key.Выполните SQL-миграцию. Заведите привилегии как тип
assetс локализованными названиями (ru/en) и грантуйте их по модели ABAC выделенной группе пользователей AI-диагностики (user_group_key).Зарегистрируйте ключи привилегий во фронтенде. Добавьте те же ключи
asset_pg_ai_viewиasset_pg_ai_runв перечисление asset-привилегий пользовательского интерфейса.
Назначение прав пользователям#
Права asset_pg_ai_view и asset_pg_ai_run назначаются выделенной группе пользователей AI-диагностики (user_group_key). Членство в группе задается одним из способов:
списком пользователей;
ассоциацией с RBAC-ролью через поле
role_name.
Настройка промптов агентов#
Поведение агентов диагностики задается текстовыми промптами, которые можно изменять без пересборки сервиса через ConfigMap.
Структура промпт-файлов#
Файлы промптов располагаются в каталоге services/aiagent/prompts/:
Файл |
Агент |
|---|---|
|
Workload (нагрузка) |
|
Index (индексы) |
|
Vacuum (очистка) |
|
Configuration (конфигурация) |
|
Connection (соединения) |
|
Планировщик (сводка рекомендаций) |
Варианты промптов#
Для каждого агента поддерживаются два варианта промптов:
strict — с форматным контролем (используется по умолчанию);
lean — без форматного контроля (для моделей с надежным следованием формату).
Выбор профиля промптов осуществляется через override-ConfigMap при развертывании.
Проверка корректности настройки#
Минимальный набор параметров для деплоя#
Для корректной работы сервиса AI-диагностики убедитесь, что заданы следующие параметры:
application.enabled=true(Helm-конфигурация);KINTSUGI_ENABLE_AI_DIAGNOSTICS=true(файлenvironment.jsonфронтенда);llm.providerи соответствующие параметры выбранного провайдера (URL, модель, секреты);global.database.dbadvisordb.*(подключение к собственной БД сервиса);abac.curator_url(адрес сервисаcurator, генерируется черезcommon.endpoints.service.curator);Привилегии
asset_pg_ai_viewиasset_pg_ai_runзарегистрированы вcurator;Конфигурация edge-прокси
iam(aiagent.server.conf) развернута.
Проверка работоспособности#
Проверка |
Конечная точка |
Ожидаемый результат |
|---|---|---|
Живость процесса |
|
|
Готовность сервиса |
|
|
Доступность метрик |
|
Prometheus-метрики с префиксом |
Запуск диагностики |
|
|
Фиксированные параметры сервиса#
Следующие параметры не настраиваются и имеют фиксированные значения:
Параметр |
Значение |
Описание |
|---|---|---|
|
8080 |
Порт REST + WebSocket API |
|
5000 мс |
Тайм-аут чтения HTTP-запроса |
|
5000 мс |
Тайм-аут чтения заголовков HTTP-запроса |
|
300 с |
Тайм-аут записи HTTP-ответа |
|
30 мин |
Тайм-аут неактивного HTTP-соединения |
|
10 |
Лимит запусков диагностики на пользователя в минуту |
|
8 |
Максимальное количество одновременных прогонов диагностики |
|
1000000 |
Бюджет LLM-токенов на один прогон диагностики |
|
8192 |
Потолок токенов генерации на один вызов LLM |
|
10 |
Максимальное количество соединений с собственной БД сервиса |
|
8080 |
Порт подключения к сервису backend |
|
10 с |
Тайм-аут ожидания ответа от сервера backend при установке соединения |
|
3 |
Максимальное количество попыток переподключения к backend |
|
5 с |
Максимальная задержка между попытками переподключения к backend |