ym88659208ym87991671
Файл конфигурации | Документация для разработчиков
Skip to main content

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

Обновлено 13 октября 2022

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, чтобы сообщить нам о ней