Выберите архитектуру приложения Google Chat

На этой странице описаны общие подходы к архитектуре сервисов, которые используются для создания приложений Google Chat. Если у вас есть существующее приложение, которое вы хотите интегрировать в Google Chat, вы можете использовать или адаптировать существующую реализацию. Если вы создаете новое приложение для чата, на этой странице аналогичная информация представлена ​​несколькими различными способами, что поможет вам выбрать архитектуру, подходящую для вашего варианта использования:

Обзор по функциям и возможностям

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

Особенности и возможности

Веб- или HTTP-сервис

Паб/Саб

Вебхуки

Скрипт приложений

Таблица приложений

Диалоговый поток

Скрипт

Целевая аудитория

Ваша команда

Ваша организация

Общественность

Интерактивность пользователя

Используйте обработку естественного языка

Шаблоны обмена сообщениями

Отправлять и получать синхронные сообщения

Отправлять и получать синхронные сообщения, а также отправлять асинхронные сообщения.

Отправлять только асинхронные сообщения

Отправляйте сообщения из внешней системы в одно пространство чата.

Доступ к другим сервисам и системам

Интеграция с другими сервисами Google

Общайтесь за брандмауэром

Запрос или подписка на события чата

Стили кодирования и развертывания

Разработка без кода

Разработка с низким кодом

Разработка на языке программирования по вашему выбору

Упрощенный DevOps

Полное управление DevOps и CI/CD

Стили сервисной архитектуры

В этом разделе описаны некоторые наиболее распространенные архитектурные подходы, используемые для создания приложений чата.

Веб- или HTTP-сервис

Веб-служба или служба HTTP — это наиболее часто используемая архитектура, поскольку она обеспечивает разработчикам максимальную гибкость при создании общедоступных приложений чата. Эта архитектура рекомендуется для следующих случаев использования:

  • Приложение Chat общедоступно на Google Workspace Marketplace .
  • Приложение Chat может отправлять и получать все шаблоны обмена сообщениями: отправлять и получать синхронные сообщения, отправлять асинхронные сообщения и отправлять сообщения из внешней системы.
  • Приложение Чат разработано на любом языке программирования.
  • Приложение Chat требует полного управления DevOps и CI/CD.
  • Служба приложения Chat реализуется на облачных или локальных серверах.

В этом проекте вы настраиваете Chat для интеграции с удаленной службой с помощью HTTP, как показано на следующей схеме:

Архитектура приложения чата, использующего веб-службу на локальном сервере.

На предыдущей диаграмме пользователь, взаимодействующий с приложением HTTP Chat, имеет следующий поток информации:

  1. Пользователь отправляет сообщение в пространстве чата в приложение чата.
  2. HTTP-запрос отправляется на веб-сервер, который является облачной или локальной системой и содержит логику приложения Chat.
  3. При желании логика приложения Chat может взаимодействовать с внешними сторонними службами, такими как система управления проектами или инструмент для продажи билетов.
  4. Веб-сервер отправляет ответ HTTP обратно в службу приложения Chat в Chat.
  5. Ответ доставляется пользователю.
  6. При желании приложение Chat может вызывать API Chat для асинхронной публикации сообщений или выполнения других операций.

Эта архитектура дает вам возможность использовать существующие библиотеки и компоненты, которые уже существуют в вашей системе, поскольку эти приложения чата могут быть разработаны с использованием разных языков программирования. Существуют разные способы реализации этой архитектуры. В Google Cloud вы можете использовать Cloud Functions, Cloud Run и App Engine. Чтобы начать, ознакомьтесь со статьей Создание приложения Google Chat .

Паб/Саб

Если приложение Chat реализовано за брандмауэром, Chat не сможет выполнять к нему HTTP-вызовы. Один из подходов — использовать Pub/Sub , чтобы позволить реализации приложения Chat подписаться на тему, которая содержит сообщения из Chat. Pub/Sub — это асинхронная служба обмена сообщениями, которая отделяет службы, создающие сообщения, от служб, обрабатывающих эти сообщения. Эта архитектура рекомендуется для следующих случаев использования:

  • Приложение Chat защищено брандмауэром.
  • Приложение Chat получает события, связанные с пространством Chat .
  • Приложение Chat развернуто в вашей организации.
  • Приложение Chat может отправлять и получать синхронные сообщения, а также отправлять асинхронные сообщения.
  • Приложение Чат разработано на любом языке программирования.
  • Приложение Chat требует полного управления DevOps и CI/CD.

На следующей схеме показана архитектура приложения Chat, созданного с помощью Pub/Sub:

Архитектура приложения чата, реализованная с помощью Pub/Sub.

На предыдущей диаграмме пользователь, взаимодействующий с приложением Pub/Sub Chat, имеет следующий поток информации:

  1. Пользователь отправляет сообщение в Chat в приложение Chat либо в прямом сообщении, либо в пространстве Chat, либо событие происходит в пространстве Chat, на которое у приложения Chat имеется активная подписка .

  2. Чат отправляет сообщение в тему Pub/Sub.

  3. Сервер приложений, представляющий собой облачную или локальную систему, содержащую логику приложения Chat, подписывается на тему Pub/Sub, чтобы получать сообщения через брандмауэр.

  4. При желании приложение Chat может вызывать API Chat для асинхронной публикации сообщений или выполнения других операций.

Чтобы начать, ознакомьтесь со статьей Использование Pub/Sub в качестве конечной точки для приложения Chat .

Вебхуки

Вы можете создать приложение чата, которое сможет отправлять сообщения только в определенное пространство чата, используя вызовы URL-адреса веб-перехватчика чата. Эта архитектура рекомендуется для следующих случаев использования:

  • Приложение Chat развернуто в вашей команде.
  • Приложение Chat отправляет сообщения из внешней системы в одно пространство чата.

При такой архитектуре приложение чата ограничено определенным пространством чата и не допускает взаимодействия с пользователем, как показано на следующей схеме:

Архитектура входящих веб-перехватчиков для отправки асинхронных сообщений в Chat.

На предыдущей диаграмме приложение Chat имеет следующий поток информации:

  1. Логика приложения Chat получает информацию от внешних сторонних служб, таких как система управления проектами или инструмент для продажи билетов.
  2. Логика приложения Chat размещается либо в облаке, либо в локальной системе, которая может отправлять сообщения с помощью URL-адреса веб-перехватчика в определенное пространство Chat.
  3. Пользователи могут получать сообщения из приложения Chat в этом конкретном пространстве Chat, но не могут взаимодействовать с приложением Chat.

Приложением Chat этого типа нельзя делиться в других пространствах Chat или с другими командами, а также нельзя публиковать его в Google Workspace Marketplace. Входящие веб-перехватчики рекомендуются для приложений чата, чтобы сообщать об оповещениях или состоянии, а также для некоторых типов прототипов приложений чата.

Чтобы начать, ознакомьтесь со статьей Отправка сообщений в чат с помощью веб-перехватчиков .

Скрипт приложений

Вы можете полностью создать логику своего приложения Chat на JavaScript. Google Apps Script — это платформа для разработки приложений Chat с низким уровнем написания кода. Скрипт приложений обрабатывает поток авторизации и токены OAuth 2.0 для аутентификации пользователей. Вы можете использовать Apps Script для создания общедоступных приложений чата, но это не рекомендуется из-за ежедневных квот и ограничений .

Эта архитектура рекомендуется для следующих случаев использования:

  • Приложение Chat развернуто в вашей команде или вашей организации.
  • Приложение Chat может отправлять и получать все шаблоны обмена сообщениями: отправлять и получать синхронные сообщения, отправлять асинхронные сообщения и отправлять сообщения из внешней системы.
  • Приложение Chat требует упрощенного управления DevOps.

Эта архитектура полезна для приложений чата, которые также интегрируются с другими сервисами Google Workspace и Google, такими как Google Sheets, Google Slides, Google Calendar, Google Drive, Google Maps и YouTube, как показано на следующей схеме:

Архитектура приложения чата, реализованная с помощью Apps Script.

На предыдущей диаграмме пользователь, взаимодействующий с приложением Apps Script Chat, имеет следующий поток информации:

  1. Пользователь отправляет сообщение в приложение чата либо в прямом сообщении, либо в чат-группе.
  2. Логика приложения Chat, реализованная в Apps Script, расположенном в Google Cloud, получает сообщение.
  3. При желании логику приложения Chat можно интегрировать со службами Google Workspace, такими как Календарь или Таблицы, или другими службами Google, такими как Карты Google или YouTube.
  4. Логика приложения Chat отправляет ответ обратно в службу приложения Chat в Chat.
  5. Ответ доставляется пользователю.

Чтобы начать, ознакомьтесь со статьей Создание приложения чата с помощью Apps Script .

Таблица приложений

Вы можете создать общедоменное приложение чата без кода с помощью AppSheet . Вы можете упростить процесс разработки, используя режим автоматической настройки и следуя шаблонам для создания общих действий приложения чата. Однако некоторые функции веб-приложения AppSheet недоступны в приложениях Chat .

Эта архитектура рекомендуется для следующих случаев использования:

  • Приложение Chat развернуто для вас и вашей команды.
  • Приложение Chat может отправлять и получать синхронные сообщения, а также отправлять асинхронные сообщения.
  • Приложение Chat требует упрощенного управления DevOps.

На следующей диаграмме показана архитектура приложения Chat, созданного с помощью AppSheet:

Архитектура приложения чата, реализованная с помощью AppSheet.

На предыдущей диаграмме пользователь, взаимодействующий с приложением AppSheet Chat, имеет следующий поток информации:

  1. Пользователь отправляет сообщение в Chat в приложение Chat либо в прямом сообщении, либо в чат-группе.
  2. Логика приложения Chat, реализованная в AppSheet, расположенном в Google Cloud, получает сообщение.
  3. При желании логику приложения Chat можно интегрировать со службами Google Workspace, такими как Apps Script или Google Sheets.
  4. Логика приложения Chat отправляет ответ обратно в службу приложения Chat в Chat.
  5. Ответ доставляется пользователю.

Чтобы начать, ознакомьтесь со статьей Создание приложения чата с помощью AppSheet .

Диалоговый поток

Вы можете создать приложение чата с помощью Dialogflow , платформы естественного языка для автоматического общения и динамических ответов. Эта архитектура рекомендуется для следующих случаев использования:

  • Приложение Chat может отправлять и получать синхронные сообщения.
  • Приложение Chat использует обработку естественного языка для ответа и взаимодействия с пользователями.

На следующей схеме показана архитектура приложения Chat, созданного с помощью Dialogflow:

Архитектура приложения чата, реализованная с помощью Dialogflow.

На предыдущей диаграмме пользователь, взаимодействующий с приложением Dialogflow Chat, имеет следующий поток информации:

  1. Пользователь отправляет сообщение в Chat в приложение Chat либо в прямом сообщении, либо в чат-группе.
  2. Виртуальный агент Dialogflow, расположенный в Google Cloud, получает и обрабатывает сообщение для получения ответа.
  3. При желании, используя вебхук Dialogflow , агент Dialogflow может взаимодействовать с внешними сторонними сервисами, такими как система управления проектами или инструмент для продажи билетов.
  4. Агент Dialogflow отправляет ответ обратно в службу приложения Chat.
  5. Ответ доставляется в чат.

Чтобы начать, ознакомьтесь со статьей «Создание приложения Google Chat Dialogflow» .

Приложение или скрипт командной строки

Вы можете создать приложение командной строки или сценарий , который отправляет сообщения в Chat или выполняет другие операции, например создание пространства или управление участниками пространства, не позволяя пользователям напрямую вызывать приложение Chat или отвечать на него в Chat. Эта архитектура рекомендуется для следующих случаев использования:

  • Приложение Чат разработано на любом языке программирования.
  • Приложение Chat может отправлять только асинхронные сообщения.

На следующей диаграмме показана архитектура:

Архитектура приложения чата, реализованная с помощью приложения командной строки или сценария.

На предыдущей диаграмме приложение Chat имеет следующий поток информации:

  1. Приложение Chat вызывает API Chat для отправки сообщения или выполнения другой операции.
  2. Чат выполняет запрошенную операцию.
  3. При желании приложение Chat распечатывает подтверждение в CLI.

Реализация логики приложения чата

Chat не ограничивает способ реализации логики приложения Chat. Вы можете создать анализатор команд с фиксированным синтаксисом, использовать расширенные библиотеки или службы искусственного интеллекта и языковой обработки, подписываться на события и реагировать на них или делать что-то еще, подходящее для ваших конкретных целей.

Обрабатывать взаимодействия с пользователем

Приложение чата может получать сообщения от пользователей и отвечать на них разными способами. Взаимодействие с пользователем — это любое действие, которое пользователь предпринимает для вызова приложения чата или взаимодействия с ним.

Парсер команд

Приложения чата, управляемые командами, проверяют полезную нагрузку событий взаимодействия приложения чата , а затем извлекают из этого содержимого команды и параметры. Например, см. Настройка команд с косой чертой для взаимодействия с пользователями чата .

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

Диалоговый пользовательский интерфейс

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

Каждый раз, когда пользователь выполняет действие в диалоговом окне, в приложение Chat отправляется новое событие взаимодействия, которое может ответить обновлением диалогового окна или отправкой сообщения.

Обработка естественного языка

Многие реализации приложений чата используют обработку естественного языка (NLP), чтобы определить, что запрашивает пользователь. Существует множество способов реализации НЛП, и вы можете реализовать НЛП по своему усмотрению.

Вы можете использовать NLP в своей реализации приложения Chat с помощью интеграции Dialogflow ES или Dialogflow CX Chat , которая позволяет создавать виртуальных агентов для автоматических разговоров и динамических ответов.

Оперативно отправлять запросы в чат

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

Неинтерактивные приложения чата используют API чата для отправки сообщений или других типов запросов в чат.

Разговорные модели

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

Звонок и ответ (синхронно)

Используя синхронный шаблон вызова и ответа, приложение Chat отвечает на сообщения от пользователей индивидуально. Одно сообщение пользователя в приложении Chat приводит к одному ответу от приложения Chat, как показано на следующей диаграмме:

Архитектура синхронного сообщения.

На предыдущей диаграмме пользователь, взаимодействующий с приложением чата, имеет следующий поток информации:

  1. Пользователь отправляет синхронное сообщение в приложение чата, например: «Какая у меня следующая встреча?».
  2. Приложение «Чат» отправляет пользователю синхронное сообщение, например «Доктор Сильва в 2:30».

Для этого типа диалогового шаблона вы можете реализовать архитектуру приложения Chat с помощью веб-службы, Pub/Sub, Apps Script, AppSheet или Dialogflow.

Множественные ответы (асинхронные)

Шаблон множественных ответов может включать синхронные и асинхронные сообщения. Этот шаблон характеризуется двусторонней связью между пользователями и приложением «Чат», при этом приложение «Чат» генерирует любое количество дополнительных сообщений, как показано на следующей схеме:

Архитектура асинхронного сообщения.

На предыдущей диаграмме пользователь, взаимодействующий с приложением чата, имеет следующий поток информации:

  1. Пользователь отправляет синхронное сообщение в приложение чата, например «Отслеживать трафик».
  2. Приложение «Чат» отправляет пользователю синхронное сообщение для подтверждения запроса, например «Мониторинг включен».
  3. Позже приложение Chat отправляет пользователю одно или несколько асинхронных сообщений, вызывая REST API, например «Новый трафик».
  4. Пользователь отправляет в приложение «Чат» дополнительное синхронное сообщение, например «Игнорировать трафик».
  5. Приложение «Чат» отправляет пользователю синхронное сообщение для подтверждения запроса, например «Мониторинг выключен».

Для этого типа диалогового шаблона вы можете реализовать архитектуру приложения Chat с помощью веб-службы, Pub/Sub, Apps Script или AppSheet.

Запрос или подписка на события (асинхронно)

В асинхронном, управляемом событиями шаблоне приложение Chat получает события, либо запрашивая Chat API, либо создавая подписку на пространство Chat или пользователя с помощью API Google Workspace Events. События представляют собой изменения в ресурсах чата, например, когда публикуется новое сообщение или когда пользователь присоединяется к пространству. Приложения чата, управляемые событиями, проверяют полезную нагрузку события, чтобы получить данные об измененном ресурсе чата, а затем реагируют соответствующим образом.

Приложения чата могут получать различные типы событий, включая события о пространствах, членстве, сообщениях и реакциях. Когда приложение Chat получает событие путем запроса API Chat или посредством активной подписки, приложение Chat может дополнительно генерировать любое количество асинхронных ответов, которые оно отправляет обратно в Chat с помощью API Chat.

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

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

Архитектура подписки на события Chat

На предыдущей диаграмме взаимодействие между Chat и приложением Chat имеет следующий поток информации:

  1. Приложение Chat подписывается на пространство Google Chat.
  2. Пространство, на которое подписано приложение Chat, изменится.
  3. Приложение Chat доставляет событие в тему в Pub/Sub, которая служит конечной точкой уведомления для подписки. Событие содержит данные о том, что изменилось в ресурсе.
  4. Приложение Chat обрабатывает сообщение Pub/Sub, содержащее событие, и при необходимости предпринимает действия.

Для этого типа диалогового шаблона вы можете реализовать архитектуру приложения Chat с помощью Pub/Sub, веб-службы или скрипта приложений.

Дополнительную информацию о получении событий и реагировании на них см. в разделе Работа с событиями из событий Google Chat .

Одностороннее сообщение из приложения Chat

Одностороннее сообщение из шаблона приложения Chat позволяет приложению Chat отправлять асинхронные сообщения в пространство Chat, но не позволяет пользователям напрямую взаимодействовать с приложением Chat. Этот шаблон не является диалоговым или интерактивным, но может быть полезен для таких вещей, как отчеты о тревогах, как показано на следующей диаграмме:

Архитектура одностороннего сообщения.

На предыдущей диаграмме пользователь в том же пространстве, что и приложение «Чат», имеет следующий поток информации:

  • Приложение Chat отправляет пользователю асинхронное сообщение, вызывая API Chat или отправляя его на URL-адрес веб-перехватчика, например «Предупреждение о переполнении очереди».
  • При необходимости приложение Chat отправляет дополнительные асинхронные сообщения.

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

Одностороннее сообщение в приложении чата

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

,

На этой странице описаны общие подходы к архитектуре сервисов, которые используются для создания приложений Google Chat. Если у вас есть существующее приложение, которое вы хотите интегрировать в Google Chat, вы можете использовать или адаптировать существующую реализацию. Если вы создаете новое приложение для чата, на этой странице аналогичная информация представлена ​​несколькими различными способами, что поможет вам выбрать архитектуру, подходящую для вашего случая использования:

Обзор по функциям и возможностям

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

Особенности и возможности

Веб- или HTTP-сервис

Паб/Саб

Вебхуки

Скрипт приложений

Таблица приложений

Диалоговый поток

Скрипт

Целевая аудитория

Ваша команда

Ваша организация

Общественность

Интерактивность пользователя

Используйте обработку естественного языка

Шаблоны обмена сообщениями

Отправлять и получать синхронные сообщения

Отправлять и получать синхронные сообщения, а также отправлять асинхронные сообщения.

Отправлять только асинхронные сообщения

Отправляйте сообщения из внешней системы в одно пространство чата.

Доступ к другим сервисам и системам

Интеграция с другими сервисами Google

Общайтесь за брандмауэром

Запрос или подписка на события чата

Стили кодирования и развертывания

Разработка без кода

Разработка с низким кодом

Разработка на языке программирования по вашему выбору

Упрощенный DevOps

Полное управление DevOps и CI/CD

Стили сервисной архитектуры

В этом разделе описаны некоторые наиболее распространенные архитектурные подходы, используемые для создания приложений чата.

Веб- или HTTP-сервис

Веб-служба или служба HTTP — это наиболее часто используемая архитектура, поскольку она обеспечивает разработчикам максимальную гибкость при создании общедоступных приложений чата. Эта архитектура рекомендуется для следующих случаев использования:

  • Приложение Chat общедоступно на Google Workspace Marketplace .
  • Приложение Chat может отправлять и получать все шаблоны обмена сообщениями: отправлять и получать синхронные сообщения, отправлять асинхронные сообщения и отправлять сообщения из внешней системы.
  • Приложение Чат разработано на любом языке программирования.
  • Приложение Chat требует полного управления DevOps и CI/CD.
  • Служба приложения Chat реализуется на облачных или локальных серверах.

В этом проекте вы настраиваете Chat для интеграции с удаленной службой с помощью HTTP, как показано на следующей схеме:

Архитектура приложения чата, использующего веб-службу на локальном сервере.

На предыдущей диаграмме пользователь, взаимодействующий с приложением HTTP Chat, имеет следующий поток информации:

  1. Пользователь отправляет сообщение в пространстве чата в приложение чата.
  2. HTTP-запрос отправляется на веб-сервер, который является облачной или локальной системой и содержит логику приложения Chat.
  3. При желании логика приложения Chat может взаимодействовать с внешними сторонними службами, такими как система управления проектами или инструмент для продажи билетов.
  4. Веб-сервер отправляет ответ HTTP обратно в службу приложения Chat.
  5. Ответ доставляется пользователю.
  6. При желании приложение Chat может вызывать API Chat для асинхронной публикации сообщений или выполнения других операций.

Эта архитектура дает вам возможность использовать существующие библиотеки и компоненты, которые уже существуют в вашей системе, поскольку эти приложения чата могут быть разработаны с использованием разных языков программирования. Существуют разные способы реализации этой архитектуры. В Google Cloud вы можете использовать Cloud Functions, Cloud Run и App Engine. Чтобы начать, ознакомьтесь со статьей Создание приложения Google Chat .

Паб/Саб

Если приложение Chat реализовано за брандмауэром, Chat не сможет выполнять к нему HTTP-вызовы. Один из подходов — использовать Pub/Sub , чтобы позволить реализации приложения Chat подписаться на тему, которая содержит сообщения из Chat. Pub/Sub — это асинхронная служба обмена сообщениями, которая отделяет службы, создающие сообщения, от служб, обрабатывающих эти сообщения. Эта архитектура рекомендуется для следующих случаев использования:

  • Приложение Chat защищено брандмауэром.
  • Приложение Chat получает события, связанные с пространством Chat .
  • Приложение Chat развернуто в вашей организации.
  • Приложение Chat может отправлять и получать синхронные сообщения, а также отправлять асинхронные сообщения.
  • Приложение Чат разработано на любом языке программирования.
  • Приложение Chat требует полного управления DevOps и CI/CD.

