1. 概览
专利研究浩瀚而复杂。从无数的技术抽象中过滤出相关的创新是一项艰巨的任务。基于关键字的传统搜索往往不准确且非常耗时。摘要内容冗长且技术性强,因此很难快速掌握核心要点。这可能导致研究人员缺少关键专利,或者将时间浪费在不相关的结果上。
这场革命背后的秘密武器就是 Vector Search。向量搜索不会依赖于简单的关键字匹配,而是会将文本转换为数值表示法(嵌入)。这样,我们就能够根据查询的含义进行搜索,而不仅仅是根据所使用的具体字词进行搜索。在文学搜索的世界中,这是一次颠覆性变革。假设您要查找“穿戴式心率监测器”的专利,即使文档中未使用该确切字词,也可以找到相关专利。
挑战:现代文学搜索应提供符合其独特偏好的即时答案和智能建议。传统的搜索方法通常无法提供这种程度的个性化体验。
解决方案:我们的知识驱动型聊天应用可直接应对这一挑战。它利用从您的专利数据集中提取的丰富知识库,了解客户意图、智能回复并提供高度相关的结果。
构建内容
在本实验(第 2 部分)中,您将执行以下操作:
- 构建 Vertex AI Agent Builder 代理
- 将 AlloyDB 工具与代理集成
要求
2. 建筑
数据流:让我们来详细了解一下数据是如何在系统中移动的:
提取:
将专利数据加载到 AlloyDB。
分析引擎:
我们将使用 AlloyDB 作为分析引擎来执行以下操作:
- 上下文提取:引擎会分析 AlloyDB 中存储的数据,以了解专利数据集。
- 嵌入创建:系统会为用户查询和 AlloyDB 中存储的信息生成嵌入(文本的数学表示)。
- 向量搜索:引擎执行相似性搜索,将查询嵌入与专利摘要的嵌入进行比较。这会确定与用户搜索的上下文最相关的“最近邻居”。
响应生成:
经过验证的响应会被构建为 JSON 数组,整个引擎会打包到从 Agent Builder 调用的无服务器 Cloud Run 函数中。
上述步骤已在本实验的第 1 部分中介绍过。
我们讨论了创建知识驱动型分析引擎的技术细节,该引擎为我们的智能专利搜索助理提供支持。现在,我们来看看我们如何利用 Agent Builder 的强大功能在对话界面中打造这个引擎。在开始第 2 部分之前,请确保您已准备好端点网址。本实验将介绍下一步骤:
对话式互动:
Agent Builder 会以自然语言格式向用户显示回答,从而促进双方进行互动对话。
3. 准备工作
创建项目
- 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。
- 确保您的 Cloud 项目已启用结算功能。了解如何检查项目是否已启用结算功能。
- 您将使用 Cloud Shell,它是一个在 Google Cloud 中运行的命令行环境,它预加载了 bq。点击 Google Cloud 控制台顶部的“激活 Cloud Shell”。
- 在连接到 Cloud Shell 后,您可以使用以下命令检查是否已通过身份验证,以及项目是否已设置为您的项目 ID:
gcloud auth list
- 在 Cloud Shell 中运行以下命令,以确认 gcloud 命令了解您的项目。
gcloud config list project
- 如果项目未设置,请使用以下命令进行设置:
gcloud config set project <YOUR_PROJECT_ID>
- 启用所需的 API。 您可以通过控制台搜索各个产品或使用此链接,以替代 gcloud 命令。
如果缺少任何 API,您随时可以在实现过程中启用它。
如需了解 gcloud 命令和用法,请参阅文档。
重要提示:此外,要完成此实验,请确保您已完成本实验的第 1 部分。
4. 创建代理
Agent Builder 简介
Agent Builder 是一款功能强大的低代码工具,可帮助我们快速高效地创建对话式客服。它简化了设计对话流程、集成知识库和连接到外部 API 的流程。在本例中,我们将使用 Agent Builder 无缝连接到我们在第 1 部分中构建的 Cloud Functions 函数端点,使我们的专利搜索助理能够访问我们的专利知识库,并智能地响应用户查询。
确保您已在第 1 部分创建的 Java Cloud Run 函数返回 JSON 数组,而不是纯文本。
构建代理
我们先创建一个新的客服人员,用于回答用户关于服装产品的问题。
- 首先登录 Agent Builder 平台。如果系统提示您激活 API,请直接点击“继续并激活 API”。
- 点击“创建应用”,然后为您的客服人员指定一个描述性名称(例如“Patent Search Assistant”)。
- 点击应用类型“代理”。
- 为您的代理提供一个描述性名称(例如“Patent Search Assistant”),并将区域设置为 us-central1
- 输入客服人员的详细信息:
- 将“代理名称”更改为“专利搜索代理”。
- 添加以下“目标”:
You are a professional intelligent patent search agent! Your job is to help the customer find patents matching the context of their search text.
- 在此处保存,暂时将说明留空。
- 然后,点击导航菜单中的“工具”,再点击“创建”。
输入工具名称:专利搜索工具
类型:OpenAPI
输入工具说明:
This tool refers to the dataset in the backend as the context information for product inventory. It takes as input the user's search text summarized by the agent and matches with the most appropriate list of items and returns as an array of items.
输入架构 - YAML 格式的 OpenAPI:
这是我们使用后端端点为代理提供支持的部分。复制以下 OpenAPI 规范,并使用您的 Cloud Functions 函数端点替换网址占位符(用尖括号括起来):
openapi: 3.0.0
info:
title: Patent Search API
version: v1
servers:
- url: YOUR_CLOUDFUNCTION_ENDPOINT_URL
paths:
/patent-search:
post:
summary: Search for patents using a text query.
requestBody:
content:
application/json:
schema:
type: object
properties:
search:
type: string
description: The text query to search for patents.
example: A new Natural Language Processing related Machine Learning Model
responses:
'200':
description: Successful search response with a JSON array of matching patents.
content:
application/json:
schema:
type: array
items:
type: object
properties:
result:
type: string
description: Patent title.
'400':
description: Invalid request body.
'500':
description: Internal server error.
将其他配置保留为默认值,然后点击“保存”。
- 此时请返回到代理,因为我们想添加“工具”添加到代理的“说明”部分将以下内容添加到说明占位符(请注意,缩进在定义流程时非常重要):
- Greet the users, then ask how you can help them today.
- Summarize the user's request and ask them to confirm that you understood correctly.
- If necessary, seek clarifying details.
- Use ${TOOL:Patent Search Tool} to help the user with their task.
- Return the response from the ${TOOL:Patent Search Tool} to the user in a well formed string.
- Thank the user for their business and say goodbye.
确保在“可用工具”部分中选择“专利搜索工具”,然后再次保存代理。
5. 测试代理
在右侧窗格中,您应该会看到“预览代理”部分,您可以通过此部分测试代理。
如以下屏幕截图所示,我以用户身份致以问候,并发起了聊天,请求“查找与任何健身追踪器创意相关的匹配专利”:
JSON 响应如下:
这是处理 AlloyDB 相似性搜索的 Cloud Functions 函数返回的原始 JSON 结果。大功告成!代理设置完毕。
6. 部署和集成
对代理满意后,您可以使用 Agent Builder 的集成功能轻松将其部署到各种渠道。您可以将其嵌入到您的网站中、与热门即时通讯平台集成,甚至可以创建专用移动应用。我们还可以在 Web 客户端应用中直接使用 Agent Builder API,这在本 博文中已有介绍。
7. 清理
为避免系统因本博文中使用的资源向您的 Google Cloud 账号收取费用,请按以下步骤操作:
8. 恭喜
恭喜!我们将自定义分析引擎的强大功能与 Agent Builder 的直观界面相结合,打造了一款智能文学搜索助理,让用户能够轻松、高效地进行文学搜索,并真正从内容中获得有价值的信息。我们通过结合 AlloyDB、Vertex AI 和 Vector Search 的功能,向前迈进了一大步,使上下文搜索和矢量搜索变得易于访问、高效、真正意义驱动和代理!