使用 Vertex AI Agent Builder 构建 AI 代理

1. 准备工作

这篇自学式 Codelab 将引导您使用 Google Cloud 的 Vertex AI Agent Builder 构建 AI 智能体。每个步骤都将重点介绍 Agent Builder 的某项特定功能,并说明其用途。

前提条件

学习内容

  • 如何使用 Vertex AI Agent Builder 创建简单的 AI 智能体
  • 如何通过附加数据存储区来为创建的智能体提供依据
  • 如何将 AI 智能体集成到您的网站中(可选)

所需条件

  • 好奇心
  • 一台可正常运行的计算机和稳定的 Wi-Fi 连接
  • 已关联结算功能的 Google Cloud 项目。

注意:如果您还没有 Google Cloud 项目,可以按照相关说明创建一个。您还可以查看 Google Cloud 免费层级服务

2. 设计您的首个 AI 智能体

现在,您可以创建自己的 AI 智能体了。但在开始开发之前,您必须先为智能体确立清晰的愿景。问问自己以下关键问题:

  • 它将解决什么问题?它会自动化处理任务、提供信息、提供娱乐内容,还是帮助用户进行创意探索?
  • 它的主要功能是什么?是执行任务还是委托任务?是生成文本,还是生成不同媒体的组合?
  • 有哪些限制?它是否能够完全自主地完成所有任务?
  • 它应该具有什么样的个性风格或角色设定?是正式、非正式、幽默、实用还是信息丰富?
  • 成效指标是什么?您将如何衡量代理的有效性?

为加快流程,以下是您今天将创建的旅行社的这些问题的答案:

  • 它将解决什么问题?
  • 规划行程可能既耗时又令人不知所措。此旅行代理将帮助用户发现目的地、规划行程、预订机票和住宿。
  • 它的主要功能是什么?
  • 智能体应能够
  • 回答有关目的地的问题,例如签证要求
  • 规划适合用户日程安排和目标的行程
  • 预订机票和住宿
  • 有哪些限制?
  • 默认情况下,智能体可能无法回答复杂的查询
  • 代理将无法生成视觉图像
  • 智能体的知识将受底层模型的限制
  • 它应该具有什么样的性格或角色设定?
  • 此代理应知识渊博、乐于助人,并且对旅游充满热情。它应该能够清晰简洁地传达信息。
  • 成效指标是什么?
  • 此代理的成功与否可根据用户对其建议(探索、规划、预订)的满意度来衡量

3. 使用 Vertex AI Agent Builder 构建 AI 智能体

借助 Vertex AI Agent Builder,只需几个步骤即可创建 AI 智能体。

第 1 步

第 2 步

  • 系统会将您重定向到应用创建页面。f2d45cc76d62edeb.png
  • 点击创建新应用按钮。

第 3 步

  • 选择对话式代理,然后点击创建

732d2cd9e10c9a79.png

注意

  1. 点击创建后,系统会打开一个新标签页,其中显示 Dialogflow 对话代理
  2. 如果系统要求您选择 Google Cloud 项目,请选择与正确的 Gmail 账号 关联的 Google Cloud 项目。
  3. 如果您是在新账号中完成本实验,系统会要求您启用 Dialogflow API,请点击启用 API 以启用该 API。

238281df06301db0.png

  • 如果点击该按钮不起作用,您可以直接前往 API 页面 手动启用该 API。
  • 在新打开的 Dialogflow 页面中,点击创建代理

42515e46bc63506d.png

  • 现在,系统会提供一些用于创建代理的选项,请选择自行构建

8af6bf0853f20768.png

第 4 步

  • 选择显示名称(例如“旅游伙伴”)
  • 对于“位置”,请选择 global (Global serving, data-at-rest in US) 作为区域
  • 保留其他配置,默认
  • 点击创建按钮

4e0dea29e5d8acde.png

第 5 步

  • 选择一个 Playbook 名称(例如“信息代理”)
  • 添加目标(例如,帮助客户解答与旅游相关的查询)
  • 定义一条指令(例如 - 问候用户,然后询问他们需要怎样的帮助)
  • 一切就绪后,按保存

f8bfd605ddd97cf8.png