На следующей схеме показана архитектура приложения Chat, созданного с помощью Pub/Sub:

Архитектура приложения чата, реализованная с помощью Pub/Sub.

На предыдущей диаграмме пользователь, взаимодействующий с приложением Pub/Sub Chat, имеет следующий поток информации:

  1. Пользователь отправляет сообщение в Chat в приложение Chat либо в прямом сообщении, либо в пространстве Chat, либо событие происходит в пространстве Chat, на которое у приложения Chat имеется активная подписка .

  2. Чат отправляет сообщение в тему Pub/Sub.

  3. Сервер приложений, представляющий собой облачную или локальную систему, содержащую логику приложения Chat, подписывается на тему Pub/Sub, чтобы получать сообщения через брандмауэр.

  4. При желании приложение Chat может вызывать API Chat для асинхронной публикации сообщений или выполнения других операций.

Чтобы начать, ознакомьтесь со статьей Использование Pub/Sub в качестве конечной точки для приложения Chat .

Вебхуки

Вы можете создать приложение чата, которое сможет отправлять сообщения только в определенное пространство чата, используя вызовы URL-адреса веб-перехватчика чата. Эта архитектура рекомендуется для следующих случаев использования:

  • Приложение Chat развернуто в вашей команде.
  • Приложение Chat отправляет сообщения из внешней системы в одно пространство чата.

При такой архитектуре приложение чата ограничено определенным пространством чата и не допускает взаимодействия с пользователем, как показано на следующей схеме:

Архитектура входящих веб-перехватчиков для отправки асинхронных сообщений в Chat.

На предыдущей диаграмме приложение Chat имеет следующий поток информации:

  1. Логика приложения Chat получает информацию от внешних сторонних сервисов, таких как система управления проектами или инструмент для продажи билетов.
  2. Логика приложения Chat размещается либо в облаке, либо в локальной системе, которая может отправлять сообщения с помощью URL-адреса веб-перехватчика в определенное пространство Chat.
  3. Пользователи могут получать сообщения из приложения Chat в этом конкретном пространстве Chat, но не могут взаимодействовать с приложением Chat.

Приложением Chat этого типа нельзя делиться в других пространствах Chat или с другими командами, а также нельзя публиковать его в Google Workspace Marketplace. Входящие веб-перехватчики рекомендуются для приложений чата, чтобы сообщать об оповещениях или состоянии, а также для некоторых типов прототипов приложений чата.

Чтобы начать, ознакомьтесь со статьей Отправка сообщений в чат с помощью веб-перехватчиков .

Скрипт приложений

Вы можете полностью создать логику своего приложения Chat на JavaScript. Google Apps Script — это платформа для разработки приложений Chat с низким уровнем написания кода. Скрипт приложений обрабатывает поток авторизации и токены OAuth 2.0 для аутентификации пользователей. Вы можете использовать Apps Script для создания общедоступных приложений чата, но это не рекомендуется из-за ежедневных квот и ограничений .

Эта архитектура рекомендуется для следующих случаев использования:

  • Приложение Chat развернуто в вашей команде или вашей организации.
  • Приложение Chat может отправлять и получать все шаблоны обмена сообщениями: отправлять и получать синхронные сообщения, отправлять асинхронные сообщения и отправлять сообщения из внешней системы.
  • Приложение Chat требует упрощенного управления DevOps.

Эта архитектура полезна для приложений чата, которые также интегрируются с другими сервисами Google Workspace и Google, такими как Google Sheets, Google Slides, Google Calendar, Google Drive, Google Maps и YouTube, как показано на следующей схеме:

Архитектура приложения чата, реализованная с помощью Apps Script.

На предыдущей диаграмме пользователь, взаимодействующий с приложением Apps Script Chat, имеет следующий поток информации:

  1. Пользователь отправляет сообщение в приложение чата либо в прямом сообщении, либо в чат-группе.
  2. Логика приложения Chat, реализованная в Apps Script, расположенном в Google Cloud, получает сообщение.
  3. При желании логику приложения Chat можно интегрировать со службами Google Workspace, такими как Календарь или Таблицы, или другими службами Google, такими как Карты Google или YouTube.
  4. Логика приложения Chat отправляет ответ обратно в службу приложения Chat в Chat.
  5. Ответ доставляется пользователю.

