本教程介绍了如何使用由 Vertex AI 与 Gemini 提供支持的生成式 AI 构建 Google Chat 应用,根据 Chat 聊天室中的对话回答问题。此类 Chat 应用结合使用 Google Workspace Events API 和 Pub/Sub,可实时识别和回答 Chat 聊天室中发布的问题,即使没有被提及也可提供回答。
Chat 应用将聊天室中发送的所有消息用作数据源和知识库:当有人提出问题时,Chat 应用会检查之前分享的答案,然后分享答案。如果未找到答案,则表示无法接听。在每个答案中,用户都可以点击附加操作按钮,@提及聊天室管理员并请求答案。通过使用 Gemini AI,Google Chat 应用会不断根据包含的聊天室中的对话进行训练,从而调整并扩大其知识库。
下面介绍了 Chat 应用在员工入职和支持空间中的工作原理:
-
图 2.Dana 询问该公司是否提供公开演讲培训。 -
图 3.AI 知识助理 Chat 应用提示 Vertex AI with Gemini 根据 Chat 聊天室的对话记录回答 Dana 的问题,然后分享答案。
前提条件
拥有对 Google Chat 访问权限的商务版或企业版 Google Workspace 账号。
访问 Google Cloud 服务,以执行以下操作:
- 创建 Google Cloud 项目。
- 将 Google Cloud 结算账号与 Cloud 项目相关联。如需了解您是否具有访问权限,请参阅启用结算功能所需的权限。
- 使用未经身份验证的 Google Cloud Functions 函数调用(您可以通过确定您的 Google Cloud 组织是否使用网域限定共享来验证这一点)。
如有必要,请向您的 Google Cloud 管理员申请访问权限。
如果使用的是 Google Cloud CLI,则是配置为使用 gcloud CLI 的 Node.js 开发环境。请参阅设置 Node.js 开发环境。
目标
- 构建一个 Chat 应用,使用生成式 AI 根据 Chat 聊天室对话中分享的知识来回答问题。
- 借助生成式 AI:
- 检测和回答员工问题。
- 持续从 Chat 聊天室中正在进行的对话中学习。
- 您可以实时监听和回复 Chat 聊天室中的消息,即使未直接发送 Chat 应用也是如此。
- 通过向 Firestore 数据库写入和从中读取来保留消息。
- 在找不到问题解答时提及聊天室管理员,以促进 Chat 聊天室中的协作。
架构
下图显示了 AI 知识助理 Chat 应用使用的 Google Workspace 和 Google Cloud 资源的架构。
AI 知识助理 Chat 应用的运作方式如下:
用户将 AI 知识助理 Chat 应用添加到 Chat 聊天室:
Chat 应用会提示将其添加到 Chat 聊天室的用户配置身份验证和授权。
Chat 应用通过调用 Chat API 中的
spaces.messages.list
方法提取聊天室的消息,然后将提取的消息存储在 Firestore 数据库中。Chat 应用会调用 Google Workspace Events API 中的
subscriptions.create
方法,以开始监听聊天室中的消息等事件。订阅的通知端点是一个使用 Eventarc 将事件转发到 Chat 应用的 Pub/Sub 主题。Chat 应用会向聊天室发布一条介绍消息。
Chat 聊天室中的用户发布了一条消息:
Chat 应用会从 Pub/Sub 主题实时接收消息。
Chat 应用会将消息添加到 Firestore 数据库。
如果用户稍后修改或删除消息,Chat 应用会实时收到更新或删除事件,然后在 Firestore 数据库中更新或删除消息。
Chat 应用使用 Gemini 将消息发送到 Vertex AI:
该提示会指示 Vertex AI with Gemini 检查消息中是否包含问题。如果是,Gemini 会根据存储在 Firestore 中的 Chat 聊天室消息记录来回答问题,然后 Google Chat 应用会将消息发送到 Chat 聊天室。如果没有,请不要回复。
如果 Vertex AI with Gemini 回答了该问题,Chat 应用会使用应用身份验证在 Chat API 中调用
spaces.messages.create
方法,以发布答案。如果 Vertex AI with Gemini 无法回答问题,Chat 应用会发布一条消息,说明它无法在 Chat 聊天室历史记录中找到该问题的答案。
消息始终包含一个配件操作按钮,用户点击该按钮后,Chat 应用就会用“@”提及聊天室管理员,让其回答问题。
Chat 应用会从 Google Workspace Events API 收到有关 Chat 聊天室订阅即将到期的生命周期通知:
- Chat 应用通过调用 Google Workspace Events API 中的
subscriptions.patch
方法发送续订订阅的请求。
- Chat 应用通过调用 Google Workspace Events API 中的
Chat 应用会从 Chat 聊天室中移除:
Chat 应用通过调用 Google Workspace Events API 中的
subscriptions.delete
方法删除订阅。Chat 应用会从 Firestore 中删除 Chat 聊天室的数据。
查看 AI 知识助理 Chat 应用使用的产品
AI 知识助理 Chat 应用使用以下 Google Workspace 和 Google Cloud 产品:
- 采用 Gemini 的 Vertex AI API:由 Gemini 提供支持的生成式 AI 平台。Chat 应用中的 AI 知识助理使用 Vertex AI API with Gemini 来识别、理解和回答员工的问题。
-
Chat API:一种用于开发 Google Chat 应用的 API,可接收和响应 Chat 互动事件(例如消息)。AI 知识助理 Chat 应用使用 Chat API 执行以下操作:
- 接收和响应 Chat 发送的互动事件。
- 列出在聊天室中发送的消息。
- 在聊天室中发布对用户问题的回复。
- 配置属性以确定它在 Chat 中的显示方式,例如名称和头像图片。
- Google Workspace Events API:此 API 可让您订阅各种 Google Workspace 应用中的事件和管理更改通知。AI 知识助理 Chat 应用使用 Google Workspace Events API 监听 Chat 聊天室中发布的消息,因此即使未提及相应问题,它也可以检测并回答问题。
- Firestore:无服务器文档数据库。AI 知识助理 Chat 应用使用 Firestore 存储有关在 Chat 聊天室中发送的消息的数据。
- Pub/Sub:Pub/Sub 是一种异步且可伸缩的通讯服务,可将生成消息的服务与处理这些消息的服务分离开来。AI 知识助理 Chat 应用使用 Pub/Sub 从 Chat 聊天室接收订阅事件。
- Eventarc:借助 Eventarc,您可以构建事件驱动型架构,而无需实现、自定义或维护底层基础架构。AI 知识助理 Chat 应用使用 Eventarc 将事件从 Pub/Sub 路由到 Chat 聊天室以及接收和处理订阅事件的 Cloud Functions 函数。
-
Cloud Functions 函数:一种轻量级无服务器计算服务,可让您创建单一用途的独立函数来对 Chat 互动和订阅事件作出响应,而无需管理服务器或运行时环境。AI 知识助理 Chat 应用使用以下两个 Cloud Functions 函数:
-
app
:托管 Chat 将互动事件发送到的 HTTP 端点,并作为计算平台运行处理和响应这些事件的逻辑。 -
eventsApp
:接收和处理 Chat 聊天室事件,例如来自 Pub/Sub 订阅的消息。
- Cloud Build:运行自动构建的全代管式持续集成、交付和部署平台。
- Cloud Run:用于运行容器化应用的全代管式环境。
-
准备环境
本部分介绍如何为 Chat 应用创建和配置 Google Cloud 项目。
创建 Google Cloud 项目
Google Cloud 控制台
- 在 Google Cloud 控制台中,依次选择“菜单”图标 > IAM 和管理> 创建项目。
-
在项目名称字段中,为项目输入描述性名称。
可选:要修改项目 ID,请点击修改。项目创建后,项目 ID 便无法更改,因此请选择一个在项目生命周期内能满足您需求的 ID。
- 在位置字段中,点击浏览以显示项目的可能位置。然后,点击选择。
- 点击创建。Google Cloud 控制台会转到“信息中心”页面,您的项目会在几分钟内创建完成。
gcloud CLI
在以下任一开发环境中,访问 Google Cloud CLI (gcloud
):
-
Cloud Shell:如需使用已设置 gcloud CLI 的在线终端,请激活 Cloud Shell。
激活 Cloud Shell -
本地 Shell:如需使用本地开发环境,请安装并初始化 gcloud CLI。
如需创建 Cloud 项目,请使用gcloud projects create
命令: 为要创建的项目设置 ID 以替换 PROJECT_ID。gcloud projects create PROJECT_ID
为 Cloud 项目启用结算功能
Google Cloud 控制台
- 在 Google Cloud 控制台中,前往结算。依次点击菜单 > 结算 > 我的项目。
- 在选择组织中,选择与您的 Google Cloud 项目关联的组织。
- 在项目行中,打开操作菜单 ( ),点击更改结算信息,然后选择 Cloud Billing 账号。
- 点击设置账号。
gcloud CLI
- 如需列出可用的结算账号,请运行以下命令:
gcloud billing accounts list
- 将结算账号与 Google Cloud 项目相关联:
gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID
替换以下内容:
PROJECT_ID
是您要启用结算功能的 Cloud 项目的项目 ID。BILLING_ACCOUNT_ID
是与 Google Cloud 项目相关联的结算账号 ID。
启用 API
Google Cloud 控制台
在 Google Cloud 控制台中,启用 Google Chat API、Vertex AI API、Cloud Functions API、Firestore API、Cloud Build API、Pub/Sub API、Google Workspace Events API、Eventarc API 和 Cloud Run Admin API。
确认您是在正确的 Cloud 项目中启用 API,然后点击下一步。
确认您启用的 API 正确无误,然后点击启用。
gcloud CLI
如有必要,请将当前的 Cloud 项目设置为您创建的项目:
gcloud config set project PROJECT_ID
将 PROJECT_ID 替换为您创建的 Cloud 项目的项目 ID。
启用 Google Chat API、Vertex AI API、Cloud Functions API、Firestore API、Cloud Build API、Pub/Sub API、Google Workspace Events API、Eventarc API 和 Cloud Run Admin API:
gcloud services enable chat.googleapis.com \ aiplatform.googleapis.com \ cloudfunctions.googleapis.com \ firestore.googleapis.com \ cloudbuild.googleapis.com \ pubsub.googleapis.com \ workspaceevents.googleapis.com \ eventarc.googleapis.com \ run.googleapis.com
设置身份验证和授权
通过身份验证和授权,Chat 应用可以访问 Google Workspace 和 Google Cloud 中的资源。
在本教程中,您将在内部发布 Google Chat 应用,因此可以使用占位符信息。在对外发布 Google Chat 应用之前,请将占位信息替换为同意屏幕上的真实信息。
配置 OAuth 同意屏幕、指定范围并注册应用
在 Google Cloud 控制台中,依次点击菜单 > API 和服务 > OAuth 同意屏幕。
在用户类型下,选择内部,然后点击创建。
在应用名称中,输入
AI knowledge assistant
。在用户支持电子邮件地址中,选择您的电子邮件地址或相应的 Google 群组。
在开发者联系信息下方,输入您的电子邮件地址。
点击保存并继续。
点击添加或移除范围。此时会显示一个面板,其中列出了您已在 Cloud 项目中启用的每个 API 的范围。
在手动添加范围下方,粘贴以下范围:
https://www.googleapis.com/auth/chat.messages
点击 Add to Table。
点击更新。
点击保存并继续。
查看应用注册摘要,然后点击返回信息中心。
创建 OAuth 客户端 ID 凭据
在 Google Cloud 控制台中,依次点击菜单 > API 和服务> 凭据。
依次点击创建凭据 > OAuth 客户端 ID。
依次点击应用类型 > Web 应用。
在名称字段中,输入凭据的名称。此名称仅在 Google Cloud 控制台中显示。
在已获授权的重定向 URI 下,点击添加 URI。
在 URI 1 中,输入以下内容:
https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
替换以下内容:
- REGION:Cloud Functions 函数所在的区域,例如
us-central1
。稍后,在创建两个 Cloud Functions 函数时,您必须将其区域设置为此值。 - PROJECT_ID:您创建的 Cloud 项目的项目 ID。
- REGION:Cloud Functions 函数所在的区域,例如
点击创建。
在已创建 OAuth 客户端窗口中,点击下载 JSON。
将下载的文件另存为
client_secrets.json
。稍后,在创建两个 Cloud Functions 函数时,您需要在每个部署中添加client_secrets.json
文件。点击确定。
创建 Pub/Sub 主题
Pub/Sub 主题与 Google Workspace Events API 搭配使用,可订阅 Chat 聊天室中的事件(如消息),并实时通知 Chat 应用。
以下是创建 Pub/Sub 主题的方法:
Google Cloud 控制台
在 Google Cloud 控制台中,依次点击菜单 > Pub/Sub。
点击创建主题。
在主题 ID 中,输入
events-api
。取消选择添加默认订阅。
在加密下,选择 Google 管理的加密密钥。
点击创建。Pub/Sub 主题随即显示。
为使此 Pub/Sub 主题和 Google Workspace Events API 协同工作,请向 Chat IAM 用户授予在 Pub/Sub 主题发帖的权限:
在 events-api 面板的权限下,点击添加主账号。
在添加主账号下方的新的主账号中,输入
chat-api-push@system.gserviceaccount.com
。在分配角色下的选择角色中,选择 Pub/Sub > Pub/Sub Publisher。
点击保存。
gcloud CLI
创建 ID 为
events-api
的 Pub/Sub 主题:gcloud pubsub topics create events-api
向 Chat IAM 用户授予向 Pub/Sub 主题发布消息的权限:
gcloud pubsub topics add-iam-policy-binding events-api \ --member='serviceAccount:chat-api-push@system.gserviceaccount.com' \ --role='roles/pubsub.publisher'
创建 Firestore 数据库
Firestore 数据库会持久化和检索 Chat 聊天室中的数据,例如消息。您不需要定义数据模型,该模型是由 model/message.js
和 services/firestore-service.js
文件在示例代码中隐式设置的。
AI 知识助理 Chat 应用数据库使用基于整理成 Firestore 数据模型。
集合的 文档的 NoSQL 数据模型。如需了解详情,请参阅下图简要介绍了 AI Knowledge Assistant Chat 应用的数据模型:
根目录包含两个集合:
spaces
,其中每个文档代表添加了 Chat 应用的 Chat 聊天室。每条消息由messages
子集合中的一个文档表示。users
,其中每个文档代表将 Chat 应用添加到 Chat 聊天室的用户。
查看集合、文档和字段定义
spaces
包含 AI 知识助理 Chat 应用的 Chat 聊天室。
字段 | |
---|---|
Document ID | String 特定聊天室的唯一 ID。Chat API 中聊天室资源名称的一部分。 |
messages | Subcollection of Documents ( 在 Chat 聊天室中发送的消息。对应于 Firebase 中 message 的 Document ID 。 |
spaceName | String Chat API 中聊天室的唯一名称。与 Chat API 中的聊天室资源名称对应。 |
messages
Chat 聊天室中发送的消息。
字段 | |
---|---|
Document ID | String 特定消息的唯一 ID。 |
name | String Chat API 中消息的唯一名称。对应于 Chat API 中的消息资源名称。 |
text | String 邮件的文本正文。 |
time | String (Timestamp format) 消息的创建时间。 |
users
将 AI 知识助理 Chat 应用添加到 Chat 聊天室的用户。
字段 | |
---|---|
Document ID | String 特定用户的唯一 ID。 |
accessToken | String 在 OAuth 2.0 用户授权期间授予的访问令牌,用于调用 Google Workspace API。 |
refreshToken | String 在 OAuth 2.0 用户授权期间授予的刷新令牌。 |
以下是创建 Firestore 数据库的方法:
Google Cloud 控制台
在 Google Cloud 控制台中,依次选择菜单 > Firestore。
点击创建数据库。
在选择您的 Firestore 模式中,点击原生模式。
点击继续。
配置数据库:
在为数据库命名中,将数据库 ID 保留为
(default)
。在位置类型下,选择区域。
在区域中,为您的数据库指定一个区域,例如
us-central1
。为获得最佳性能,请选择与 Chat 应用的 Cloud Functions 函数相同或相近的位置。
点击创建数据库。
gcloud CLI
在原生模式下创建 Firestore 数据库:
gcloud firestore databases create \ --location=LOCATION \ --type=firestore-native
将 LOCATION 替换为 Firestore 区域的名称,例如
us-central1
。为获得最佳性能,请选择与 Chat 应用的 Cloud Functions 函数相同或相近的位置。
创建和部署 Chat 应用
现在,您的 Google Cloud 项目已创建并配置完毕,您可以开始构建和部署 Chat 应用了。在本部分中,您将执行以下操作:
- 创建并部署两个 Cloud Functions 函数。一个用于响应 Chat 互动事件,另一个用于响应 Pub/Sub 事件。
- 在 Google Chat API 配置页面上创建和部署 Chat 应用。
创建和部署 Cloud Functions 函数
在本部分中,您将创建并部署两个 Cloud Functions 函数,其名称为:
app
:托管并运行 Chat 应用的代码,以 HTTP 请求的形式响应从 Chat 接收的事件。eventsApp
:接收和处理 Chat 聊天室事件,例如来自 Pub/Sub 的消息。
这些 Cloud Functions 共同构成了 AI 知识助理 Chat 应用的应用逻辑。
(可选)在创建 Cloud Functions 函数之前,您可以花些时间查看并熟悉 GitHub 上托管的示例代码。
创建和部署 app
Google Cloud 控制台
从 GitHub 下载 ZIP 文件形式的代码。
解压缩下载的 ZIP 文件。
解压缩的文件夹包含整个 Google Workspace 示例代码库。
在解压缩的文件夹中,导航到
google-chat-samples-main/node/ai-knowledge-assistant
目录。在
google-chat-samples/node/ai-knowledge-assistant
目录中,添加您在创建 OAuth 客户端 ID 凭据以用于身份验证和授权时下载的client_secrets.json
文件。将
ai-knowledge-assistant
文件夹的内容压缩成一个 ZIP 文件。zip 文件的根目录必须包含以下文件和文件夹:
.gcloudignore
.gitignore
README.md
deploy.sh
env.js
events_index.js
http_index.js
index.js
client_secrets.json
package-lock.json
package.json
controllers/
model/
services/
test/
在 Google Cloud 控制台中,依次选择菜单 > Cloud Functions。
确保为您的 Chat 应用选择了 Google Cloud 项目。
点击
创建函数。在创建函数页面上,设置您的函数:
- 在环境中,选择 Cloud Run Functions。
- 在函数名称中,输入
app
。 - 在区域中,选择一个区域,例如
us-central1
。此区域必须与您在创建 OAuth 客户端 ID 凭据以进行身份验证和授权时在已获授权的重定向 URI 中设置的区域一致。 - 在触发器类型中,选择 HTTPS。
- 在身份验证下,选择允许未通过身份验证的调用。
- 点击下一步。
在运行时中,选择 Node.js 20。
在入口点中,删除默认文本并输入
app
。在源代码中,选择 Zip upload。
在目标存储桶中,创建或选择一个存储桶:
- 点击浏览。
- 选择存储桶。
- 点击选择。
Google Cloud 会将该 zip 文件上传到该存储分区中,并提取该文件中的组件文件。然后,Cloud Functions 会将组件文件复制到 Cloud Functions 函数中。
在 Zip 文件中,上传您从 GitHub 下载、解压缩并重新压缩的 zip 文件:
- 点击浏览。
- 找到并选择该 ZIP 文件。
- 点击打开。
点击部署。
Cloud Functions 详情页面随即打开,此时您的函数会带有两个进度指示器:一个用于构建,一个用于服务。当两个进度指示器都消失并替换为对勾标记时,您的函数已部署并准备就绪。
修改示例代码以设置常量:
- 在 Cloud Functions 函数详情页面上,点击修改。
- 点击下一步。
- 在源代码中,选择内嵌编辑器。
- 在内嵌编辑器中,打开并修改
env.js
文件:- 将 project 的值设置为您的 Cloud 项目 ID。
- 将 location 的值设置为 Cloud Functions 函数的区域,例如
us-central1
。
点击部署。
gcloud CLI
从 GitHub 克隆代码:
git clone https://github.com/googleworkspace/google-chat-samples.git
切换到此 AI 知识助理 Chat 应用代码所在的目录:
cd google-chat-samples/node/ai-knowledge-assistant
在
google-chat-samples/node/ai-knowledge-assistant
目录中,添加您在创建 OAuth 客户端 ID 凭据时下载的client_secrets.json
文件,以进行身份验证和授权。修改
env.js
文件以设置环境变量:- 将 project 的值设置为您的 Cloud 项目 ID。
- 将 location 的值设置为 Cloud Functions 函数的区域,例如
us-central1
。
将 Cloud Functions 函数部署到 Google Cloud:
gcloud functions deploy app \ --gen2 \ --region=REGION \ --runtime=nodejs20 \ --source=. \ --entry-point=app \ --trigger-http \ --allow-unauthenticated
将 REGION 替换为 Cloud Functions 函数区域的值,以匹配
env.js
文件中设置的区域(例如us-central1
)。
创建和部署 eventsApp
Google Cloud 控制台
在 Google Cloud 控制台中,依次点击菜单 > Cloud Functions。
确保已选择 Chat 应用的 Google Cloud 项目。
点击
创建函数。在创建函数页面上,设置您的函数:
- 在环境中,选择 Cloud Run 函数。
- 在函数名称中,输入
eventsApp
。 - 在区域中,选择一个区域,例如
us-central1
。此区域必须与您在创建 OAuth 客户端 ID 凭据以进行身份验证和授权时在已获授权的重定向 URI 中设置的区域一致。 - 在触发器类型中,选择 Cloud Pub/Sub。
- 在 Cloud Pub/Sub 主题中,选择您创建的 Pub/Sub 主题名称,其格式为
projects/PROJECT/topics/events-api
,其中 PROJECT 是您的 Cloud 项目 ID。 - 如果您看到以
Service account(s) might not have enough permissions to deploy the function with the selected trigger.
开头的消息,请点击全部授予。 - 点击下一步。
在运行时中,选择 Node.js 20。
在入口点中,删除默认文本,然后输入
eventsApp
。在源代码中,选择 Cloud Storage 中的 ZIP 文件。
在 Cloud Storage 位置中,点击浏览。
选择您在创建
app
Cloud Functions 函数时上传 ZIP 文件到的存储桶。点击您上传的 ZIP 文件。
点击选择。
点击部署。
系统会打开 Cloud Functions 详情页面,并显示您的函数以及三个进度指示器:一个指示构建进度,一个指示服务进度,一个指示触发器进度。当三个进度指示器全部消失并被对勾标记取代时,表示您的函数已部署完毕并可供使用。
修改示例代码以设置常量:
- 在 Cloud Functions 函数详情页面上,点击修改。
- 点击下一步。
- 在源代码中,选择内嵌编辑器。
- 在内嵌编辑器中,打开并修改
env.js
文件:- 将 project 的值设置为您的 Cloud 项目 ID。
- 将 location 的值设置为 Cloud Functions 函数的区域,例如
us-central1
。
点击部署。
gcloud CLI
在 gcloud CLI 中,切换到包含您之前从 GitHub 克隆的此 AI 知识助理 Chat 应用代码的目录(如果您尚未切换到该目录):
cd google-chat-samples/node/ai-knowledge-assistant
在
google-chat-samples/node/ai-knowledge-assistant
目录中,添加您在创建 OAuth 客户端 ID 凭据时下载的client_secrets.json
文件,以进行身份验证和授权。修改
env.js
文件以设置环境变量:- 将 project 的值设置为您的 Cloud 项目 ID。
- 将 location 的值设置为 Cloud Functions 函数的区域,例如
us-central1
。
将 Cloud Functions 函数部署到 Google Cloud:
gcloud functions deploy eventsApp \ --gen2 \ --region=REGION \ --runtime=nodejs20 \ --source=. \ --entry-point=eventsApp \ --trigger-topic=events-api
将 REGION 替换为 Cloud Functions 函数区域的值,以匹配
env.js
文件中设置的区域(例如us-central1
)。
复制 app
Cloud Functions 函数的触发器网址
在在 Google Cloud 控制台中配置 Chat 应用的下一部分中,您将粘贴 app
Cloud Functions 函数的触发器网址。
Google Cloud 控制台
在 Google Cloud 控制台中,依次选择菜单 > Cloud Functions。
在 Cloud Functions 列表的名称列中,点击
app
。点击触发器。
复制网址。
gcloud CLI
描述
app
Cloud Functions 函数:gcloud functions describe app
复制
url
属性。
在 Google Cloud 控制台中配置 Chat 应用
本部分介绍了如何在 Google Cloud 控制台中使用 Chat 应用的相关信息(包括 Chat 应用的名称以及用于向其发送 Chat 互动事件的 Chat 应用 Cloud Functions 函数的触发器网址)配置 Chat API。
在 Google Cloud 控制台中,依次点击菜单 > 更多产品 > Google Workspace > 产品库 > Google Chat API > 管理 > 配置。
在应用名称中,输入
AI knowledge assistant
。在头像网址中输入
https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg
。在说明中,输入
Answers questions with AI
。点击启用互动功能开关,将其切换到“开启”位置。
在功能下方,选择加入聊天室和群组对话。
在连接设置下,选择 HTTP 端点网址。
在 HTTP 端点网址中,粘贴
app
Cloud Functions 函数中的触发器网址,格式为https://
REGION-
PROJECT_ID.cloudfunctions.net/app
,其中 REGION 是 Cloud Functions 函数的区域,例如us-central1
,PROJECT_ID 是您创建的 Cloud 项目的项目 ID。在公开范围下,选择面向 Workspace 网域中的特定人员和群组提供此 Chat 应用,然后输入您的电子邮件地址。
(可选)在日志下,选择将错误记录到 Logging。
点击保存。系统会显示一条已保存的配置消息,表示 Chat 应用已准备好进行测试。
测试 Chat 应用
在 Chat 聊天室中,通过询问 AI 知识助理 Chat 应用可以回答的问题,测试该应用。
您可以通过以下几种方式测试 AI Knowledge Assistant Chat 应用:
- 将 AI 知识助理 Chat 应用添加到现有 Chat 聊天室,然后询问与该聊天室相关的问题。
- 创建 Chat 聊天室并发布几条消息,以作为数据源。您可以使用
Answer 20 common onboarding questions employees ask their teams.
等提示从 Gemini 获取消息,也可以粘贴 “使用 Chat 进行开发”概览指南中的几段文字,然后提出相关问题。
在本教程中,我们来创建一个 Chat 聊天室,并粘贴使用 Chat 开发概览指南中的几段内容。
打开 Google Chat。
创建 Chat 聊天室:
点击 > 创建聊天室。
新建聊天在聊天室名称中,输入
Testing AI knowledge assistant app
。在此聊天室的用途是什么?下方,选择协作。
在访问权限设置下方,选择哪些人可以访问聊天室。
点击创建。
添加消息以用作数据源:
在网络浏览器中,访问“使用 Chat 进行开发”概览指南。
将本指南的内容复制并粘贴到您创建的 Chat 聊天室中
添加 AI 知识助理 Chat 应用:
在消息撰写栏中,输入
@AI knowledge assistant
,然后在显示的建议菜单中选择 AI 知识助理 Chat 应用,然后按enter
。系统会显示一条消息,询问您是否要将 AI 知识助理 Chat 应用添加到聊天室。点击添加到聊天室。
如果这是您首次将 Chat 应用添加到聊天室,则必须为 Chat 应用配置身份验证和授权:
- 点击配置。
- 系统会打开一个新的浏览器窗口或标签页,提示您选择一个 Google 账号。选择您要用于测试的账号。
- 查看 AI 知识助理 Chat 应用请求的权限。如需授予这些权限,请点击允许。
- 系统随即会显示
You may close this page now.
消息。 关闭浏览器窗口或标签页,然后返回 Chat 聊天室。
提问:
在消息撰写栏中,输入问题,例如
What are Google Chat apps?
AI 知识助理 Chat 应用提供答案。
(可选)如果答案不准确或不充分,为了帮助 AI 的对话历史记录得到改进,请点击
获取帮助。AI 知识助理 Chat 应用会提及聊天室管理员,并请对方回答问题。AI 知识助理 Chat 应用下次就会知道答案!
注意事项、备选架构选项和后续步骤
本部分将介绍构建 AI 知识助理 Chat 应用的其他方式。
Firestore、Cloud Storage 或调用 Chat API 中的 List Messages
本教程建议将 Chat 聊天室数据(如消息)存储在 Firestore 数据库中,因为与每次 Chat 应用回答问题时,使用 Chat API 对 Message
资源调用 list
方法相比,这样做可以提升性能。此外,反复调用 list messages
可能会导致 Chat 应用达到 API 配额限制。
但是,如果 Chat 聊天室的对话记录过长,使用 Firestore 可能会产生很高的费用。
Cloud Storage 是 Firestore 的替代方案。AI 知识助理 Chat 应用处于活跃状态的每个聊天室都有自己的对象,并且每个对象都是一个文本文件,其中包含聊天室中的所有消息。这种方法的优点是,可以一次性将文本文件的全部内容馈送给采用 Gemini 的 Vertex AI,但缺点是更新对话记录需要花费更多精力,因为您无法附加到 Cloud Storage 中的对象,只能替换现有对象。如果您定期更新消息记录,则此方法不适用;但如果您定期(例如每周一次)批量更新消息记录,则此方法非常适用。
问题排查
当 Google Chat 应用或卡片返回错误时,Chat 界面会显示“出了点问题”消息。或“无法处理您的请求”。有时,Chat 界面不会显示任何错误消息,但 Chat 应用或卡片会产生意外结果;例如,卡片消息可能不会显示。
虽然 Chat 界面中可能不会显示错误消息,但当 Chat 应用的错误日志记录功能处于开启状态时,描述性错误消息和日志数据可帮助您修正错误。如需查看、调试和修正错误方面的帮助,请参阅排查和修正 Google Chat 错误。
清理
为避免系统因本教程中使用的资源向您的 Google Cloud 账号收取费用,我们建议您删除该 Cloud 项目。
- 在 Google Cloud 控制台中,前往管理资源页面。依次点击菜单 > IAM 和管理> 管理资源。
- 在项目列表中,选择要删除的项目,然后点击删除 。
- 在对话框中输入项目 ID,然后点击关停以删除项目。