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 | Класс, собирающий параметры из сообщения и данных пользователя. | scenarios.user.parametrizer.Parametrizer |
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. | путь/до/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()
Во избежание ошибки:
- Импортируйте локально функцию
get_app_config
в том месте, где необходимо ее использовать. - Убедитесь, чтобы это место не вызывалось при импорте.
class SomeClassUsedInConfig:
def some_method(self):
from smart_kit.configs import get_app_config # корректный пример импорта, без ошибки
app_config = get_app_config()