Чтобы начать, ознакомьтесь со статьей Создание приложения чата с помощью Apps Script .

Таблица приложений

Вы можете создать общедоменное приложение чата без кода с помощью AppSheet . Вы можете упростить процесс разработки, используя режим автоматической настройки и следуя шаблонам для создания общих действий приложения чата. Однако некоторые функции веб-приложения AppSheet недоступны в приложениях Chat .

Эта архитектура рекомендуется для следующих случаев использования:

  • Приложение Chat развернуто для вас и вашей команды.
  • Приложение Chat может отправлять и получать синхронные сообщения, а также отправлять асинхронные сообщения.
  • Приложение Chat требует упрощенного управления DevOps.

На следующей диаграмме показана архитектура приложения Chat, созданного с помощью AppSheet:

Архитектура приложения чата, реализованная с помощью AppSheet.

На предыдущей диаграмме пользователь, взаимодействующий с приложением AppSheet Chat, имеет следующий поток информации:

  1. Пользователь отправляет сообщение в Chat в приложение Chat либо в прямом сообщении, либо в чат-группе.
  2. Логика приложения Chat, реализованная в AppSheet, расположенном в Google Cloud, получает сообщение.
  3. При желании логику приложения Chat можно интегрировать со службами Google Workspace, такими как Apps Script или Google Sheets.
  4. Логика приложения Chat отправляет ответ обратно в службу приложения Chat в Chat.
  5. Ответ доставляется пользователю.

Чтобы начать, ознакомьтесь со статьей Создание приложения чата с помощью AppSheet .

Диалоговый поток

Вы можете создать приложение чата с помощью Dialogflow , платформы естественного языка для автоматического общения и динамических ответов. Эта архитектура рекомендуется для следующих случаев использования:

  • Приложение Chat может отправлять и получать синхронные сообщения.
  • Приложение Chat использует обработку естественного языка для ответа и взаимодействия с пользователями.

На следующей схеме показана архитектура приложения Chat, созданного с помощью Dialogflow:

Архитектура приложения чата, реализованная с помощью Dialogflow.

На предыдущей диаграмме пользователь, взаимодействующий с приложением Dialogflow Chat, имеет следующий поток информации:

  1. Пользователь отправляет сообщение в Chat в приложение Chat либо в прямом сообщении, либо в чат-группе.
  2. Виртуальный агент Dialogflow, расположенный в Google Cloud, получает и обрабатывает сообщение для получения ответа.
  3. При желании, используя вебхук Dialogflow , агент Dialogflow может взаимодействовать с внешними сторонними сервисами, такими как система управления проектами или инструмент для продажи билетов.
  4. Агент Dialogflow отправляет ответ обратно в службу приложения Chat.
  5. Ответ доставляется в чат.

Чтобы начать, ознакомьтесь со статьей «Создание приложения Google Chat Dialogflow» .

Приложение или скрипт командной строки

Вы можете создать приложение командной строки или сценарий , который отправляет сообщения в Chat или выполняет другие операции, например создание пространства или управление участниками пространства, не позволяя пользователям напрямую вызывать приложение Chat или отвечать на него в Chat. Эта архитектура рекомендуется для следующих случаев использования:

  • Приложение Чат разработано на любом языке программирования.
  • Приложение Chat может отправлять только асинхронные сообщения.

На следующей диаграмме показана архитектура:

Архитектура приложения чата, реализованная с помощью приложения командной строки или сценария.

На предыдущей диаграмме приложение Chat имеет следующий поток информации:

  1. Приложение Chat вызывает API Chat для отправки сообщения или выполнения другой операции.
  2. Чат выполняет запрошенную операцию.
  3. При желании приложение Chat распечатывает подтверждение в CLI.

Реализация логики приложения чата

Chat не ограничивает способ реализации логики приложения Chat. Вы можете создать анализатор команд с фиксированным синтаксисом, использовать расширенные библиотеки или службы искусственного интеллекта и языковой обработки, подписываться на события и реагировать на них или делать что-то еще, подходящее для ваших конкретных целей.

Обрабатывать взаимодействия с пользователем

Приложение чата может получать сообщения от пользователей и отвечать на них разными способами. Взаимодействие с пользователем — это любое действие, которое пользователь предпринимает для вызова приложения чата или взаимодействия с ним.

Парсер команд

Приложения чата, управляемые командами, проверяют полезную нагрузку событий взаимодействия приложения чата , а затем извлекают из этого содержимого команды и параметры. Например, см. Настройка команд с косой чертой для взаимодействия с пользователями чата .

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