第 6 步

  • 点击切换模拟器图标 72588cbe8734f54e.png
  • 选择您刚刚创建的代理(例如 Info Agent
  • 为您的代理选择底层生成式 AI 模型(例如 gemini-1.5-flash
  • 通过与智能体对话来测试它(即在“输入用户输入内容”文本框中输入内容)

3ac3cf54a1e2098.png

恭喜!您刚刚使用 Vertex AI Agent Builder 成功创建了一个 AI 智能体。

4. 将数据存储区附加到 Agent

尝试向智能体询问如何前往瓦坎达(例如“前往瓦坎达的最佳方式是什么?”),您会收到如下回答:

5baa2dbabe2941a2.png

虽然这在事实上是正确的,但如果代理不是简单地说“我无法提供信息”并结束对话,而是建议类似的地方,对用户会更有帮助。这种方法可能会促使用户通过代理实际预订行程。

为了让代理推荐类似地点,您可以通过数据存储区向代理提供更多信息。如果代理无法根据其内置知识回答用户问题,则可将此知识库作为额外的参考知识库。

注意:如果您想关闭模拟器,请再次点击切换模拟器图标

创建数据存储区非常简单,只需点击“Agent Basics”页面底部的 + Data store 按钮即可。

6c3ef19fefc46af7.png

填写以下信息:

  • 工具名称:备选营业地点
  • 类型:数据存储区
  • 说明:如果用户请求包含不存在的位置,请使用此工具

完成后,请点击保存

这会创建一个数据存储区工具,供代理与数据存储区通信,但您仍需创建一个包含信息的实际数据存储区。为此,请点击添加数据存储区和创建数据存储区

65c790a87de8fba8.png

7648d478a6f35cf0.png

点击创建新的数据存储区后,您将被重定向到 Vertex AI Agent Builder 页面,如下所示

选择“在 Cloud Storage 中”选项

bff5455fac531509.png

完成此步骤后,

  • 点击 FILE(这一点非常重要,否则导入会失败)
  • 输入 ai-workshops/agents/data/wakanda.txt
  • 点击继续

d1983baa579eb78c.png

如果您好奇,以下是所提供文本文件的内容:

Places that are similar to Wakanda

- Oribi Gorge in South Africa: The rock formations here are reminiscent of the Warrior Falls in Wakanda.

- Iguazu Falls: Located on the border of Argentina and Brazil, these massive waterfalls were a major inspiration for the Warrior Falls.

- Immerse yourself in Wakandan culture: Read the Black Panther comics, watch the movies, and explore online resources to learn more about Wakandan culture, language, and technology.

- Visit a Disney theme park: While there isn't a dedicated Wakanda land yet, you might be able to meet Black Panther at Disneyland or on a Marvel Day at Sea Disney cruise.

在下一页上,为数据存储区命名(例如“Wakanda Alternative”),然后点击创建

93eb71e8d019ae24.png

最后一步是选择您刚刚创建的数据源,然后点击创建。您可以点击数据存储区来查看数据存储区导入进度。

de1ac9256cc96f29.png

注意:导入活动需要一段时间才能成功完成,因此在导入活动进行期间,您可以点击此处详细了解适用于 Vertex AI 智能体的其他数据存储区选项

9b5c4a2831728a6b.png

如果一切顺利,请返回 Dialogflow 标签页,然后点击刷新。您应该会在可用的数据存储区页面下看到已创建的数据存储区。

a44373b78bd95ff0.png

为了防止 Agent 出现幻觉,请在数据存储区的接地配置中将设置设为 Very Low,这样可以对 Agent 编造内容施加更严格的限制。目前,请保持默认设置,但您可以随时探索不同的设置。

c1605bd076258050.png

现在,选择添加的数据存储区,点击确认,然后点击保存

40082aebe8b82d7c.png

现在,返回代理基础知识页面,在 playbook 配置的底部,您会看到新创建的数据存储区(例如“备选位置”)可供使用,选中该数据存储区(例如“备选位置”),然后点击页面顶部的“保存”按钮。

1b6b82fd7f30a598.png

e09af18697b0fd7f.png

就要大功告成了!最后一步是在智能体的指令中添加“备选位置”工具。在代理的指令中添加一行:- 如果用户的请求包含不存在的位置信息,请使用 ${TOOL: Alternative Location},然后点击保存

3134d9eadca34e21.png

一切准备就绪。我们再次打开切换模拟器,并提出相同的问题(即“前往瓦坎达的最佳方式是什么?”)

6cdee598391fc82a.png

恭喜!您的代理现在会使用文本文件中提供的信息来推荐地点。

这样,我们就完成了构建自己的代理构建器 AI 智能体。如果您想进一步探索如何自定义代理以获得更好的体验,请查看下面的“其他活动”。

5. 其他活动 - 使 AI 智能体上线

在前面的步骤中,您开发了一个 AI 智能体,并使用相关参考数据为其提供依据。在下一部分中,您将解决一个关键问题:如何将此代理嵌入您的网站中,以便与访问者进行实时互动。

您可以通过多种方式公开代理。您可以导出该视频,也可以直接发布。您可以浏览文档,了解可能的选项。

在 Dialogflow 标签页的右上角,依次点击溢出菜单发布代理

a1b109fa9d7cb51d.png

将所有配置保留为默认,然后点击启用未经身份验证的 API

注意:启用未经身份验证的 API 仅用于演示目的,不建议将此配置用于生产工作负载。如果您有兴趣了解如何安全地发布内容,请参阅此文档

ef0f24db780a185e.png

点击后,您应该会看到一小段 CSS 代码段:

c40d12f6207bf5b4.png

只需复制代码段。您稍后会将此代码段集成到网站中。

您将使用 Cloud Editor 环境来创建网站。以下是打开 Cloud 编辑器的步骤:

  1. 在另一个标签页中打开 Google Cloud 控制台。
  2. 点击右上角的“激活 Cloud Shell”按钮
  3. 点击打开编辑器按钮。

如果系统提示您授权 Cloud Shell,请点击授权继续。

d23192eca480f00c.png

在下一部分中,您将使用 Gemini Code Assist 创建一个示例 Python Flask Web 应用,以与您的代理代码段集成。

打开 Cloud Shell 编辑器后,点击 Gemini Code Assist,然后登录您的 Google Cloud 项目。如果系统要求您启用该 API,请点击启用

93112cce3e8d963b.png

完成后,我们让 Gemini Code Assist 创建一个 Flask 应用,并将 AI 智能体代码段集成到其中。

以下是示例提示,您可以根据需要使用

Here is my Travel buddy Vertex AI agent builder agent publish code snippet,

<REPLACE IT WITH YOUR AI AGENT PUBLISH CODE SNIPPET>

can you create a sample flask app to use it

注意:这里我们要求创建一个 Python Flask 应用。如果您偏好任何其他编程语言或框架,请随意使用。Gemini Code Assist 能够生成不同编程语言的代码。如需了解详情,请参阅支持的语言、IDE 和接口

您会看到,提供的代码段已与 AI 智能体集成。如需测试所提供的代码是否有效且可按预期运行,您可以按照 Gemini Code Assist 提供的说明,运行输出回答中的相应代码部分。

输出响应代码段示例 -

from flask import Flask, render_template_string

app = Flask(__name__)

# HTML template string with the provided Dialogflow Messenger code

html_template = """

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Travel Buddy Chatbot</title>

<link rel="stylesheet" href="https://www.gstatic.com/dialogflow-console/fast/df-messenger/prod/v1/themes/df-messenger-default.css">

<script src="https://www.gstatic.com/dialogflow-console/fast/df-messenger/prod/v1/df-messenger.js"></script>

<style>

df-messenger {

z-index: 999;

position: fixed;

--df-messenger-font-color: #000;

--df-messenger-font-family: Google Sans;

--df-messenger-chat-background: #f3f6fc;

--df-messenger-message-user-background: #d3e3fd;

--df-messenger-message-bot-background: #fff;

bottom: 16px;

right: 16px;

}

body {

font-family: sans-serif;

margin: 20px;

}

</style>

</head>

<body>

<h1>Welcome to Travel Buddy!</h1>

<p>Start chatting with our AI Travel buddy, in the bottom right corner.</p>

<df-messenger

project-id="<SAMPLE>"

agent-id="<SAMPLE>"

language-code="en"

max-query-length="-1">

<df-messenger-chat-bubble

chat-title="Travel Buddy">

</df-messenger-chat-bubble>

</df-messenger>

</body>

</html>

"""

@app.route("/")

def index():

"""Renders the HTML template with the Dialogflow Messenger."""

return render_template_string(html_template)

if __name__ == "__main__":

app.run(debug=True)

3dd3246c5fceb1d4.png

按照给定的说明

  1. 复制提供的示例 Flask 应用代码段,
  2. 创建一个名为 app.py 的新文件,然后保存该文件。

4e58cfcf95f65d38.png

在下一步中,系统会要求安装 Flask 以运行此代码段,但目前不需要这样做,因为 Cloud Shell 默认已安装所有常用实用程序。

b657b535710fd8f3.png

保存文件(Ctrl + S 或 CMD + S),然后点击打开终端,您将在其中运行提供的代码。

在终端中,运行以下命令

python app.py

注意:请确保您位于正确的文件夹中,即 app.py 文件所在的文件夹

Python Flask 应用将在端口 5000 上运行。如需查看此 Web 应用的预览版,请点击 Cloud Shell 中的网页预览图标。然后,您可以点击更改端口,输入 5000,然后点击更改并预览以保存。

59ed7b08133b82bf.png

系统会显示一个示例网站,并且 AI 智能体已可供使用。只需点击 AI 智能体,即可开始与其对话。

35a4b5abdd299efe.png

您可以随意使用不同的提示来测试它。您还可以问问 Gemini Code Assist,让其美化您的网站,或向 AI 智能体添加更多基础数据,使其更具资源性。

准备就绪后,下一步您可以尝试在 Google Cloud 上托管此 AI 智能体,以便任何人随时随地都能访问它。在本 Codelab 的剩余部分中,您将以容器的形式在 Cloud Run 中部署此示例 Flask 应用。

注意:这不仅限于 Cloud Run(如果您不知道什么是 Cloud Run,也可以提出此问题),您还可以让 Gemini 代码辅助工具帮助您按照最佳实践在 Google Cloud 或任何其他位置部署此应用,它也可以在这方面为您提供帮助。

返回 Cloud Shell 终端,然后按 Ctrl+C 终止该进程。再次点击打开编辑器,然后让 Gemini Code Assist 帮助我们将应用容器化并将其部署到 Cloud Run 中。

Can you help me deploy this sample flask app to cloud run service

它提供了一些说明和命令,可用于在 Cloud Run 服务中托管我们的应用。让我们按照说明操作

以下是输出响应示例

部署到 Cloud Run 的步骤

  1. 前提条件
  • Google Cloud 账号:您需要拥有已启用结算功能的 Google Cloud 账号。
  • gcloud CLI:在本地机器上安装并初始化 Google Cloud SDK (gcloud CLI)。您将使用此工具从终端与 Google Cloud 进行交互。
  • Docker:在本地机器上安装 Docker。Cloud Run 使用 Docker 将您的应用容器化。
  • 项目设置:确保您已在 gcloud CLI 中选择 Google Cloud 云项目。您可以使用 gcloud config list project 进行检查,并使用 gcloud config set project YOUR_PROJECT_ID 进行设置

注意:由于我们将在 Cloud Shell 中完成整个活动,因此无需设置项目

  1. 创建 **requirements.txt****:**
  • 此文件列出了应用所需的所有 Python 软件包。在项目目录(main.py 所在的位置)中,创建一个名为 requirements.txt 的文件,并添加以下行
  1. 创建 **Dockerfile****:**
  • Dockerfile 用于定义如何为应用构建 Docker 映像。在项目目录中创建一个名为 Dockerfile(无扩展名)的文件,并添加以下内容:

# Use an official Python runtime as a parent imageFROM python:3.9-slim-buster

# Set the working directory to /appWORKDIR /app

# Copy the current directory contents into the container at /app

COPY . /app

# Install any needed packages specified in requirements.txt

RUN pip install --no-cache-dir -r requirements.txt

# Make port 5000 available to the world outside this container

EXPOSE 5000

# Define environment variable

ENV NAME World

# Run app.py when the container launches

CMD ["python", ".py"]

  1. 构建 Docker 映像
  • 打开终端,前往项目目录,然后运行以下命令:

gcloud builds submit –tag gcr.io/bgr-workshop-23rd/travel-buddy

  1. 部署到 Cloud Run
  • 构建并上传映像后,使用以下命令将其部署到 Cloud Run:

gcloud run deploy travel-buddy --image gcr.io/bgr-workshop-23rd/travel-buddy --region us-central1

完成这些步骤后,您将看到已集成 AI 智能体的应用已面向最终用户发布。

恭喜,祝您学习愉快。

6. 清理

为避免系统因本 Codelab 中使用的资源向您的 Google Cloud 账号收取费用,请按照以下步骤操作:

  1. 在 Google Cloud 控制台中,前往管理资源页面。
  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在对话框中输入项目 ID,然后点击关停以删除项目。
  4. 或者,您也可以在控制台中前往 Cloud Run,选择刚刚部署的服务,然后将其删除。