Настройки конфигурации платформы
ℹ️ В этом разделе — примеры и пояснения по основным конфигурационным файлам для системы:
- settings.yaml — глобальные настройки для всех сервисов, централизованное переопределение параметров (например, processing_interval, batch_size и др.). Рекомендуется изменять только при необходимости, так как это влияет на работу всех сервисов.
- Управление плагинами — централизованная система включения/отключения плагинов через
plugin_managementвsettings.yaml
🔌 Управление плагинами
Назначение: Централизованная система включения/отключения плагинов (утилит и сервисов) через конфигурацию ядра.
Пример конфигурации:
yaml
# config/settings.yaml (глобальные настройки)
plugin_management:
# Управление сервисами (основа запуска приложения)
services:
default_enabled: false # Сервисы по умолчанию выключены
disabled_services: [] # Список отключенных сервисов
enabled_services: [] # Список включенных сервисов
# Управление утилитами (тонкая настройка вспомогательных компонентов)
utilities:
default_enabled: true # Утилиты по умолчанию включены
disabled_utilities: [] # Список отключенных утилит
enabled_utilities: [] # Список принудительно включенных утилитПриоритет настроек:
- Глобальные настройки (
config/settings.yaml) - единственный источник настроек - Значение по умолчанию зависит от типа плагина:
- Сервисы:
false(выключены по умолчанию) - Утилиты:
true(включены по умолчанию)
- Сервисы:
⚠️ ВАЖНО: Если секция plugin_management отсутствует полностью - сервисы выключены, утилиты включены!
Примеры использования:
Отключение тяжелых сервисов в тестах:
yaml
# config/settings.yaml
plugin_management:
services:
disabled_services:
- "gigachat_service"
- "salute_speech"
- "promo_manager"Минимальная конфигурация для продакшена:
yaml
# config/settings.yaml
plugin_management:
services:
default_enabled: true # По умолчанию включено
disabled_services:
- "gigachat_service" # Отключаем только тяжелые сервисы
- "salute_speech"Строгая конфигурация (все отключено по умолчанию):
yaml
# config/settings.yaml
plugin_management:
services:
default_enabled: false # По умолчанию отключено
enabled_services:
- "logger"
- "database_service"
- "tg_event_bot"
- "hub_service"Разработка с отладкой:
yaml
# config/settings.yaml
plugin_management:
services:
default_enabled: true # По умолчанию включено
disabled_services:
- "gigachat_service" # Отключаем тяжелые AI сервисы💡 Преимущества централизованного управления:
- Компактность - все настройки включения/отключения в одном месте
- Централизация - не нужно искать настройки по разным файлам
- Простота - легко включать/отключать группы плагинов
- Производительность - отключенные плагины не потребляют ресурсы
⚠️ Важные особенности:
- Отключенные плагины не инициализируются и не потребляют ресурсы
- Зависимости - если отключен плагин, все зависящие от него плагины также не запустятся
- Циклические зависимости - система автоматически их обнаруживает и исключает проблемные плагины
- Значение по умолчанию зависит от типа:
- Сервисы:
false(нужно явно включать) - Утилиты:
true(включены по умолчанию)
- Сервисы:
- Безопасность - система не запустит случайно лишние сервисы без явного указания
🔍 Разъяснение логики:
Случай 1: Секция plugin_management присутствует
yaml
plugin_management:
services:
default_enabled: true # Все сервисы включены по умолчанию
disabled_services: [] # Исключения (отключенные)
enabled_services: [] # Явно включенные (если default_enabled: false)
utilities:
default_enabled: true # Все утилиты включены по умолчанию
disabled_utilities: [] # Исключения (отключенные)
enabled_utilities: [] # Явно включенные (если default_enabled: false)- Результат: Все плагины включены, кроме указанных в списках отключенных
Случай 2: Секция plugin_management отсутствует
yaml
# Нет секции plugin_management вообще- Результат: Сервисы выключены, утилиты включены (система не запустится без сервисов)
Случай 3: Частичная конфигурация
yaml
plugin_management:
services:
default_enabled: false # Все отключены по умолчанию
enabled_services: # Явно включаем только нужные
- "logger"
- "database_service"- Результат: Включены только сервисы из
enabled_services, утилиты включены по умолчанию
⚙️ settings.yaml
Назначение: Глобальные настройки для всех сервисов, централизованное переопределение параметров и управление запуском сервисов.
Пример конфигурации:
yaml
# Управление плагинами
plugin_management:
# Управление сервисами (основа запуска приложения)
services:
default_enabled: false # Сервисы по умолчанию выключены
disabled_services: # Список отключенных сервисов
- "gigachat_service"
- "salute_speech"
enabled_services: # Список включенных сервисов
- "hub_service"
- "tg_event_bot"
# Управление утилитами (тонкая настройка вспомогательных компонентов)
utilities:
default_enabled: true # Утилиты по умолчанию включены
disabled_utilities: # Список отключенных утилит
- "cache_service"
enabled_utilities: [] # Список принудительно включенных утилит
# Глобальные настройки системы
global:
file_base_path: "resources" # Базовая папка для всех файлов (вложений, аудио и т.д.)
# Настройки логирования
logger:
console_enabled: true # Управление выводом логов в консоль
file_enabled: false # Управление выводом логов в файл
# Настройки форматирования дат
datetime_formatter:
default_timezone: "Europe/Moscow" # Часовой пояс по умолчанию
date_format: "%d.%m.%Y" # Формат даты
time_format: "%H:%M:%S" # Формат времениПояснения:
settings.yaml— глобальный файл для централизованных настроек системы и сервисов.plugin_management— секция управления плагинами:services— управление сервисами (основа запуска приложения)utilities— управление утилитами (вспомогательные компоненты)
global— секция с глобальными настройками системы:file_base_path— базовый путь для всех ресурсов (файлы, аудио, изображения и т.д.)
logger— настройки логирования:console_enabled— включение/отключение вывода логов в консольfile_enabled— включение/отключение записи логов в файл
datetime_formatter— настройки форматирования дат:default_timezone— часовой пояс по умолчаниюdate_format— формат отображения датыtime_format— формат отображения времени
- Настройки сервисов и утилит — опциональные секции для переопределения параметров конкретных сервисов и утилит:
- Остальные параметры — переопределение настроек из config.yaml сервисов/утилит
- Управление запуском — через секцию
plugin_management(см. раздел "Управление плагинами")
- Описание и смысл конкретных параметров смотрите в соответствующих config.yaml сервисов/утилит.
- Можно добавлять новые секции для других сервисов/утилит по аналогии.
💡 Важные особенности:
Безопасность:
- Никогда не коммитьте API credentials в репозиторий
- Используйте переменные окружения для хранения секретов
Переопределение настроек:
- Можно переопределить любые параметры утилит через глобальные настройки
- Переменные окружения автоматически разрешаются во всех настройках