Файл конфигурации


SmartApp Framework использует конфигурацию, чтобы понимать, из каких компонентов состоит проект. Файл конфигурации представляет собой обычный Python модуль с объявленными глобальными переменными. Например:

NORMALIZER_ADDRESS = "http://my_normalization.service/normalization"
MODE = "debug"

По умолчанию модуль с конфигурацией находится в корне нового проекта под именем app_config.py. Чтобы использовать другой модуль, воспользуйтесь переменной окружения SMART_KIT_APP_CONFIG:

SMART_KIT_APP_CONFIG="my_package.my_module" python manage.py <command>

Параметры модуля

Параметр Описание Значение по умолчанию
CONFIGS_PATH

Путь до директории с *.yml конфигурацией.

os.path.join(static_path, "./configs"
DIALOGUE_MANAGER

Класс, отвечающий за выбор подходящего сценария

smart_kit.models.dialogue_manager.DialogueManager
LOCAL_TESTING

Класс, который используется при вызове команды local_testing из manage.py

smart_kit.testing.local.CLInterface

MAIN_LOOP

Класс для создания главного цикла приложения

smart_kit.start_points.main_loop_kafka.MainLoop
MODE

Режим, в котором работает приложение.

debug
MODEL

Классотвечающий за обработку входящих сообщений

smart_kit.models.smartapp_model.SmartAppModel
NORMALIZER

Класс, используемый для предобработки. Используется при локальном тестировании.

smart_kit.text_preprocessing.local_text_normalizer.LocalTextNormalizer
NORMALIZER_ADDRESS

Адрес сервиса предобработки. Используется при локальном тестировании.

http://127.0.0.1:9000/normalize
NORMALIZATION_CACHE

Класс, используемый для кэширования в нормализации.

smart_kit.utils.cache.JSONCache
NORMALIZATION_CACHE_TTL

Время жизни кэша нормализации.

0
PARAMETRIZER

Класс, собирающий параметры из сообщения и данных пользователя.

smart_kit.user.parametrizer.SmartAppParametrizer
PLUGINS

Кортеж плагинов.

()
PPS_URL

Адрес сервиса, на котором можно по ключу получить подходящие фразы для выбранного персонажа.

""
REFERENCES_PATH

Путь до директории с DSL файлами.

os.path.join(static_path, "./configs")
RESOURCES

Класс, используемый для загрузки компонентов DSL

smart_kit.resources.SmartAppResources
SECRET_PATH

Путь до директории с файлами секретов.

os.path.join(static_path, "./configs")
SETTINGS

Класс, используемый для хранения настроек приложения.

smart_kit.configs.settings.Settings

STATIC_PATH

Путь до директории static.

путь/до/manage.py/static
USER

Класс, используемый для создания объекта пользователя.

smart_kit.user.user_model.SmartAppUser

Расширение параметров

Чтобы дополнить модуль параметрами, которые не были указаны в оригинальном конфигурационном файле, используйте функцию get_app_config из пакета smart_kit.config. В этом случае параметрам будут выставлены значения по умолчанию.

from smart_kit.configs import get_app_config

app_config = get_app_config()
app_config  # Модуль конфигурации

При использовании функции get_app_config происходит импорт модуля app_config.py. Поэтому при использовании get_app_config в классах, которые переопределены в app_config.py, может возникнуть циклическая зависимость.

from smart_kit.configs import get_app_config  # пример с ошибкой

class SomeClassUsedInConfig:
	def some_method(self):
		app_config = get_app_config()

Во избежание ошибки:

  1. Импортируйте локально функцию get_app_config в том месте, где необходимо её использовать.
  2. Убедитесь, чтобы это место не вызывалось при импорте.
class SomeClassUsedInConfig:
	def some_method(self):
		from smart_kit.configs import get_app_config  # корректный пример импорта, без ошибки
		app_config = get_app_config()

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней