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

Интеграция с Dialogflow

Для того, чтобы бот смог использовать базу знаний вашего проекта, необходимо произвести интеграцию сервиса Dialogflow с платформой Metabot24. Это делается с помощью уникального ключа, связывающего вашего бота и агента DF.

Получение уникального ключа

Для начала следует зайти в настройки созданного вами проекта при помощи нажатия на иконку настроек соответствующего Агента в левом меню DF.

Снимок экрана 2023-02-12 140845.png

Если вы еще не создавали свой проект на сервисе, можете узнать как это сделать в разделе Начало работы с Dialogflow.

В настройках Агента нажмите на ссылку в поле Project ID. Данная ссылка откроет перед вами окно Google Cloud - консоль настроек.

Снимок экрана 2023-02-12 140930.png

Если того потребует сервис – пройдите регистрацию.

Управлять настройками консоли может только тот Google  аккаунт, который является создателем агента в Dialogflow.

В некоторых браузерах привязывается верхнеуровнево Google аккаунт в настройках для синхронизации. Если аккаунт в Dialogflow отличается от аккаунта в браузере, то перед входом в консоль необходимо сменить настройки браузера или открыть консоль в другом браузере без аккаунта.

В новом аккаунте в появившемся окне выбора страны выберите ближайшую страну СНГ - Казахстан. Это никак не повлияет на работу интеграции.

Далее откройте боковое меню нажатием на иконку в левом верхнем углу. В блоке More Products перейдите в раздел API & Services подраздел Credentials.

Снимок экрана 2023-02-12 141129.png

В открывшемся окне следует создать учетные данные. Для этого нажмите на кнопку Create Credentials и выберите Help me choose.

Снимок экрана 2023-02-12 142520.png

Далее в открывшемся окне следует выполнить следующие действия:

  • В блоке Credential Type, необходимо указать какой API будет использоваться, выбрав Dialogflow API.
  • Указать параметры: Application data и No, I'm using them.
  • Нажать на кнопку NEXT.

изображение.png

  • В блоке Service account details указать Название сервисного аккаунта латинскими буквами и нажать на кнопку Create and Continue.

изображение (1).png

  • В блоке Grant this service account access to project указать роль в поле Role – Project – Owner.
  • Нажать на кнопку Continue.

изображение (2).png

  • В следующем диалоговом окне нажать кнопку DONE.

изображение (4).png

Теперь в разделе Service Accounts появился созданный нами аккаунт.

Для создания нового авторизационного ключа нажмите на иконку редактирования аккаунта.

Снимок экрана 2023-02-12 143948.png

В открывшемся окне перейдите в раздел Keys и выберете в выпадающем списке Add key пункт Create new key.

Снимок экрана 2023-02-12 144641.png

Выберите тип ключа JSON и создайте его кнопкой Create.

Снимок экрана 2023-02-12 144841.png

Браузер автоматически скачает файл с закрытым ключом, предложив его сохранить на диск.

Рекомендуем сохранить файл для дальнейшего копирования ключа на платформу.

В информационном сообщении вы получите уведомление об успешном создании и скачивании закрытого ключа.

Теперь файл с ключом можно открыть любым текстовым редактором и скопировать весь текст в буфер обмена.

Передача уникального ключа боту

Выберите бот на платформе Metabot24, который хотите связать с DF.

В разделе Настройки бота выберите пункт Интеграции. Затем нажмите на кнопку Новая привязка чтобы создать новую интеграцию.

Снимок экрана 2023-02-12 145836.png

В боте может быть создано больше 1 одной интеграции с агентами Dialoglow. Для работы с обоими одновременно необходимо указать у интеграции Код для обращений в боте.

Последним шагом заполните следующие параметры в открывшемся диалоговом окне:

  • Интеграционная система - выберите из списка Dialogflow;
  • Название - придумайте название агенту, можно указать такой же, как в Dialogflow;
  • Код - придумайте код - дополнительный уникальный идентификатор. Используется для поиска интеграции, например в JS функциях.
  • Авторизационный ключ (json) - вставьте полностью текст закрытого ключа, полученного вами ранее в Google Cloud.

Нажмите кнопку Создать.

image.png

После этого интеграция успешно создана и бот готов к обучению через Dialogflow.

JS методы для работы с интеграциями NLP

К NLP интеграциям можно обращаться из JS следующими методами:

Название метода Метод
Получить id интеграции бота по коду bot.getIntegrationIdByCode(?string $integrationCode): int|null
Получить id включенной интеграции бота по коду bot.getEnabledIntegrationIdByCode(?string $integrationCode): int|null
Проверить активность интеграции по id bot.isEnabledIntegrationById(?int $integrationId): bool
Проверить активность интеграции по коду bot.isEnabledIntegrationByCode(?string $integrationCode): bool
Присвоить интеграцию лиду по коду lead.setActiveNlpIntegrationByCode(?string $integrationCode): bool

Каждый из методов подробнее расписан ниже.

Получить id интеграции бота по коду

bot.getIntegrationIdByCode(?string $integrationCode)
Описание:

Находит id интеграции по ее коду.

Атрибуты:
Имя Тип Описание
integrationCode string Код интеграции
Возвращает:

int - id интеграции, если она принадлежит боту

или

null - если интеграция не найдена.

Получить id включенной интеграции бота по коду

bot.getEnabledIntegrationIdByCode(?string $integrationCode)
Описание:

Находит id интеграции по ее коду, если интеграция активна.

Атрибуты:
Имя Тип Описание
integrationCode string Код интеграции
Возвращает:

int - id интеграции, если она принадлежит боту и активна

или

null - если интеграция не найдена или не активна.

Проверить активность интеграции по id

bot.isEnabledIntegrationById(?int $integrationId)
Описание:

Проверяет есть ли такая интеграция по id и включена ли она.

Атрибуты:
Имя Тип Описание
integrationId int ID интеграции
Возвращает:

bool - подтверждение активности интеграции.

Проверить активность интеграции по коду

bot.isEnabledIntegrationByCode(?string $integrationCode)
Описание:

Проверяет есть ли такая интеграция по коду и включена ли она.

Атрибуты:
Имя Тип Описание
integrationId int ID интеграции
Возвращает:

bool - подтверждение активности интеграции.

Присвоить интеграцию лиду по коду

lead.setActiveNlpIntegrationByCode(?string $integrationCode)
Описание:

Присваивает интеграцию лиду в соответствии с кодом интеграции.

Атрибуты:
Имя Тип Описание
integrationCode string Код интеграции
Возвращает:

bool - подтверждение присвоения интеграции.