Перейти к основному содержимому

Настройка конфигурационного файла

Это часть серии статей, посвященной созданию бота с обращением к API сервиса OpenWeatherMap.

  1. Настройка конфигурационного файла (вы находитесь здесь)
  2. Работа с HTTP-запросом к OpenWeatherMap API
  3. Разработка сценария
  4. Тестирование

На первом шаге мы зарегистрируемся на сайте OpenWeatherMap, получим персональный API-ключ, а затем настроим конфигурационный файл бота.

Получение API-ключа

Получим API-ключ к сервису OpenWeatherMap. API-ключ предназначен для идентификации сервисом определенного клиента, то есть он определяет, какие данные можно ему отдавать.

  1. Зарегистрируйтесь на сайте OpenWeatherMap.
  2. В личном аккаунте перейдите во вкладку 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-запросом.