Интеграция и настройка NLP
Начало работы с Dialogflow
Dialogflow — это платформа для обучения естественному языку, которая позволит вашему боту лучше понимать требования и желания пользователей.
Сервис доступен по ссылке: https://dialogflow.cloud.google.com/#/login
В этой статье мы расскажем вам с чего начать работу и как создать свой первый проект в Dialogflow.
Создание проекта
Перед началом работы следует пройти регистрацию. Зарегистрироваться на сайте сервиса Dialogflow можно только при помощи аккаунта Google по кнопке:
После прохождения регистрации перед вами откроется рабочее пространство Dialogflow.
Основным понятием в работе с DF является Агент — это проект сервиса DF в котором будет создаваться, настраиваться и храниться база знаний вашего бота. Для начала следует создать своего первого Агента. Для этого нажмите на кнопку Create Agent в правом нижнем углу рабочей зоны или в левом меню DF.
В открывшемся диалоговом окне следует отредактировать следующие поля:
- Agent Name — наименование вашего Агента;
- Default Language — язык на котором бот будет отвечать пользователю;
- Default Time Zone — часовой пояс.
После нажатия кнопки Create откроется раздел Intents. В этом разделе будет создаваться список намерений, который позволит обучить вашего бота распознавать желания пользователей.
Автоматически в данном разделе всегда создаются намерения Default Fallback Intent и Default Welcome Intent. Их, как и в последующем созданные вами намерения, можно удалить одним из способов:
- Навести курсор на намерение и нажать на иконку удаления;
- Выделить все ненужные намерения и нажать на кнопку вверху списка Delete.
Таким образом создается рабочее пространство, которое в последующем можно заполнить необходимыми вашему боту намерениями и обучить его естественному языку.
Архитектор платформы по работе с NLP не рекомендует удалять системные намерения, так как их можно будет спокойно использовать в логике бота, привязывая к существующим скриптам.
Поздравляем, вы создали свой первый проект в Dialogflow!
Интеграция с Dialogflow
Для того, чтобы бот смог использовать базу знаний вашего проекта, необходимо произвести интеграцию сервиса Dialogflow с платформой Metabot24. Это делается с помощью уникального ключа, связывающего вашего бота и агента DF.
Получение уникального ключа
Для начала следует зайти в настройки созданного вами проекта при помощи нажатия на иконку настроек соответствующего Агента в левом меню DF.
Если вы еще не создавали свой проект на сервисе, можете узнать как это сделать в разделе Начало работы с Dialogflow.
В настройках Агента нажмите на ссылку в поле Project ID. Данная ссылка откроет перед вами окно Google Cloud — консоль настроек.
Если того потребует сервис — пройдите регистрацию.
Управлять настройками консоли может только тот Google аккаунт, который является создателем агента в Dialogflow. В некоторых браузерах привязывается верхнеуровнево Google аккаунт в настройках для синхронизации. Если аккаунт в Dialogflow отличается от аккаунта в браузере, то перед входом в консоль необходимо сменить настройки браузера или открыть консоль в другом браузере без аккаунта.
В новом аккаунте в появившемся окне выбора страны выберите ближайшую страну СНГ — Казахстан. Это никак не повлияет на работу интеграции.
Далее откройте боковое меню нажатием на иконку в левом верхнем углу. В блоке More Products перейдите в раздел API & Services подраздел Credentials.
В открывшемся окне следует создать учетные данные. Для этого нажмите на кнопку Create Credentials и выберите Help me choose.
Далее в открывшемся окне следует выполнить следующие действия:
1. В блоке Credential Type, необходимо указать какой API будет использоваться, выбрав Dialogflow API.
2. Указать параметры: Application data и No, I'm using them.
3. Нажать на кнопку NEXT.
4. В блоке Service account details указать Название сервисного аккаунта латинскими буквами и нажать на кнопку Create and Continue.
5. В блоке Grant this service account access to project указать роль в поле Role – Project – Owner.
6. Нажать на кнопку Continue.
7. В следующем диалоговом окне нажать кнопку DONE.
Теперь в разделе Service Accounts появился созданный нами аккаунт.
Для создания нового авторизационного ключа нажмите на иконку редактирования аккаунта.
В открывшемся окне перейдите в раздел Keys и выберете в выпадающем списке Add key пункт Create new key.
Выберите тип ключа JSON и создайте его кнопкой Create.
Браузер автоматически скачает файл с закрытым ключом, предложив его сохранить на диск.
Рекомендуем сохранить файл для дальнейшего копирования ключа на платформу.
В информационном сообщении вы получите уведомление об успешном создании и скачивании закрытого ключа.
Теперь файл с ключом можно открыть любым текстовым редактором и скопировать весь текст в буфер обмена.
Передача уникального ключа боту
Выберите бот на платформе Metabot24, который хотите связать с DF.
В разделе Настройки бота выберите пункт Интеграции. Затем нажмите на кнопку Новая привязка чтобы создать новую интеграцию.
В боте может быть создано больше 1 одной интеграции с агентами Dialoglow. Для работы с обоими одновременно необходимо указать у интеграции Код для обращений в боте.
Последним шагом заполните следующие параметры в открывшемся диалоговом окне:
- Интеграционная система — выберите из списка Dialogflow;
- Название — придумайте название агенту, можно указать такой же, как в Dialogflow;
- Код — придумайте код - дополнительный уникальный идентификатор. Используется для поиска интеграции, например в JS функциях.
- Авторизационный ключ (json) — вставьте полностью текст закрытого ключа, полученного вами ранее в Google Cloud.
Нажмите кнопку Создать.
После этого интеграция успешно создана и бот готов к обучению через Dialogflow.
С NLP интеграциями так же можно работать с помощью методов JS. Все методы и их описание можно посмотреть в Справочнике по функциям JS
Dialogflow: Small talk
Ваш бот может научиться поддерживать светскую беседу без дополнительного развития и отвечать предопределенными фразами. Для этого в Dialogflow существует форма Small talk, которую можно использовать, чтобы настроить ответы на самые популярные запросы.
Перед прочтением рекомендуем ознакомиться с уроком по Созданию бота с поддержкой NLP
Для того чтобы бот отвечал на обращение пользователя не описанные в намерениях, необходимо создать скрипт Живой разговор:
- Укажите название скрипта. Например: "Живой разговор";
- Установить опцию Включить NLP;
- Установить опцию Использовать определение NLP Action;
- Установить интеграцию с функцией SmallTalk в поле NLP Action - установить значение " .* ";
- Остальные параметры без изменения.
Для того чтобы вывести Small Talk ответ бота по распознанному NLP Action, в скрипт нужно добавить команду Отправить текст и в поле Текст указать {{ $nlpLastReponseText }}. Таким образом бот пришлет пользователю сообщение с ответом, полученным от DialogFlow Small Talk.
В блоке Меню необходимо добавить пункт меню Повторяем, применяя следующие параметры:
- В поле Код укажите любое значение, например а{300} / 1 / НЛП;
- Установите опцию Скрыть весь пункт меню.
Именно для того, чтобы логика распознавания намерения вначале проверялась в базе знаний NLP, мы установили у пункта меню опцию Скрыть весь пункт меню. Таким образом, меню существует в логике, но не видно на экране.
В Dialogflow нужно включить функцию Живой разговор, где в свою очередь его тоже можно обучить. Для этого нужно перейти в раздел Small talk, активировав параметр Enable.
Ниже в разделе Small Talk Customization Progress нужно настроить ответы на возможные фразы и вопросы от пользователей по тематикам. Порядковое перечисление строк будет означать, что у бота на данный ответ может быть использован один из выбранных вариантов ответа.
Если вы захотите добавить в ответе абзацное разделение, то нажмите Shift + Enter