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

Для того, чтобы бот смог использовать базу знаний вашего проекта, необходимо произвести интеграцию сервиса Dialogflow с платформой [**Metabot24**](https://app.metabot24.com/home). Это делается с помощью уникального ключа, связывающего вашего бота и агента DF.

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

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

[![Снимок экрана 2023-02-12 140845.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/LlgCRTT7New0khyA-snimok-ekrana-2023-02-12-140845.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/LlgCRTT7New0khyA-snimok-ekrana-2023-02-12-140845.png)

<p class="callout info">Если вы еще не создавали свой проект на сервисе, можете узнать как это сделать в разделе **[Начало работы с Dialogflow](https://docs.metabot24.ru/books/metabot-platform/page/nacalo-raboty-s-dialogflow "Начало работы с Dialogflow")**.</p>

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

[![Снимок экрана 2023-02-12 140930.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/3N1NGlEBhLIJe4U8-snimok-ekrana-2023-02-12-140930.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/3N1NGlEBhLIJe4U8-snimok-ekrana-2023-02-12-140930.png)

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

<p class="callout info">Управлять настройками консоли может только тот Google аккаунт, который является создателем агента в Dialogflow. В некоторых браузерах привязывается верхнеуровнево Google аккаунт в настройках для синхронизации. Если аккаунт в Dialogflow отличается от аккаунта в браузере, то перед входом в консоль необходимо сменить настройки браузера или открыть консоль в другом браузере без аккаунта.</p>

<p class="callout warning">В новом аккаунте в появившемся окне выбора страны выберите ближайшую страну СНГ — Казахстан. Это никак не повлияет на работу интеграции.</p>

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

[![Снимок экрана 2023-02-12 141129.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/f5JK2YAC2qIwim1t-snimok-ekrana-2023-02-12-141129.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/f5JK2YAC2qIwim1t-snimok-ekrana-2023-02-12-141129.png)

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

[![Снимок экрана 2023-02-12 142520.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/hClW66d9utl2FS6L-snimok-ekrana-2023-02-12-142520.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/hClW66d9utl2FS6L-snimok-ekrana-2023-02-12-142520.png)

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

 1. В блоке **Credential Type**, необходимо указать какой API будет использоваться, выбрав **Dialogflow API**.

 2. Указать параметры: **Application data** и **No, I'm using them**.

 3. Нажать на кнопку **NEXT**.

[![изображение.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/9fE6KQUUqfhJmJ3e-izobrazenie.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/9fE6KQUUqfhJmJ3e-izobrazenie.png)

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

[![изображение (1).png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/omh5zEZAV18Oo2zb-izobrazenie-1.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/omh5zEZAV18Oo2zb-izobrazenie-1.png)

 5. В блоке **Grant this service account access to project** указать роль в поле **Role – Project – Owner**.

 6. Нажать на кнопку **Continue**.

[![изображение (2).png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/LYGacqV6Sdw8NsDM-izobrazenie-2.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/LYGacqV6Sdw8NsDM-izobrazenie-2.png)

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

[![изображение (4).png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/k4pguJqlNyDQv9qo-izobrazenie-4.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/k4pguJqlNyDQv9qo-izobrazenie-4.png)

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

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

[![Снимок экрана 2023-02-12 143948.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/d74GvfCSy6PNmVZX-snimok-ekrana-2023-02-12-143948.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/d74GvfCSy6PNmVZX-snimok-ekrana-2023-02-12-143948.png)

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

[![Снимок экрана 2023-02-12 144641.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/aVdacrpvxwg9gHaU-snimok-ekrana-2023-02-12-144641.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/aVdacrpvxwg9gHaU-snimok-ekrana-2023-02-12-144641.png)

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

[![Снимок экрана 2023-02-12 144841.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/BDVSpF8OoB8C6m3q-snimok-ekrana-2023-02-12-144841.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/BDVSpF8OoB8C6m3q-snimok-ekrana-2023-02-12-144841.png)

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

<p class="callout warning">Рекомендуем сохранить файл для дальнейшего копирования ключа на платформу.</p>

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

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

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

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

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

[![Снимок экрана 2023-02-12 145836.png](https://docs.metabot24.ru/uploads/images/gallery/2023-02/scaled-1680-/XXI37CpE7xsGsEYt-snimok-ekrana-2023-02-12-145836.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-02/XXI37CpE7xsGsEYt-snimok-ekrana-2023-02-12-145836.png)

<p class="callout info">В боте может быть создано больше 1 одной интеграции с агентами Dialoglow. Для работы с обоими одновременно необходимо указать у интеграции **Код** для обращений в боте.</p>

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

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

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

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2023-04/scaled-1680-/51lTUZJKvScGWxJT-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-04/51lTUZJKvScGWxJT-image.png)

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

### Как проверить какой агент настроен

При наличии нескольких ботов в бизнесе и нескольких интеграций ДФ необходимо контролировать и проверять какие именно интеграции настроены.

Для этого заходим в раздел Интеграции в выбранном боте и выбираем интеграцию с Dialogflow. В авторотационном ключе будет указано id проекта.

[![Снимок экрана 2024-06-25 145131.png](https://docs.metabot24.ru/uploads/images/gallery/2024-06/scaled-1680-/q9FypsmhEk7i9fmj-snimok-ekrana-2024-06-25-145131.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-06/q9FypsmhEk7i9fmj-snimok-ekrana-2024-06-25-145131.png)

Сверяем его с id проекта в настройках агента Dialogflow.

[![Снимок экрана 2024-06-25 145239.png](https://docs.metabot24.ru/uploads/images/gallery/2024-06/scaled-1680-/ALEXIt17nRHe8MeS-snimok-ekrana-2024-06-25-145239.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-06/ALEXIt17nRHe8MeS-snimok-ekrana-2024-06-25-145239.png)

### Подключение нескольких интеграций

При использовании Dialogflow с контекстами, возникла необходимость в создании ботов с использованием нескольких агентов Dialogflow, для этого есть возможность настраивать несколько интеграций.

Одновременное использование нескольких предварительно обученных нейронных сетей будет полезно для тех кому необходимо:

- Иметь в одном боте несколько баз знаний по разным продуктам, сервисам или проблематикам;
- Иметь в одном внешнем боте несколько различных ботов с поддержкой естественного языка (NLP);
- Иметь поддержку нескольких языков.

Для использования этой возможности вам необходимо создать две или более нейронных сетей, настроить интеграции и затем в нужный момент переключаться между ними с помощью команд JavaScript в сценариях вашего бота.

#### Настройка нескольких интеграций

Подключение нескольких интеграций Dialogflow производится в разделе главного меню **Настройки** **бота** в подразделе **Интеграции**.

В сервисе Dialogflow должно быть создано несколько Агентов, минимум 2 и настроены учетные данные в разделе **API &amp; Services** в подразделе **Credentials**.

Далее необходимо создать интеграции с указанием следующих параметров:

- **Опция Включена** — активность опции определяет активность интеграции;
- **Интеграционная система** — Dialogflow (nlp);
- **Название** — название интеграции, уникальность контролируется в пределах бота;
- **Код** — дополнительный идентификатор. Используется для поиска интеграции, например, в JavaScript функциях;
- **Авторизационный ключ (json)** — закрытый ключ, который предоставляет сервис Dialogflow.

[![image.png](https://docs.metabot24.ru/uploads/images/gallery/2023-04/scaled-1680-/51lTUZJKvScGWxJT-image.png)](https://docs.metabot24.ru/uploads/images/gallery/2023-04/51lTUZJKvScGWxJT-image.png)

В списке **Интеграции с ботом**, интеграция по умолчанию отмечена серым цветом под ID интеграции.

Изменить интеграцию по умолчанию можно переместив ее в начало списка, воспользовавшись функциональной кнопкой **Перетащите** для изменения порядка в блоке **Операции**.

[![Снимок экрана 2024-07-10 131416.png](https://docs.metabot24.ru/uploads/images/gallery/2024-07/scaled-1680-/433YzAwnhAXisNX8-snimok-ekrana-2024-07-10-131416.png)](https://docs.metabot24.ru/uploads/images/gallery/2024-07/433YzAwnhAXisNX8-snimok-ekrana-2024-07-10-131416.png)

<p class="callout warning">Надпись **<span class="font-italic">NLP интеграция по умолчанию</span>** обновляется только после обновления страницы, поэтому после смены сортировки интеграций необходимо обновить страницу.</p>

<p class="callout info align-left">С NLP интеграциями так же можно работать с помощью методов JS. Все методы и их описание можно посмотреть в **[Справочнике по функциям JS](https://docs.metabot24.ru/books/7-spravocnik-po-funkciyam-js/page/spravocnik-vsex-funkcii-Cgt "Справочник всех функций")**</p>