使用 Gemini AI Chat 应用根据 Chat 对话回答问题

本教程介绍如何构建一款能够解答问题的 Google Chat 应用 基于 Chat 聊天室对话的生成式问题, 由 Vertex AI with Gemini 提供支持。Chat 应用会使用 使用 Google Workspace Events API 和 Pub/Sub 来识别和回答问题 可实时在 Chat 聊天室中发布内容,即使 。

Chat 应用会将聊天室中发送的所有消息都用作 数据源和知识库:当有人提出问题时, Chat 应用会检查之前分享的答案,然后 共享其中之一。如果未找到答案,则表示无法接听。针对每个回答, 用户可以点击配件操作按钮,用“@”提及聊天室管理员并询问 获取答案。通过使用 Gemini AI,Google Chat 应用会根据 通过持续训练聊天室中的对话,扩大了知识库的规模 。

Chat 应用在员工入职培训中的运作方式 和支持空间:

  • <ph type="x-smartling-placeholder">
    </ph> 提及 AI 知识助理应用即会将其添加到聊天室中。
    图 1.Charlie 将 AI 知识助理 Chat 应用添加到了 Chat 聊天室中。
  • Dana 问一个问题。
    图 2.Dana 询问该公司是否提供公开演讲培训。
  • AI 知识助理 Chat 应用解答了这个问题。
    图 3.AI 知识助理 Chat 应用根据 Chat 聊天室的对话记录,提示 Vertex AI 与 Gemini 回答 Dana 的问题,然后分享答案。

前提条件

目标

  • 构建一个使用生成式 AI 的 Chat 扩展应用 根据 Chat 聊天室中分享的知识回答问题 对话。
  • 借助生成式 AI: <ph type="x-smartling-placeholder">
      </ph>
    • 检测并回答员工的问题。
    • 在 Chat 中不断从正在进行的对话中学习 空间。
  • 实时听取和回复 Chat 聊天室中的消息 即使 Chat 应用不是直接通过 Google Chat 消息。
  • 通过向 Firestore 数据库写入和从中读取数据来保留消息。
  • 在 Chat 聊天室中提及聊天室以促进协作 。

架构

下图显示了 Google Workspace 的架构和 AI Knowledge Assistant 使用的 Google Cloud 资源 Chat 应用。

AI 知识助理 Chat 应用的架构图

