На этой странице объясняется, как создать приложение Google Chat, способное понимать и отвечать на естественном языке, используя Dialogflow . В этом руководстве используется Dialogflow CX , который имеет прямую интеграцию с Google Chat. Вы также можете использовать Dialogflow ES для создания приложения Google Chat, следуя руководству по Dialogflow ES для Google Chat .
Например, рассмотрим чат-приложение, которое помогает людям арендовать автомобили. Пользователь может написать: «Я хотел бы арендовать автомобиль». Чат-приложение может ответить вопросом типа «Где вы хотели бы забрать автомобиль?», что положит начало диалогу, похожему на человеческий, в котором чат-приложение понимает и отвечает человеческой речью, одновременно оформляя аренду автомобиля.
Это лишь один пример. Приложения Dialogflow Chat полезны во всех видах взаимодействия. Если требуется естественная человеческая речь, необходимо приложение Dialogflow Chat. Встроенные агенты помогут вам быстро начать работу и продемонстрируют возможности Dialogflow, такие как:
- Забронируйте авиабилеты
- Запишитесь на прием к врачу
- Заказать доставку еды
- Ответьте на вопросы о каталоге розничной продукции, например, доступны ли товары в других цветах.

Рисунок 1. Выбор готового агента для приложения Dialogflow Chat. 
Рисунок 2. Тестирование агента в Dialogflow CX для проверки корректности его логики и конфигурации. На диаграмме показана последовательная последовательность тематических страниц, относящихся к конкретным этапам диалога, например, к указанию места получения и возврата арендованного автомобиля, а также настраивается логика, связывающая эти этапы. Диалог тестируется в симуляторе. 
Рисунок 3. Настройка приложения чата для обработки ответов с помощью агента Dialogflow CX на странице конфигурации API чата в консоли Google Cloud. 
Рисунок 4. Разговор о бронировании автомобиля напрокат с помощью приложения Dialogflow Chat в Google Chat.
Цели
- Настройте свою среду.
- Создайте и разверните агент Dialogflow CX.
- Создайте и разверните приложение чата на базе агента Dialogflow CX.
- Протестируйте приложение «Чат».
Предварительные требования
- Корпоративный аккаунт Google Workspace с доступом к Google Chat .
- Проект Google Cloud с включенной оплатой. Чтобы проверить, включена ли оплата в существующем проекте, см. раздел «Проверка статуса оплаты ваших проектов ». Чтобы создать проект и настроить оплату, см. раздел «Создание проекта Google Cloud» .
Архитектура
На следующей диаграмме показана архитектура чат-приложения, созданного с помощью Dialogflow:
На приведенной выше диаграмме показано следующее взаимодействие пользователя с приложением Dialogflow Chat:
- Пользователь отправляет сообщение в чате в приложение для чата, либо в личном сообщении, либо в пространстве чата.
- Виртуальный агент Dialogflow, размещенный в облаке Google, получает и обрабатывает сообщение для формирования ответа.
- При желании, используя веб-перехватчик Dialogflow , агент Dialogflow может взаимодействовать с внешними сторонними сервисами, такими как система управления проектами или система обработки заявок.
- Агент Dialogflow отправляет ответ обратно в службу приложения Chat в приложении Chat.
- Ответ отправляется в чат.
Настройте среду
Перед использованием API Google необходимо включить их в проекте Google Cloud. В одном проекте Google Cloud можно включить один или несколько API.В консоли Google Cloud включите API Google Chat и API Dialogflow.
Убедитесь, что вы включаете 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 выберите «Запуск по умолчанию» .
- В разделе «Страница» выберите «Начальная страница» .
- В строке ввода «Поговорить с агентом» введите
Helloи нажмите Enter . Агент ответит, представившись. - Пройдите тест, выполнив примерный диалог .
Агент Dialogflow CX создан. Вернитесь в консоль Dialogflow CX. > Dialogflow CX .
В разделе «Агенты» нажмите > Скопировать имя . Сохраните это имя, так как оно будет использоваться при настройке приложения «Чат».
Создайте приложение для чата и подключите его к агенту Dialogflow.
После создания агента Dialogflow CX выполните следующие шаги, чтобы превратить его в приложение для чата:
В консоли Google Cloud перейдите в раздел Google Chat API. Найдите "Google Chat API", щелкните по Google Chat API , а затем нажмите "Управление" .
Нажмите «Конфигурация» и настройте приложение «Чат»:
- В поле «Название приложения» введите
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» .
- Сделайте это приложение для чата доступным для определенных людей и групп в вашем домене и введите свой адрес электронной почты.
- В разделе «Журналы» выберите « Записывать ошибки в журнал» и перейдите в раздел «Ведение журнала» .
- В поле «Название приложения» введите
Нажмите « Сохранить ».
Приложение «Чат» готово к приему и ответам на сообщения в чате.
Протестируйте приложение для чата
Протестируйте приложение Dialogflow CX Chat, отправив ему сообщение в Google Chat.
Откройте Google Chat, используя учетную запись Google Workspace, которую вы указали при добавлении себя в качестве доверенного тестировщика.
- Нажмите новый чат» .
- В поле «Добавить 1 или более человек» введите название вашего приложения для чата.
Выберите ваше приложение для чата из результатов поиска. Откроется личное сообщение.
В новом личном сообщении в приложении напишите
Helloи нажмитеenter.Приложение Dialogflow Chat отвечает, представляясь.
- Пройдите тест, выполнив примерный диалог .
Пример тестового диалога
Чтобы протестировать приложение Dialogflow CX Chat в консоли Dialogflow CX или в Google Chat, проведите следующий диалог. Объяснение поможет вам понять, как агент Dialogflow CX интерпретирует естественный язык пользователя и выдает свой собственный ответ на естественном языке на каждом этапе диалога. Этот пример диалога основан на предварительно созданном агенте под названием «Путешествия: аренда автомобилей» .
| Диалог | Объяснение |
|---|---|
| Пользователь: Здравствуйте Агент: Здравствуйте! Я виртуальный агент по прокату автомобилей. Я могу помочь вам оформить новое бронирование автомобиля. Чем я могу вам сегодня помочь? |
|
| Конечный пользователь: Я хотел бы взять автомобиль напрокат. Агент: Где бы вы хотели забрать автомобиль? |
|
| Конечный пользователь: Лас-Вегас Агент: Хорошо, вас заберут из Лас-Вегаса. Агент: Место сдачи автомобиля отличается от места получения? |
|
| Конечный пользователь: Да. Я оставлю машину в Лос-Анджелесе. Агент: Хорошо, вас высадят в Лос-Анджелесе. Агент: В какую дату и время вы хотели бы забрать автомобиль? |
|
| Конечный пользователь: Я хотел бы забрать машину 5 марта в полдень. Агент: В какую дату и время вы хотели бы сдать автомобиль? |
|
| Конечный пользователь: 15 марта в полдень. Агент: Итак, для подтверждения: Вы заберете автомобиль в Лас-Вегасе 5 марта 2024 года в 12:00:00 и вернете его в Лос-Анджелесе 15 марта 2024 года в 12:00:00. Звучит правдоподобно? |
|
| Конечный пользователь: Да, спасибо. Агент: Отлично! Теперь давайте выберем автомобиль. Агент: Вы предпочитаете автомобиль эконом-класса или класса люкс? |
|
| Конечный пользователь: Экономия, пожалуйста. Агент: Вам нужна машина с тарелками или грузовик с тарелками? |
|
| Конечный пользователь: Cymbal Truck. Агент: Аренда автоцистерны стоит 50,33 доллара в день. В ней могут разместиться 4 человека, и она оборудована AM/FM-радио. Хотите перейти к оплате? Конечный пользователь: Да, пожалуйста. |
|
| Агент: Какой тип карты вы будете использовать? Конечный пользователь: Altostrat Агент: Пожалуйста, введите номер карты. Конечный пользователь: 1234 1234 1234 1234 Агент: Как зовут человека, указанного на карте? Конечный пользователь: Чарли Агент: Какой адрес для выставления счетов? Конечный пользователь: 1800 Amphibious Blvd., Маунтин-Вью, Калифорния Агент: Какой почтовый индекс для выставления счетов? Конечный пользователь: 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 Workspace с Dialogflow объекты событий чата имеют следующие ограничения и особенности:
- События App 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. Для получения дополнительной информации см. документацию по запросам веб-хуков Dialogflow CX .
- События App 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 в разных проектах Cloud, вы можете настроить промежуточный сервер для обеспечения соединения. Чтобы узнать, как это сделать, см. этот пример интеграции Chat с Dialogflow CX на GitHub.
Устранение неполадок
Для отладки вашего чат-приложения начните с анализа журналов ошибок. Поскольку это приложение использует Dialogflow, вам доступны несколько ресурсов для ведения журналов и устранения неполадок:
Журналы надстройки Google Workspace: Запросите журналы для получения подробной информации о поведении надстройки, включая ее взаимодействие с чатом. См. Запрос журналов для надстроек Google Workspace .
Ошибки приложения Google Chat: Общие сообщения об ошибках приложения Chat и способы их устранения см. в разделе «Устранение неполадок и исправление ошибок приложения Chat» .
Dialogflow CX Cloud Logging: Убедитесь, что функция Cloud Logging включена в настройках вашего агента Dialogflow, чтобы получать подробные журналы выполнения, включая ошибки взаимодействия с агентом и веб-перехватчиком. Инструкции по включению и настройке этой функции см. в документации по настройкам агента Dialogflow CX . Эти журналы можно просмотреть в обозревателе журналов консоли Google Cloud.
История переписки в Dialogflow CX: Просмотрите предыдущие взаимодействия, чтобы понять ход разговора и выявить проблемы. См. История переписки .
Общие рекомендации по устранению неполадок Dialogflow: Для решения более масштабных проблем Dialogflow обратитесь к руководству по устранению неполадок Dialogflow CX .
Уборка
Чтобы избежать списания средств с вашего аккаунта Google Cloud за ресурсы, использованные в этом руководстве, мы рекомендуем удалить проект Cloud.
- В консоли Google Cloud перейдите на страницу «Управление ресурсами» > IAM и администрирование > Управление ресурсами .
- В списке проектов выберите проект, который хотите удалить, и нажмите кнопку «Удалить .
- В диалоговом окне введите идентификатор проекта, а затем нажмите «Завершить» , чтобы удалить проект.
Связанные темы
- Dialogflow CX использует подход конечного автомата при проектировании агентов Dialogflow, что обеспечивает четкий и явный контроль над диалогом, улучшает пользовательский опыт и упрощает процесс разработки. При создании приложения Dialogflow Chat мы рекомендуем использовать Dialogflow CX.
- Чтобы узнать больше о создании и настройке агентов, см. раздел «Агенты Dialogflow CX» .
- Подробное пошаговое руководство по созданию и настройке агентов см. в разделе «Создание агента Dialogflow CX» .
- Dialogflow ES — это ещё один способ использовать Dialogflow с приложением для чата.