На этой странице рассказывается, как создать приложение Google Chat, которое может понимать естественный язык и отвечать на нем с помощью Dialogflow. В этом руководстве используется Dialogflow CX, который напрямую интегрирован с Google Chat. Вы также можете использовать Dialogflow ES, чтобы создать приложение Dialogflow ES для Google Chat, следуя инструкциям из руководства по Dialogflow ES для Google Chat.
Например, рассмотрим приложение Chat, которое помогает людям арендовать автомобили. Пользователь может написать: "Я хочу арендовать автомобиль". Приложение Chat может ответить на запрос вопросом, например "Где вы хотите забрать автомобиль?". Таким образом, оно начинает разговор с пользователем, понимает его речь и отвечает на нее, помогая забронировать автомобиль.
Это лишь один из возможных вариантов. Приложения Dialogflow Chat полезны в самых разных ситуациях. Если требуется естественная человеческая речь, используйте приложение Dialogflow Chat. Готовые агенты помогут вам быстро начать работу и продемонстрируют возможности Dialogflow, например:
- Бронирование авиабилетов
- Записываться на прием к врачу.
- Как заказать доставку еды
- Отвечать на вопросы о каталоге товаров, например о том, доступны ли товары в других цветах.
-
Рисунок 1. Выбор готового агента для приложения Dialogflow Chat. -
Рисунок 2. Тестирование агента в Dialogflow CX, чтобы убедиться, что логика и конфигурация агента работают должным образом. На схеме показана последовательность тематических страниц, посвященных определенным этапам диалога, например выбору места получения и возврата автомобиля, а также логика, связывающая эти страницы. Разговор тестируется в симуляторе. -
Рисунок 3. Настроить приложение Chat для обработки ответов с помощью агента Dialogflow CX на странице конфигурации Chat API в консоли Google Cloud. -
Рисунок 4. Обсуждение бронирования автомобиля с помощью приложения Dialogflow Chat в Google Chat.
Цели
- Настройте среду.
- Создайте и разверните агента Dialogflow CX.
- Создайте и разверните приложение Chat на основе агента Dialogflow CX.
- Проверьте приложение Chat.
Требования
- Аккаунт Google Workspace версии Business или Enterprise с доступом к Google Chat.
- Проект Google Cloud с включенной оплатой. Чтобы проверить, включены ли платежные функции для существующего проекта, следуйте инструкциям в разделе Как проверить статус платежей для проектов. Чтобы создать проект и настроить оплату, ознакомьтесь со статьей Как создать проект Google Cloud.
Архитектура
На приведенной ниже схеме показана архитектура приложения Chat, созданного с помощью Dialogflow.
На приведенной выше схеме пользователь, взаимодействующий с чат-ботом Dialogflow, получает информацию следующим образом:
- Пользователь отправляет сообщение в Chat приложению Chat в прямой переписке или чат-группе.
- Виртуальный агент Dialogflow, размещенный в Google Cloud, получает и обрабатывает сообщение, чтобы создать ответ.
- При необходимости агент Dialogflow может взаимодействовать с внешними сторонними сервисами, например системой управления проектами или инструментом для создания заявок, с помощью веб-перехватчика Dialogflow.
- Агент Dialogflow отправляет ответ обратно в сервис приложения Chat в Chat.
- Ответ будет отправлен в чат-группу.
Как настроить среду
Прежде чем использовать API Google, их нужно включить в облачном проекте Google Cloud. В одном облачном проекте Google Cloud можно включить один или несколько API.В консоли Google Cloud включите Google Chat API и Dialogflow API.
Убедитесь, что вы включаете API в нужном облачном проекте, и нажмите Далее.
Убедитесь, что вы включаете нужные API, и нажмите Включить.
Как создать агента Dialogflow CX
Агент Dialogflow CX – это виртуальный агент, который может одновременно вести несколько разговоров с конечными пользователями. Это модуль понимания естественного языка, который распознает нюансы человеческой речи. Dialogflow переводит текст, который конечный пользователь вводит во время разговора, в структурированные данные, понятные вашим приложениям и сервисам. Вы разрабатываете агента Dialogflow, который будет вести диалоги, необходимые для вашей системы.
Агент Dialogflow похож на оператора колл-центра. Вы обучаете их обоим обрабатывать ожидаемые сценарии разговоров, и ваше обучение не должно быть слишком явным.
Вот как создать агента Dialogflow CX:
Откройте консоль Dialogflow CX. Нажмите на значок меню > Dialogflow CX.
Выберите проект Google Cloud. Чтобы найти проект, возможно, вам потребуется нажать Все и выполнить поиск.
Теперь вы можете выбрать готового агента или создать собственного. Если вы хотите подробнее изучить возможности настройки агентов позже, выберите одного из готовых агентов. Они также помогут вам понять, что могут делать агенты.
Чтобы выбрать готового агента, выполните следующие действия:
- Нажмите Использовать готовых агентов.
Выберите готового агента. В этом руководстве мы будем использовать вариант Туризм: аренда автомобилей.
Агенты оцениваются как начинающие, средние или продвинутые в зависимости от того, сколько функций они используют и насколько сложна их логика ведения диалога. При выборе агента среднего или продвинутого уровня может потребоваться настроить его параметры, в том числе включить функции и API в консоли Google Cloud.
Нажмите Импортировать как агента.
Чтобы создать собственного агента, выполните следующие действия:
- Нажмите Создать агента.
- Выберите Автоматически создать, чтобы создать агента хранилища данных, или Создать своего агента, чтобы создать агента другого типа.
Подробные инструкции по созданию агента приведены в статье Как создать агента Dialogflow CX.
Настройте основные параметры агента:
- В поле Отображаемое название введите название.
- Выберите предпочитаемое местоположение. Если вы хотите изменить расширенные настройки местоположения, нажмите Изменить.
- Выберите часовой пояс.
- Выберите язык по умолчанию для агента. После создания агента изменить язык по умолчанию нельзя.
Нажмите Создать. Dialogflow CX начнет создавать агента, а затем покажет поток запуска по умолчанию.
При необходимости настройте агента. Подробные инструкции по настройке агента приведены в статье Как создать агента Dialogflow CX.
Рекомендуем протестировать агента:
- Нажмите Протестировать агента.
- Выберите Протестировать агента в среде.
- В разделе "Среда" выберите Черновик.
- В Flow выберите Default Start Flow (Поток запуска по умолчанию).
- В разделе "Страница" выберите Стартовая страница.
- В поле чата Поговорить с агентом введите
Helloи нажмите Ввод. Агент представляется. - Пройдите тест, пообщавшись с образцом.
Агент Dialogflow CX создан. Вернитесь в консоль Dialogflow CX. Нажмите на значок меню > Dialogflow CX.
В разделе Агенты нажмите > Копировать название. Сохраните это название, так как оно понадобится вам при настройке приложения Chat.
Как создать приложение Chat и подключить его к агенту Dialogflow
После создания агента Dialogflow CX выполните следующие действия, чтобы превратить его в приложение Chat:
В консоли Google Cloud перейдите к Google Chat API. Выполните поиск по запросу "Google Chat API" и нажмите Google Chat API, а затем Управление.
Нажмите Настройки и настройте приложение Chat:
- В поле Название приложения введите
Dialogflow App. - В поле URL аватара введите
https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png. - В поле Описание введите
Responds to real human conversation. - В разделе Функциональность выберите Присоединяться к чат-группам и групповым чатам.
- В разделе Настройки подключения выберите Dialogflow.
- В разделе Настройки Dialogflow выберите Dialogflow CX.
- В поле Название ресурса агента или среды вставьте название агента Dialogflow CX, скопированное в конце раздела Создайте агента Dialogflow CX.
- Предоставьте доступ к приложению "Чат" определенным пользователям и группам в домене и введите свой адрес электронной почты.
- В разделе Журналы выберите Регистрировать ошибки в Logging.
- В поле Название приложения введите
Нажмите Сохранить.
Приложение Chat готово получать сообщения и отвечать на них.
Как протестировать приложение Chat
Протестируйте приложение Dialogflow CX Chat, отправив ему сообщение в Google Chat.
Откройте Google Chat, используя аккаунт Google Workspace, который вы указали, когда добавляли себя в качестве доверенного тестировщика.
- Нажмите Новый чат.
- В поле Добавьте одного или нескольких пользователей введите название приложения Chat.
Выберите приложение Chat в результатах поиска. Откроется прямая переписка.
В новой прямой переписке с приложением введите
Helloи нажмитеenter.Приложение Dialogflow Chat представится.
- Пройдите тест, используя пример диалога.
Пример тестового диалога
Чтобы протестировать приложение Dialogflow CX Chat в консоли Dialogflow CX или Google Chat, проведите следующий диалог. Объяснение помогает понять, как агент Dialogflow CX интерпретирует естественный язык пользователя и создает ответ на естественном языке на каждом этапе разговора. Этот пример диалога основан на готовом агенте Travel: car rental (Путешествия: аренда автомобилей).
| Dialog | Описание |
|---|---|
|
Конечный пользователь: Здравствуйте! Агент: Здравствуйте! Я виртуальный агент по прокату автомобилей. Я могу помочь вам забронировать автомобиль. Чем я могу вам помочь? |
|
|
Конечный пользователь. Я хочу взять машину напрокат. Агент. Где вы хотите забрать автомобиль? |
|
|
Конечный пользователь: Лас-Вегас Агент: Хорошо, самовывоз будет в Лас-Вегасе. Агент. Место возврата отличается от места получения? |
|
|
Конечный пользователь: да. Я верну машину в Лос-Анджелесе. Агент. Хорошо, вы сдадите автомобиль в Лос-Анджелесе. Агент. На какую дату и время вы хотите забрать автомобиль? |
|
|
Конечный пользователь: Я хочу забрать машину 5 марта в полдень. Агент. В какой день и время вы хотите вернуть автомобиль? |
|
|
Конечный пользователь: 15 марта в полдень. Агент. Итак, вы хотите забрать автомобиль в Лас-Вегасе 5 марта 2024 г. в 12:00 и вернуть его в Лос-Анджелесе 15 марта 2024 г. в 12:00? Все верно? |
|
|
Конечный пользователь: Да, спасибо. Агент: Отлично! Теперь выберите автомобиль. Агент. Вы хотите взять в аренду автомобиль эконом-класса или класса люкс? |
|
|
Конечный пользователь: экономкласс. Агент. Вы хотите арендовать автомобиль или грузовик Cymbal? |
|
|
Конечный пользователь: Cymbal Truck. Агент. Аренда грузовика Cymbal стоит 50,33 доллара США в день. В нем могут разместиться четыре человека. В номере есть радио AM/FM. Хотите перейти к оплате? Конечный пользователь: да. |
|
|
Агент. Какую карту вы будете использовать? Конечный пользователь: Altostrat Агент: Введите номер карты. Конечный пользователь: 1234 1234 1234 1234 Агент: Как указано имя на карте? Конечный пользователь: Чарли Агент: Какой у вас платежный адрес? Конечный пользователь: 1800 Amphibious Blvd. Mountain View, CA Агент: Какой почтовый индекс указан в платежном адресе? Конечный пользователь: 94045 Агент: Вы заберете автомобиль Cymbal Car в Лас-Вегасе 5 марта 2024 г. в 12:00 и вернете его 15 марта 2024 г. в 12:00. Общая стоимость поездки составит 175,38 долл.США. Агент: Спасибо, что воспользовались нашим сервисом. Желаем вам хорошего дня! |
|
Как отправлять сообщения с карточками из Dialogflow
Dialogflow может отвечать текстовыми или карточными сообщениями. Чтобы ответить сообщением с карточкой, укажите его как пользовательскую полезную нагрузку в выполнении.
В приведенном ниже коде JSON показано, как отправить сообщение с карточкой в качестве пользовательской полезной нагрузки в ответе на запрос:
JSON
{ "hostAppDataAction": { "chatDataAction": { "createMessageAction": {
"message": { "cardsV2": [{
"cardId": "createCardMessage",
"card": {
"header": {
"title": "A card message!",
"subtitle": "Sent from Dialogflow",
"imageUrl": "https://developers.google.com/chat/images/chat-product-icon.png",
"imageType": "CIRCLE"
},
"sections": [{ "widgets": [{ "buttonList": { "buttons": [{
"text": "Read the docs!",
"onClick": { "openLink": {
"url": "https://developers.google.com/workspace/chat"
}}
}]}}]}]
}
}]}
}}}}
Ограничения и рекомендации
- При использовании приложений Google Chat с Dialogflow объекты событий чата имеют следующие ограничения и особенности:
- События в приложении Home. Поддержка событий
APP_HOMEпока недоступна. - Входные данные запроса Dialogflow. Текст, отправленный в качестве входных данных запроса агенту Dialogflow, зависит от типа события:
MESSAGE: значение поляargumentTextиз сообщения чата.APP_COMMAND: строка"APP_COMMAND_PAYLOAD".ADDED_TO_SPACE: строка"ADDED_TO_SPACE_PAYLOAD".REMOVED_FROM_SPACE: строка"REMOVED_FROM_SPACE_PAYLOAD".CARD_CLICKED: строка"BUTTON_CLICKED_PAYLOAD".WIDGET_UPDATED: строка"WIDGET_UPDATED_PAYLOAD"(используется для автозаполнения).
- Полная полезная нагрузка события. Полная полезная нагрузка JSON события взаимодействия в чате отправляется в Dialogflow в поле
WebhookRequest.payload. Вы можете получить доступ к этой информации в веб-перехватчике Dialogflow. Подробнее о запросах webhook в Dialogflow CX…
- События в приложении Home. Поддержка событий
- Что нужно учитывать при обработке команд и получении данных из карточек или диалоговых окон:
- Если агенту Dialogflow нужно обработать полезную нагрузку JSON события взаимодействия с чатом, он может сделать это с помощью веб-перехватчика Dialogflow, чтобы проверить пользовательскую полезную нагрузку в параметре запроса.
- Чтобы показать диалоговое окно из агента Dialogflow, ответьте одним специальным объектом JSON, который содержит объект
RenderActionsс навигациейpushCard. - Чтобы обрабатывать данные, введенные в карточки, можно использовать веб-перехватчик Dialogflow и отвечать с помощью одной специальной полезной нагрузки JSON, содержащей подходящее действие.
- Предварительный просмотр ссылок не поддерживается.
- Если агент Dialogflow отвечает одним сообщением, оно отправляется в Google Chat синхронно. Если агент Dialogflow отвечает несколькими сообщениями, все они отправляются в Chat асинхронно с помощью метода
createресурсаspaces.messagesв Chat API. Метод вызывается один раз для каждого сообщения. - При использовании интеграции Dialogflow CX с Chat агент Dialogflow и приложение Chat должны быть настроены в одном и том же облачном проекте Google Cloud. Если вам нужно настроить Dialogflow и Chat в разных облачных проектах, вы можете настроить промежуточный сервер для подключения. Информацию о том, как это сделать, можно найти в примере интеграции Chat с Dialogflow CX на GitHub.
Устранение неполадок
Чтобы отладить приложение Chat, сначала изучите журналы ошибок. Поскольку в этом приложении используется Dialogflow, вам доступны следующие ресурсы для ведения журналов и устранения неполадок:
Журналы дополнений Google Workspace. Запрашивайте журналы, чтобы получить подробную информацию о поведении приложения Chat, в том числе о его взаимодействии с Chat. Подробнее о запросах к журналам в дополнениях Google Workspace…
Ошибки приложения Google Chat. Общие сообщения об ошибках в приложении Chat и способы их устранения описаны в статье Как устранять неполадки в приложении Chat.
Dialogflow CX Cloud Logging. Убедитесь, что в настройках агента Dialogflow включена функция Cloud Logging, чтобы получать подробные журналы выполнения, в том числе ошибки агента и взаимодействия с веб-перехватчиком. Подробнее о том, как включить и настроить эту функцию, рассказывается в документации по настройкам агента Dialogflow CX. Эти журналы можно посмотреть в Logs Explorer в консоли Google Cloud.
История чатов Dialogflow CX. Просматривайте прошлые взаимодействия, чтобы понять ход разговора и выявить проблемы. Подробнее об истории чата…
Общие сведения об устранении неполадок в Dialogflow. Если у вас возникли проблемы с Dialogflow, ознакомьтесь с руководством по устранению неполадок в Dialogflow CX.
Организовать
Чтобы избежать списания средств с аккаунта Google Cloud за ресурсы, использованные в этом руководстве, рекомендуем удалить облачный проект.
- В консоли Google Cloud перейдите на страницу Управление ресурсами. Нажмите Меню > IAM и администрирование > Управление ресурсами.
- В списке проектов выберите проект, который хотите удалить, и нажмите Удалить .
- В диалоговом окне введите идентификатор проекта и нажмите Закрыть, чтобы удалить проект.
Статьи по теме
- Dialogflow CX использует конечный автомат для создания агентов Dialogflow. Это позволяет вам контролировать ход разговора, повышать удобство для конечных пользователей и улучшать процесс разработки. При создании приложения Dialogflow Chat мы рекомендуем использовать Dialogflow CX.
- Подробнее о создании и настройке агентов Dialogflow CX рассказывается в статье Агенты Dialogflow CX.
- Подробные инструкции по созданию и настройке агентов приведены в статье Как создать агента Dialogflow CX.
- Практическая работа. Пример того, как создать агента хранилища данных Dialogflow CX, можно найти в приложении для чата на основе знаний из практической работы Создание приложений для Google Chat с помощью Gemini.
- Практическая работа. Пример того, как создать разговорного агента Dialogflow CX, можно найти в приложении для Chat, которое рассматривается в практической работе Создание приложений для Google Chat с помощью Gemini.
- Dialogflow ES – ещё один способ использовать Dialogflow с приложением Chat.
Приложения для Chat, не являющиеся дополнениями: создание приложения Google Chat с помощью Dialogflow CX
Если вы создаете или поддерживаете приложение Chat, которое не является дополнением Google Workspace, обратите внимание на следующие различия в конфигурации, полезной нагрузке и событиях.
Как настроить приложение Chat Dialogflow CX, которое не является дополнением
При настройке Google Chat API в консоли Google Cloud:
- Снимите флажок Создать это приложение Chat как дополнение Google Workspace. Откроется диалоговое окно с запросом на подтверждение. В диалоговом окне нажмите Отключить.
- Задайте остальные настройки Dialogflow CX и нажмите Сохранить.
Отправлять сообщения с карточками из приложения Chat для Dialogflow CX, которое не является дополнением.
В приложении Chat, которое не является дополнением, укажите объект верхнего уровня cardsV2 в пользовательском контенте Dialogflow в Fulfillment:
JSON
{
"cardsV2": [{
"cardId": "createCardMessage",
"card": {
"header": {
"title": "A card message!",
"subtitle": "Sent from Dialogflow",
"imageUrl": "https://developers.google.com/chat/images/chat-product-icon.png",
"imageType": "CIRCLE"
},
"sections": [
{
"widgets": [
{
"buttonList": {
"buttons": [
{
"text": "Read the docs!",
"onClick": {
"openLink": {
"url": "https://developers.google.com/workspace/chat"
}
}
}
]
}
}
]
}
]
}
}]
}
Ограничения и рекомендации для приложений чата Dialogflow CX, которые не являются дополнениями
- События взаимодействия в чате поддерживаются с учетом следующих особенностей:
- Поддерживаются следующие типы событий взаимодействия:
MESSAGEADDED_TO_SPACECARD_CLICKED
- Для событий
MESSAGEилиADDED_TO_SPACEвходные данные запроса, отправленные агенту Dialogflow, соответствуют значению поляargumentTextв сообщении чата. Если сообщение содержит слеш-команду, вместо него используется значение поляtext. - Для событий
CARD_CLICKEDзапрос, отправляемый агенту Dialogflow, форматируется какCARD_CLICKED.functionName, гдеfunctionNameсоответствует значению поляfunctionобъекта Action, прикрепленного к интерактивному элементу карточки (например, кнопке). - Полная полезная нагрузка JSON каждого события взаимодействия с Chat отправляется в Dialogflow в виде специальной полезной нагрузки в параметре запроса. Доступ к ней можно получить с помощью веб-перехватчика Dialogflow, запросив значение поля
WebhookRequest.payload.
- Поддерживаются следующие типы событий взаимодействия:
- Рекомендации по обработке слеш-команд и получению данных из карточек или диалоговых окон в приложениях Chat, которые не являются дополнениями:
- Когда приложения Dialogflow Chat, которые не являются дополнениями, получают сообщение со слеш-командой, входные данные запроса содержат только значение поля
text. Полеtextначинается с названия слеш-команды (например,/command), которое можно использовать для настройки намерения агента Dialogflow обнаруживать слеш-команду. - Чтобы показать диалоговое окно из агента Dialogflow в приложении Chat, которое не является дополнением, ответьте одним пользовательским контентом JSON, включающим сообщение с ответом на действие
DIALOG. - Чтобы обрабатывать данные, введенные в карточки в приложении Chat, которое не является дополнением, агент Dialogflow может обнаруживать намерения, начинающиеся с текста
CARD_CLICKED, и отвечать с помощью одной пользовательской полезной нагрузки JSON, содержащей подходящее действие.
- Когда приложения Dialogflow Chat, которые не являются дополнениями, получают сообщение со слеш-командой, входные данные запроса содержат только значение поля