1. 概览
专利研究既广泛又复杂。从无数的技术抽象中过滤出相关的创新是一项艰巨的任务。基于关键字的传统搜索往往不准确且非常耗时。摘要过长且技术性较强,因此很难快速掌握其核心内容。这可能导致研究人员缺少关键专利,或者将时间浪费在不相关的结果上。
这场革命背后的秘诀就在于矢量搜索。矢量搜索不依赖于简单的关键字匹配,而是将文本转换为数值表示(嵌入)。这样,我们就能够根据查询的含义进行搜索,而不仅仅是根据所使用的具体字词进行搜索。在文学搜索的世界中,这是一次变革。想象一下,如何为“穿戴式心率监测器”找到一项专利即使文档中并未使用完全相同的词组,
挑战:现代文学搜索应提供符合其独特偏好的即时答案和智能建议。传统的搜索方法通常无法提供这种级别的个性化。
解决方案:我们的知识驱动型聊天应用正着解决这一挑战。它利用从您的专利数据集中提取的丰富知识库,了解客户意图、智能回复并提供高度相关的结果。
构建内容
在本实验(第 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,您可以在实现过程中随时启用该 API。
如需了解 gcloud 命令和用法,请参阅文档。
重要提示:此外,要完成此实验,请确保您已完成本实验的第 1 部分。
4. 创建代理
隆重推出 Agent Builder
Agent Builder 是一款功能强大的低代码工具,使我们能够快速高效地创建对话式代理。它简化了设计对话流程、集成知识库和连接到外部 API 的流程。在本例中,我们将使用 Agent Builder 无缝连接到我们在第 1 部分中构建的 Cloud Functions 函数端点,使我们的专利搜索助理能够访问我们的专利知识库,并智能地响应用户查询。
确保您已有 第 1 部分中创建的 Java Cloud Run 函数 会返回 JSON ARRAY 而非纯文本。
构建代理
我们开始创建这个新的代理,用于回答用户针对服饰商品提出的问题。
- 首先登录 Agent Builder 平台。如果系统提示您激活 API,请直接点击“继续并激活 API”。
- 点击“创建应用”并为代理指定一个描述性名称(例如“专利搜索助理”)。
- 点击应用类型“代理”。
- ,了解所有最新动态。为您的代理指定一个描述性名称,例如“专利搜索助理”并将区域设置为 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 的功能,向前迈进了一大步,使上下文搜索和矢量搜索变得易于访问、高效、真正意义驱动和代理!