AI 知识助理 Chat 应用的运作方式如下:

  • 用户添加 AI 知识助理 Chat 应用 Chat 聊天室:

    1. Chat 应用会提示 将用户添加到 Chat 聊天室来进行配置 身份验证和授权。

    2. Chat 应用会通过以下方式提取聊天室消息: 在 Chat API 中调用 spaces.messages.list 方法,并 然后将提取的消息存储在 Firestore 数据库中。

    3. Chat 应用会调用 subscriptions.create 方法启动 监听聊天室中的消息等事件。通过 订阅的通知端点是一个 Pub/Sub 主题 Eventarc,用于将事件转发到 Chat 应用。

    4. Chat 应用会向以下用户发布一条简介消息: 空间

  • Chat 聊天室中的用户发布了一条消息:

    1. Chat 应用会实时接收消息 Pub/Sub 主题

    2. Chat 应用将消息添加到 Firestore 数据库。

      如果用户稍后编辑或删除消息, Chat 应用收到更新或删除的活动 然后在 Firestore 中更新或删除消息 数据库。

    3. Chat 应用将消息发送到 Vertex AI 使用 Gemini:

      1. 该提示会指示 Vertex AI with Gemini 检查消息 包含一个问题。如果回答正确,Gemini 会根据 Firestore 中保存的 Chat 聊天室消息记录 然后,Google Chat 应用会将该消息发送到 Chat 聊天室。如果没有,就不要回应。

      2. 如果 Vertex AI with Gemini 回答了这个问题, Chat 应用发布了 调用 spaces.messages.create 方法 使用应用身份验证的 Chat API。

        如果基于 Gemini 的 Vertex AI 无法回答此问题, Chat 应用发布了 提示您在 Chrome 中找不到该问题的答案 Chat 聊天室的聊天记录。

        消息始终包含一个配件操作按钮,用户可以 这会导致 Chat 应用 用“@”提及聊天室管理员,让其回答问题。

  • Chat 应用会从 Chat 聊天室订阅的 Google Workspace Events API 即将过期:

    1. Chat 应用会发送 调用 subscriptions.patch 方法(位于 Google Workspace Events API。
  • Chat 应用已从 Chat 中移除 空格:

    1. Chat 应用会在以下日期后删除订阅: 调用 subscriptions.delete 方法(在 Google Workspace Events API。

    2. Chat 应用删除 Chat 从 Firestore 中获取空间数据

查看 AI 知识助理 Chat 应用使用的产品

AI 知识助理 Chat 应用使用 以下 Google Workspace 和 Google Cloud 产品:

  • Vertex AI API 与 Gemini 搭配使用: 由 Gemini 提供支持的生成式 AI 平台。AI 知识助理 Chat 应用将 Vertex AI API 与 Gemini 结合使用 识别、理解并回答员工的问题。
  • Chat API: 此 API 用于开发 Google Chat 应用,这些应用会接收和响应 聊天互动事件,例如消息。AI 知识助理 Chat 应用使用 Chat API 执行以下操作: <ph type="x-smartling-placeholder">
      </ph>
    • 接收和响应 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 知识助理聊天应用使用 Eventarc 将事件从 Pub/Sub 路由到 Chat 聊天室,并 接收和处理订阅事件的 Cloud Functions 函数。
  • Cloud Functions: 一项轻量级无服务器计算服务,让您可以 单一用途的独立函数,可用于响应 Chat 互动和订阅事件,而无需管理服务器或运行时 环境AI 知识助理 Chat 应用 使用了两个 Cloud Functions 函数,分别名为: <ph type="x-smartling-placeholder">
      </ph>
    • app:托管 Chat 发送的 HTTP 端点 作为计算平台运行逻辑, 处理和响应这些事件。
    • eventsApp:接收和处理 Chat 聊天室 Pub/Sub 订阅中的消息等事件。
    。 Cloud Functions 使用以下 Google Cloud 产品来构建和 主机计算资源: <ph type="x-smartling-placeholder">
      </ph>
    • Cloud Build: 全代管式持续集成、交付和部署平台 运行自动构建的系统
    • Cloud Run: 用于运行容器化应用的全代管式环境。

准备环境

本部分介绍如何为 Chat 应用。

创建 Google Cloud 项目

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,点击“菜单”图标 &gt; IAM 和管理 &gt; 创建项目

    转到“创建项目”

  2. 项目名称字段中,为您的项目输入描述性名称。

    可选:要修改项目 ID,请点击修改。项目 ID 无法更改 创建项目后,请选择一个满足您需求的 ID 项目。

  3. 地理位置字段中,点击浏览以显示适合您的潜在地理位置 项目。然后,点击选择。 <ph type="x-smartling-placeholder">
  4. 点击创建。Google Cloud 控制台会转到“信息中心”页面,并且您的项目已创建完毕 就会出现这种问题

gcloud CLI

在以下某个开发环境中,访问 Google Cloud CLI (`gcloud`):

  • Cloud Shell:通过 gcloud CLI 使用在线终端 请激活 Cloud Shell。
    激活 Cloud Shell
  • Local Shell:如需使用本地开发环境, 安装初始化 gcloud CLI
    如需创建 Cloud 项目,请使用“gcloud projects create”命令:
    gcloud projects create PROJECT_ID
    通过设置要创建的项目的 ID 来替换 PROJECT_ID

为 Cloud 项目启用结算功能

<ph type="x-smartling-placeholder">

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往结算。点击 菜单 &gt; 结算 &gt; 我的项目

    转到“我的项目的结算”

  2. 选择组织中,选择与 Google Cloud 项目。
  3. 在项目行中,打开操作菜单 (), 点击更改结算信息,然后选择 Cloud Billing 账号。
  4. 点击设置账号

gcloud CLI

  1. 如需列出可用的结算账号,请运行以下命令:
    gcloud billing accounts list
  2. 将结算账号与 Google Cloud 项目相关联:
    gcloud billing projects link PROJECT_ID --billing-account=BILLING_ACCOUNT_ID

    替换以下内容:

    • PROJECT_ID 您要为其启用结算功能的 Cloud 项目。
    • BILLING_ACCOUNT_ID 是要关联的结算账号 ID Google Cloud 项目。

启用 API

Google Cloud 控制台

  1. 在 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。

    启用 API

  2. 确认您是在正确的 Cloud 项目,然后点击下一步

  3. 确认您启用的 API 正确无误,然后点击启用

gcloud CLI

  1. 如有必要,请将当前 Cloud 项目设置为您 创建时间:

    gcloud config set project PROJECT_ID
    

    PROJECT_ID 替换为项目 ID 您创建的 Cloud 项目。

  2. 启用 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
    

设置身份验证和授权

身份验证和授权可让 Google Workspace 中的聊天应用访问权限资源,以及 Google Cloud

在本教程中,您将在内部发布 Google Chat 应用, 可以使用占位信息。在发布 外部的 Google Chat 应用,将占位信息替换为 提供真实信息。

  1. 在 Google Cloud 控制台中,前往 菜单 &gt; API 和服务 &gt; OAuth 同意屏幕

    转到 OAuth 同意屏幕

  2. 用户类型下,选择内部,然后点击创建

  3. 应用名称中,输入 AI knowledge assistant

  4. 用户支持电子邮件中,选择您的电子邮件地址或相应的 Google 群组。

  5. 开发者联系信息下方,输入您的电子邮件地址。

  6. 点击保存并继续

  7. 点击添加或移除范围。此时会显示一个面板,其中包含范围列表 您在 Cloud 项目中启用的每个 API 的配额。

  8. 手动添加范围下方,粘贴以下范围:

    • https://www.googleapis.com/auth/chat.messages
  9. 点击 Add to Table

  10. 点击更新

  11. 点击保存并继续

  12. 查看应用注册摘要,然后点击返回信息中心

创建 OAuth 客户端 ID 凭据

  1. 在 Google Cloud 控制台中,前往 菜单 &gt; API 和服务 &gt; 凭据

    转到“凭据”页面

  2. 点击创建凭据 &gt; OAuth 客户端 ID

  3. 点击应用类型 &gt; Web 应用

  4. 名称字段中,输入凭据的名称。只有 显示在 Google Cloud 控制台中。

  5. 已获授权的重定向 URI 下,点击添加 URI

  6. URI 1 中,输入以下内容:

    https://REGION-PROJECT_ID.cloudfunctions.net/app/oauth2
    

    替换以下内容:

    • REGION:Cloud Functions 函数的区域,例如 us-central1。 之后,在创建这两个 Cloud Functions 函数时,您必须设置其 设置为此值。
    • PROJECT_ID:Cloud 项目的项目 ID 创建的内容
  7. 点击创建

  8. 已创建 OAuth 客户端窗口中,点击下载 JSON

  9. 将下载的文件另存为 client_secrets.json。稍后,当您创建 这两个 Cloud Functions 函数,您需要在每个 Cloud Functions 函数中添加 client_secrets.json 文件, 部署。

  10. 点击确定

创建 Pub/Sub 主题

Pub/Sub 主题 使用 Google Workspace Events API 订阅 Chat 中的事件 类似消息的聊天室,以及实时通知 Chat 应用 。

以下是创建 Pub/Sub 主题的方法:

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 菜单 &gt; Pub/Sub

    转到“Pub/Sub”

  2. 点击创建主题

  3. 主题 ID 中,输入 events-api

  4. 取消选择添加默认订阅

  5. 加密下,选择 Google 管理的加密密钥

  6. 点击创建。系统会显示 Pub/Sub 主题。

  7. 为了让此 Pub/Sub 主题和 Google Workspace Events API 正常运行 向 Chat IAM 用户授予发帖权限 Pub/Sub 主题:

    1. events-api 面板的权限下,点击 添加主账号

    2. 添加主账号下的新的主账号中,输入 chat-api-push@system.gserviceaccount.com

    3. 分配角色下的选择角色中,选择 Pub/Sub &gt; Pub/Sub Publisher

    4. 点击保存

gcloud CLI

  1. 创建主题 ID 为 events-api 的 Pub/Sub 主题:

    gcloud pubsub topics create events-api
    
  2. 向 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.jsservices/firestore-service.js 个文件。

AI 知识助理 Chat 应用数据库使用 NoSQL 数据模型 文档 组织为 集合。如需了解详情,请参阅 Firestore 数据模型

下图是 AI Knowledge Assistant 的概览 Chat 应用的数据模型:

Firestore 数据库的数据模型。

根文件夹包含两个集合:

  1. spaces,其中每个文档代表一个 Chat 聊天室, Chat 扩展应用。每条消息都表示为 由 messages 子集合中的文档表示。

  2. users,其中每个文档代表一位添加 从 Chat 扩展应用复制到 Chat 聊天室。

查看集合、文档和字段定义

spaces

包含 AI 知识助理 Chat 应用的 Chat 聊天室。

字段
Document IDString
特定聊天室的唯一 ID。Chat API 中聊天室资源名称的一部分。
messagesSubcollection of Documents (messages)
在 Chat 聊天室中发送的消息。对应于 Firebase 中 messageDocument ID
spaceNameString
Chat API 中聊天室的唯一名称。与 Chat API 中的聊天室资源名称对应。

messages

Chat 聊天室中发送的消息。

字段
Document IDString
特定消息的唯一 ID。
nameString
Chat API 中消息的唯一名称。与 Chat API 中的消息资源名称。
textString
邮件的文本正文。
timeString (Timestamp format)
消息的创建时间。

users

在 Chat 聊天室中添加了 AI 知识助理 Chat 应用的用户。

字段
Document IDString
特定用户的唯一 ID。
accessTokenString
在 OAuth 2.0 用户授权期间授予的访问令牌,用于调用 Google Workspace API。
refreshTokenString
在 OAuth 2.0 用户授权期间授予的刷新令牌。

创建 Firestore 数据库的方法如下:

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 菜单 &gt; Firestore

    转到 Firestore

  2. 点击创建数据库

  3. 选择您的 Firestore 模式中,点击原生模式

  4. 点击继续

  5. 配置数据库:

    1. 为数据库命名中,将数据库 ID 保留为 (default)

    2. 位置类型下,选择区域

    3. 区域中,为您的数据库指定一个区域,例如 us-central1。为获得最佳效果,请选择同一地点或附近地点 Chat 应用的 Cloud Functions 函数。

  6. 点击创建数据库

gcloud CLI

  • 在原生模式下创建 Firestore 数据库:

    gcloud firestore databases create \
    --location=LOCATION \
    --type=firestore-native
    

    LOCATION 替换为 Firestore 的名称 区域,例如 名称:us-central1。为获得最佳效果,请选择同一地点或附近地点 Chat 应用的 Cloud Functions 函数。

创建和部署 Chat 扩展应用

现在,您的 Google Cloud 项目已创建并配置完毕,您可以开始构建 并部署 Chat 应用。在本部分中,您需要 以下:

  1. 创建和部署两个 Cloud Functions 函数。一个用于回复聊天 一个响应事件和一个响应 Pub/Sub 事件。
  2. 使用 Google Chat API 创建和部署 Chat 扩展应用 配置页面。

创建和部署 Cloud Functions 函数

在本部分中,您将创建并部署两个 Cloud Functions 函数,其名称为:

  • app:托管并运行 Chat 应用的 用于以 HTTP 形式响应从 Chat 接收的事件的代码 请求。
  • eventsApp:接收和处理 Chat 聊天室 例如来自 Pub/Sub 的消息

这些 Cloud Functions 函数共同构成了 AI 知识助理, Chat 应用的应用逻辑。

(可选)在创建 Cloud Functions 函数之前,请花点时间查看 熟悉 GitHub 上托管的示例代码。

在 GitHub 上查看

创建和部署 app

Google Cloud 控制台

  1. 从 GitHub 下载 ZIP 文件形式的代码。

    下载 zip 文件

  2. 解压缩下载的 ZIP 文件。

    解压缩的文件夹包含整个 Google Workspace 示例 存储库

  3. 在解压缩的文件夹中,前往 google-chat-samples-main/node/ai-knowledge-assistant 目录中。

  4. google-chat-samples/node/ai-knowledge-assistant 目录中, 将您在上传时下载的 client_secrets.json 文件 已创建 OAuth 客户端 ID 凭据 进行身份验证和授权

  5. 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/
  6. 在 Google Cloud 控制台中,前往 菜单 &gt; Cloud Functions

    转到 Cloud Functions

    确保您的 Google Cloud 项目 已选择 Chat 应用。

  7. 点击 创建函数

  8. 创建函数页面上,设置您的函数:

    1. 环境中,选择第 2 代
    2. 函数名称中,输入 app
    3. 区域中,选择一个区域,例如 us-central1。此区域 必须与您在授权的重定向 URI 中设置的区域相匹配, 您 已创建 OAuth 客户端 ID 凭据 进行身份验证和授权
    4. 触发器类型中,选择 HTTPS
    5. 身份验证下,选择 允许未通过身份验证的调用
    6. 点击下一步
  9. 运行时中,选择 Node.js 20

  10. 入口点中,删除默认文本并输入 app

  11. 源代码中,选择 Zip upload

  12. 目标存储分区中, 创建 或选择一个存储分区:

    1. 点击浏览
    2. 选择存储分区。
    3. 点击选择

    Google Cloud 将 zip 文件上传到并解压缩组件文件 此存储分区中的实例。Cloud Functions 随后会将组件文件复制到 Cloud Functions 函数。

  13. Zip 文件中,上传您从 GitHub 下载的 ZIP 文件。 提取后重新压缩后的结果:

    1. 点击浏览
    2. 找到并选择该 ZIP 文件。
    3. 点击打开
  14. 点击部署

    系统随即会打开 Cloud Functions 详情页面,并显示您的函数 有两个进度指示器:一个用于构建,一个用于服务 当两个进度指示器都消失并替换为对勾时 这表示您的函数已部署并准备就绪。

  15. 修改示例代码以设置常量:

    1. Cloud Functions 函数详情页面上,点击修改
    2. 点击下一步
    3. 源代码中,选择内嵌编辑器
    4. 在内嵌编辑器中,打开并修改 env.js 文件: <ph type="x-smartling-placeholder">
        </ph>
      1. project 的值设置为 Cloud 项目 ID。
      2. location 的值设置为 Cloud Functions 函数的 region [地区]、 例如us-central1
  16. 点击部署

gcloud CLI

  1. 从 GitHub 克隆代码:

    git clone https://github.com/googleworkspace/google-chat-samples.git
    
  2. 切换到包含此 AI 知识代码的目录 聊天助理应用:

    cd google-chat-samples/node/ai-knowledge-assistant
    
  3. google-chat-samples/node/ai-knowledge-assistant 目录中, 将您在上传时下载的 client_secrets.json 文件 已创建 OAuth 客户端 ID 凭据 进行身份验证和授权

  4. 修改 env.js 文件以设置环境变量:

    1. project 的值设置为您的 Cloud 项目 ID。
    2. location 的值设置为 Cloud Functions 函数的 region [地区],例如 us-central1
  5. 将 Cloud Functions 函数部署到 Google Cloud:

    gcloud functions deploy app \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=app \
    --trigger-http \
    --allow-unauthenticated
    

    REGION 替换为 Cloud Functions 函数 region [地区] 以便与 env.js 文件中设置的地址匹配,例如 us-central1

创建和部署 eventsApp

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 菜单 &gt; Cloud Functions

    转到 Cloud Functions

    确保您的 Google Cloud 项目 已选择 Chat 应用。

  2. 点击 创建函数

  3. 创建函数页面上,设置您的函数:

    1. 环境中,选择第 2 代
    2. 函数名称中,输入 eventsApp
    3. 区域中,选择一个区域,例如 us-central1。此区域 必须与您在授权的重定向 URI 中设置的区域相匹配, 您 已创建 OAuth 客户端 ID 凭据 进行身份验证和授权
    4. 触发器类型中,选择 Cloud Pub/Sub
    5. Cloud Pub/Sub 主题中,选择您 创建完成,其格式为 projects/PROJECT/topics/events-api,其中 PROJECT 是您的 Cloud 项目 ID。
    6. 如果您看到以 Service account(s) might not have enough permissions to deploy the function with the selected trigger. 开头的消息,请点击全部授予
    7. 点击下一步
  4. 运行时中,选择 Node.js 20

  5. 入口点中,删除默认文本并输入 eventsApp

  6. 源代码中,选择 Zip from Cloud Storage

  7. Cloud Storage 位置中,点击浏览

  8. 选择您在创建 app Cloud Functions 函数。

  9. 点击您上传的 ZIP 文件。

  10. 点击选择

  11. 点击部署

    系统随即会打开 Cloud Functions 详情页面,并显示您的函数 三个进度指示器:一个用于构建,一个用于服务 另一个用于触发器当三个进度指示器全部消失时 并替换为对勾标记,即表示函数已部署且准备就绪。

  12. 修改示例代码以设置常量:

    1. Cloud Functions 函数详情页面上,点击修改
    2. 点击下一步
    3. 源代码中,选择内嵌编辑器
    4. 在内嵌编辑器中,打开并修改 env.js 文件: <ph type="x-smartling-placeholder">
        </ph>
      1. project 的值设置为 Cloud 项目 ID。
      2. location 的值设置为 Cloud Functions 函数的 region [地区]、 例如us-central1
  13. 点击部署

gcloud CLI

  1. 在 gcloud CLI 中,如果尚未切换到该目录,请切换到 其中包含这些 AI 知识的代码, Google 助理 Chat 应用 从 GitHub 克隆:

    cd google-chat-samples/node/ai-knowledge-assistant
    
  2. google-chat-samples/node/ai-knowledge-assistant 目录中, 将您在上传时下载的 client_secrets.json 文件 已创建 OAuth 客户端 ID 凭据 进行身份验证和授权

  3. 修改 env.js 文件以设置环境变量:

    1. project 的值设置为您的 Cloud 项目 ID。
    2. location 的值设置为 Cloud Functions 函数的 region [地区],例如 us-central1
  4. 将 Cloud Functions 函数部署到 Google Cloud:

    gcloud functions deploy eventsApp \
    --gen2 \
    --region=REGION \
    --runtime=nodejs20 \
    --source=. \
    --entry-point=eventsApp \
    --trigger-topic=events-api
    

    REGION 替换为 Cloud Functions 函数 region [地区] 以便与 env.js 文件中设置的地址匹配,例如 us-central1

复制 app Cloud Functions 函数的触发器网址

在下一部分中,您将粘贴 app Cloud Functions 函数的触发器网址。 当你 在 Google Cloud 控制台中配置 Chat 应用

Google Cloud 控制台

  1. 在 Google Cloud 控制台中,前往 菜单 &gt; Cloud Functions

    转到 Cloud Functions

  2. 在 Cloud Functions 列表的名称列中,点击 app

  3. 点击触发器

  4. 复制网址

gcloud CLI

  1. 描述 app Cloud Functions 函数:

    gcloud functions describe app
    
  2. 复制 url 属性。

在 Google Cloud 控制台中配置 Chat 应用

本部分介绍如何在 显示您的 Chat 应用相关信息的 Google Cloud 控制台, 包括 Chat 应用的名称 以及 Chat 应用云的触发网址 将 Chat 互动事件发送到的函数。

  1. 在 Google Cloud 控制台中,点击菜单 &gt; 更多产品 &gt; Google Workspace &gt; 产品库 &gt; Google Chat API &gt; 管理 &gt; 配置

    前往 Chat API 配置

  2. 应用名称中,输入 AI knowledge assistant

  3. 头像网址中输入 https://fonts.gstatic.com/s/i/short-term/release/googlesymbols/live_help/default/24px.svg

  4. 说明中,输入 Answers questions with AI

  5. 点击启用互动功能开关,将其切换到“开启”位置。

  6. 功能下方,选择加入聊天室和群组对话

  7. 连接设置下,选择应用网址

  8. 应用网址中,粘贴 app Cloud Functions 函数中的触发器网址。 格式为 https://REGION-PROJECT_ID.cloudfunctions.net/app 其中 REGION 是 Cloud Functions 函数的区域,例如 us-central1 PROJECT_ID项目 ID 您创建的 Cloud 项目。

  9. 公开范围下,选择 将此聊天应用设为允许特定人员和群组使用 Workspace 域名,然后输入您的电子邮件地址。

  10. (可选)在日志下,选择将错误记录到 Logging

  11. 点击保存。系统会显示一条配置已保存的消息,表示 Chat 扩展应用现为 测试。

测试 Chat 应用

在 通过提问来让 Chat 聊天室中的消息 Chat 知识助理应用能够回答问题。

您可以通过以下几种方式测试 AI Knowledge Assistant Chat 应用:

  • 将 AI 知识助理 Chat 应用添加到 现有 Chat 聊天室,并询问与 空间。
  • 创建一个 Chat 聊天室,并发布几条消息以用作 数据源消息的来源 Gemini 可以回答以下问题: Answer 20 common onboarding questions employees ask their teams. 或者, 您可以从 使用 Chat 进行开发概览指南 然后提出相关问题

在本教程中,我们来创建一个 Chat 聊天室,并在其中粘贴一些 从 Chat 开发概览指南。

  1. 打开 Google Chat。

    前往 Google Chat

  2. 创建 Chat 聊天室:

    1. 点击 发起新对话 &gt; 创建聊天室

    2. 聊天室名称中,输入 Testing AI knowledge assistant app

    3. 此聊天室的用途是什么?下方,选择协作

    4. 访问权限设置下方,选择哪些人可以访问聊天室。

    5. 点击创建

  3. 添加消息以用作数据源:

    1. 在网络浏览器中,访问 “使用 Chat 进行开发”概览 指南。

    2. 将本指南的内容复制并粘贴到 Chat 聊天室中 创建的内容

  4. 添加 AI 知识助理 Chat 应用:

    1. 在邮件撰写栏中,输入 @AI knowledge assistant,然后在 在随即显示的建议菜单中,选择 AI 知识助理 Chat 应用,然后按 enter

    2. 系统会显示一条消息,询问您是否要添加 AI 知识助理 将 Chat 应用添加到聊天室。点击添加到聊天室

    3. 如果这是您首次添加 Chat 应用 必须为聊天室配置身份验证和授权, Chat 应用:

      1. 点击配置
      2. 系统会打开一个新的浏览器窗口或标签页,要求您选择一个 Google 账号。选择您要用于测试的账号。
      3. 查看 AI 知识助理授予的权限 Chat 应用请求。要授予这些权限,请点击 允许
      4. 系统随即会显示 You may close this page now. 消息。 关闭浏览器窗口或标签页,然后返回到 Chat 聊天室。
  5. 提问:

    1. 在帖子撰写栏中,输入如下问题: What are Google Chat apps?

    2. AI 知识助理 Chat 应用提供答案。

    3. (可选)如果答案不准确或不充分,为了帮助 AI 改善对话历史记录, 点击 获取帮助。 AI 知识助理 Chat 应用提到 让聊天室管理员回答问题。下次, AI 知识助理 Chat 应用将知晓 答案!

注意事项、其他架构选择和后续步骤

本部分将介绍 AI Knowledge Assistant 的其他方式, 可以构建聊天应用。

Firestore、Cloud Storage 或调用 Chat API 中的 List Messages

本教程建议存储 Chat 聊天室数据,例如 存储在 Firestore 数据库中的消息, 对 Message 调用 list 方法 与 Chat API 通信时 聊天应用回答问题。此外,调用 反复 list messages 可能会导致 聊天应用将达到 API 配额限制。

不过,如果某个 Chat 聊天室的对话记录变为 那么使用 Firestore 可能会产生很高的费用。

<ph type="x-smartling-placeholder"></ph> Cloud Storage 是 Firestore 的替代方案。AI Knowledge Assistant 的每个空间, 处于活跃状态的 Chat 应用会获得自己的对象,而每个对象 是一个文本文件,其中包含聊天室中的所有消息。使用 这种方法可以将文本文件的全部内容馈送到 Vertex AI 与 Gemini 搭配使用,但缺点是需要完成更多工作 更新对话历史记录,因为您无法向 Cloud 中的对象附加数据 只需换掉更多存储空间,如果您经常 但更新消息历史记录会更好,但如果您想进行批量更新 定期(如每周一次)记录消息记录。

问题排查

当 Google Chat 应用或 card 会返回错误, 聊天界面会显示一条内容为“出了点问题”的消息。 或“无法处理您的请求”。有时,Chat 界面 不会显示任何错误消息,但 Chat 应用或 卡片会产生意外结果;例如,卡片消息 。

虽然 Chat 界面中可能不会显示错误消息, 提供描述性错误消息和日志数据,以帮助您修正错误 启用 Chat 应用的错误日志记录时。如需观看方面的帮助, 请参阅 排查并修正 Google Chat 错误

清理

为避免系统因 我们建议您删除 Cloud 项目中。

  1. 在 Google Cloud 控制台中,前往管理资源页面。点击 菜单 &gt; IAM 和管理员 &gt; 管理资源

    <ph type="x-smartling-placeholder"></ph> 前往 Resource Manager

  2. 在项目列表中,选择要删除的项目,然后点击 删除
  3. 在对话框中输入项目 ID,然后点击关停以删除项目 项目。