下表重点介绍了Chat应用和推荐应用(verified)服务架构样式。在某些情况下,可以使用其他架构样式但对于这类应用场景,样式(check_circle_outline)。
特性和功能
Web或HTTP服务
Pub/Sub
Webhook
Apps脚本
AppSheet
Dialogflow
脚本
目标观众
你的球队
您的组织
公众
用户互动
使用自然语言处理
消息传递模式
发送和接收同步消息
发送和接收同步消息以及发送异步消息
仅发送异步消息
从外部系统向单个Chat聊天室发送消息
访问其他服务和系统
与其他Google服务相整合
在防火墙后面通信
查询或订阅Chat事件
编码和部署样式
无需代码即可开发
使用少量代码进行开发
使用您选择的编程语言进行开发
简化的DevOps
完成DevOps和CI/CD管理
本部分介绍了一些用于构建创建聊天应用。
网络或HTTP服务是最常部署的架构,因为可让开发者以最灵活的方式聊天应用。建议将此架构用于以下用例:
在此设计中,您将配置Chat以与进行远程服务,如下图所示:
在上图中,用户与HTTPChat应用具有以下信息流:
下图显示了使用Pub/Sub构建的聊天应用:
在上图中,用户与Pub/Sub进行交互Chat应用具有以下信息流:
您可以创建仅能发送消息的Chat扩展应用通过向Chat发起通话,将对方添加到特定Chat聊天室webhook网址。建议为以下用例使用此架构:
采用这种架构时,Chat应用仅限于特定Chat聊天室,并且不允许用户互动,因为如下图所示:
在上图中,Chat应用具有以下特征信息流:
此类型的Chat扩展应用无法与其他应用共享Chat聊天室或其他团队,并且无法发布到GoogleWorkspaceMarketplace。建议对传入的网络钩子用于报告提醒或状态的聊天应用,或用于报告某些类型的Chat应用原型设计。
建议为以下用例使用此架构:
此架构对于还集成了与其他GoogleWorkspace和Google服务(例如Google表格、Google幻灯片、Google日历、Google云端硬盘、Google地图和YouTube,如如下图所示:
在上图中,用户与Apps脚本互动Chat应用具有以下信息流:
下图显示了使用AppSheet构建的聊天应用:
在上图中,用户与AppSheet互动Chat应用具有以下信息流:
您可以使用Dialogflow、用于自动对话和动态响应的自然语言平台。建议为以下用例使用此架构:
下图显示了使用Dialogflow构建的聊天应用:
在上图中,用户与Dialogflow交互Chat应用具有以下信息流:
您可以创建命令行应用或脚本,以便将应用或执行其他操作,例如创建或管理聊天室成员,而不允许用户直接通过以下方式调用或回复Chat应用:聊天。建议将此架构用于以下用途用例:
下图展示了此架构:
在上图中,Chat应用具有信息流:
Chat不会限制您实现Chat应用逻辑。您可以创建固定语法命令解析器、使用先进的AI和语言处理库或服务、订阅响应事件,或采取其他任何适合您特定目标的方法。
另一种方法是对消息进行标记化处理,提取命令,引用将命令映射到每个命令的处理程序函数的字典。
每当用户在对话框中执行操作时,都会记录一个新的互动事件。Chat应用可通过更新对话框或发送消息
许多Chat应用实现都使用自然语言以确定用户的需求您可以通过多种方式实现NLP,也可以选择自己喜欢的实现方式
聊天应用还可以向以下对象发送消息或其他请求:聊天,用户无需进行直接互动即可触发聊天聊天。不过,这些聊天应用由第三方应用触发,或使用命令行触发)但用户无法与这些对象互动直接在Chat中使用Chat扩展应用。
非交互式Chat应用使用ChatAPI发送消息或其他类型的Chat请求。
您应该考虑希望Chat应用与用户互动以下部分介绍了一些对话模式,您的Chat应用可能会实现的功能。
在同步调用和响应模式中,聊天应用会回复用户发来的消息进行一对一学习。用户向Chat应用发送的一条消息Chat应用会收到一条响应,如如下图所示:
在上图中,用户与一个Chat应用具有以下信息流:
对于此类对话模式,您可以实现一个使用Web服务Pub/Sub的Chat应用架构Apps脚本、AppSheet或Dialogflow。
多响应模式可包括同步和异步消息。这种模式的特点是和Chat应用,而生成任意数量的附加消息的聊天应用,如下图所示:
对于此类对话模式,您可以实现一个使用Web服务Pub/Sub的Chat应用架构AppsScript或AppSheet。
在异步事件驱动模式中,Chat应用来通过查询ChatAPI或创建订阅了Chat聊天室或正在使用GoogleWorkspaceEventsAPI。事件代表Chat的变化例如,当有新消息发布或用户加入聊天室时。事件驱动型聊天应用检查事件载荷以获取关于已更改的Chat的数据资源,然后相应地做出响应。
聊天应用可以接收多种类型的事件,包括事件聊天室、会员资格、消息和回应。当Chat应用通过查询ChatAPI或通过有效订阅,然后,聊天应用可选择生成任意数量的并使用ChatAPI。
您可以使用这种类型的逻辑来更新外部系统,例如工单管理系统,或向Chat聊天室发送消息异步执行,例如,在新用户加入时发送欢迎辞Chat聊天室。
下图显示了一个事件驱动型对话示例格式:
在上图中,Chat与Chat应用具有以下信息流:
对于此类对话模式,您可以实现一个使用Pub/Sub(一项网络服务)的聊天应用架构或Apps脚本。
来自Chat应用模式的单向消息Chat应用将异步消息发送到Chat聊天室,但不允许用户直接与Chat应用。此格式既不是对话式的,也不是对话式的但可用于警报报告等用途如下图所示:
在上图中,用户与Chat应用具有以下信息流:
对于此类对话模式,您可以实现一个使用Web服务、网络钩子、AppsScript、AppSheet、命令行应用或脚本。
通过向Chat应用模式发送单向消息,用户可以在不使用Chat应用在处理请求的同时正在响应。虽然此架构在技术上是可行的,但这会导致用户体验不佳我们强烈反对这种做法。