Диалоговый пользовательский интерфейс

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

Каждый раз, когда пользователь выполняет действие в диалоге, новое событие взаимодействия отправляется в приложение чата, которое может ответить, обновив диалог или отправляя сообщение.

Обработка естественного языка

Многие реализации приложений в чате используют обработку естественного языка (NLP), чтобы определить, о чем просит пользователь. Есть много способов реализации НЛП, и вы можете внедрить НЛП, как вы предпочитаете.

Вы можете использовать NLP в реализации приложения чата с помощью диалога ES или интеграции Dialogflow CX Chat , которая позволяет создавать виртуальные агенты для автоматических разговоров и динамических ответов.

Активно выдать запросы на общение

Приложения чата также могут отправлять сообщения или другие запросы в чат, которые не запускаются прямыми взаимодействиями пользователей в чате. Вместо этого эти приложения для чата могут быть запускаются-например, сторонними приложениями или использование вызова командной строки от пользователя, но пользователи не могут взаимодействовать с этими приложениями чата непосредственно в чате.

Неинтерактивные приложения чата используют API чата для отправки сообщений или других типов запросов на чат.

Разговорные шаблоны

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

Вызов и ответ (синхронный)

При синхронном образе вызова и образе ответов приложение Chat отвечает на сообщения от пользователей на один на один. Одно сообщение в приложение чата от пользователя приводит к одному ответу из приложения чата, как показано на следующей диаграмме:

Архитектура синхронного сообщения.

На предыдущей диаграмме пользователь, взаимодействующий с приложением для чата, имеет следующий поток информации:

  1. Пользователь отправляет синхронное сообщение в приложение чата, например, «какая моя следующая встреча?».
  2. Приложение чата отправляет пользователю синхронное сообщение, например, «доктор Сильва в 2:30».

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

Многочисленные ответы (асинхронные)

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

Архитектура асинхронного сообщения.

На предыдущей диаграмме пользователь, взаимодействующий с приложением для чата, имеет следующий поток информации:

  1. Пользователь отправляет синхронное сообщение в приложение чата, например, «Мониторинг трафика».
  2. Приложение Chat отправляет пользователю синхронное сообщение для подтверждения запроса, например, «Мониторинг на».
  3. Позже приложение Chat отправляет пользователю одно или несколько асинхронных сообщений, позвонив в REST API, например, «новый трафик».
  4. Пользователь отправляет дополнительное синхронное сообщение в приложение чата, например, «игнорировать трафик».
  5. Приложение Chat отправляет пользователю синхронное сообщение для подтверждения запроса, например, «мониторинг выключения».

Для этого типа разговорного шаблона вы можете реализовать архитектуру приложения чата, используя веб -службу, Pub/sub, сценарий приложений или приложение.

Запросить или подписаться на события (асинхронные)

В асинхронном шаблоне, основанном на событиях, приложение в чате получает события, либо запрашивая API чата, либо создавая подписку на пространство чата или пользователь, используя API событий Google Workspace. События представляют изменения в ресурсах чата, например, когда опубликовано новое сообщение или когда пользователь присоединяется к пространству. Приложения, управляемые событиями, проверьте полезную нагрузку события, чтобы получить данные об измененном ресурсе чата, а затем ответьте соответствующим образом.

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

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

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

Архитектура подписки на чаты

На предыдущей диаграмме взаимодействие между чатом и приложением чата имеет следующий поток информации:

  1. Приложение чата подписывается на пространство чата Google.
  2. Пространство, которое приложение чата подписано на изменения.
  3. Приложение Chat представляет событие в теме в Pub/Sub, которая служит конечной точкой уведомления для подписки. Событие содержит данные о том, что изменилось в ресурсе.
  4. Приложение чата обрабатывает паб/подразделение, которое содержит событие, и, если необходимо, принимает меры.

Для этого типа разговорного шаблона вы можете реализовать архитектуру приложения чата, используя Pub/Sub, веб -службу или скрипт приложений.

Чтобы узнать больше о получении и реагировании на события, см. Работу с событиями от Google Chat Events .

Одностороннее сообщение из приложения чата

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

Архитектура одностороннего сообщения.

На предыдущей диаграмме пользователь в том же пространстве, что и приложение чата, имеет следующий поток информации:

  • Приложение в чате отправляет пользователю асинхронное сообщение, вызывая API чата или публикуя URL -адрес Webhook, например, «предупреждение о переполнении очереди».
  • При желании приложение чата отправляет дополнительные асинхронные сообщения.

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

Одностороннее сообщение в приложение чата

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