Настройка конфигурационного файла
Это часть серии статей, посвященной созданию бота с обращением к API сервиса OpenWeatherMap.
- Настройка конфигурационного файла (вы находитесь здесь)
- Работа с HTTP-запросом к OpenWeatherMap API
- Разработка сценария
- Тестирование
На первом шаге мы зарегистрируемся на сайте OpenWeatherMap, получим персональный API-ключ, а затем настроим конфигурационный файл бота.
Получение API-ключа
Получим API-ключ к сервису OpenWeatherMap. API-ключ предназначен для идентификации сервисом определенного клиента, то есть он определяет, какие данные можно ему отдавать.
- Зарегистрируйтесь на сайте OpenWeatherMap.
- В личном аккаунте перейдите во вкладку API keys, скопируйте
Default
ключ или создайте новый в поле Create key. Полученный API-ключ будем хранить в конфигурационном файле ботаchatbot.yaml
.
Теперь переходим к настройке конфигурационного файла бота.
Конфигурационный файл
Создайте конфигурационный файл бота chatbot.yaml
:
# Название проекта
name: weather-api
# Точка входа
entryPoint:
- main.sc
# Параметры NLU:
botEngine: v2
language: ru
nlp:
intentNoMatchThresholds:
phrases: 0.2
patterns: 0.2
injector:
api_key: '***'
slotfilling:
maxSlotRetries: 2
stopOnAnyIntent: false
stopOnAnyIntentThreshold: 0.2
В строке api_key: '***'
укажите вместо ***
ваш API-ключ, полученный ранее.
В этом туториале мы будем использовать процесс дозапроса информации слот-филлинг, поэтому настроим параметры его прерывания:
-
maxSlotRetries
— количество попыток для одного слота. Если клиент ответил указанное количество раз, и слот не был заполнен, процесс слот-филлинга будет прерван. Последняя фраза клиента будет обработана в сценарии бота. Установим две попытки. В дальнейшем, когда будем настраивать заполнение слотов, именно столько фраз будет использовано в полеВопросы
. -
stopOnAnyIntent
— параметр прерывания процесса слот-филлинга по интенту. ЕслиstopOnAnyIntent: true
, то интент будет прерван тогда, когда пользователь захочет обработать другой интент. В нашем сценарии не предусмотрены случаи, когда нужно прервать интент со слот-филлингом по другому интенту. Поэтому установимstopOnAnyIntent: false
. -
stopOnAnyIntentThreshold
— параметр соответствия, задающий минимально необходимую похожесть фразы на один из классов. Является параметром прерывания процесса слот-филлинга по интенту. В ходе разработки NLU-ядра было эмпирически определено, что оптимальное значение этого параметра0.2
.
Теперь перейдем к работе с HTTP-запросом.