Skip to main content
本页面介绍如何在Gemini企业级智能体平台(Gemini Enterprise Agent Platform)上使用Vector Search作为LangChain的向量存储。

概述

Vector Search on Gemini Enterprise Agent Platform 是一种完全托管、高扩展、低延迟的解决方案,用于查找相似向量。它支持使用Google的ScaNN(Scalable Nearest Neighbors)技术进行精确和近似最近邻(ANN)搜索。 Vector Search on Gemini Enterprise Agent Platform提供两种版本:
  • Vector Search 2.0: 使用Collections存储包含向量、元数据和内容的Data Objects。提供统一的数据模型和更简单快捷的操作。
  • Vector Search 1.0: 部署Indexes到Endpoints,文档存储在Google Cloud Storage或Datastore中。
根据您使用的版本选择对应章节: 从Vector Search on Gemini Enterprise Agent Platform 1.0迁移到2.0请参考迁移指南。

安装

安装LangChain与Gemini企业级智能体平台的集成:

Vector Search 2.0

Vector Search 2.0使用Collections存储Data Objects。每个Data Object包含统一结构中的向量、元数据和内容。

前置条件

  • 启用Gemini企业级智能体平台API和Vector Search API的Google Cloud项目
  • 创建Vector Search Collection(参见创建Collection)
  • 适当的IAM权限(Vertex AI User角色或等效权限)

创建Collection(V2)

使用Vector Search 2.0前需创建Collection。以下是兼容LangChain的创建方法:
重要说明:
  • 向量字段必须命名为"embedding"以匹配LangChain默认值(或通过vector_field_name参数指定)
  • V2版本仅支持data_schema.properties中定义的字段进行过滤
  • 维度应与嵌入模型匹配(768对于text-embedding-005)

初始化

关键参数:
  • collection_id: Vector Search Collection ID(必填)
  • api_version: 必须设置为"v2"(必填)
  • project_id: GCP项目ID(必填)
  • region: Collection所在的GCP区域(必填)
  • vector_field_name: Collection schema中向量的字段名称(默认"embedding")

添加文档

添加文本

搜索

基本相似度搜索

带分数的相似度搜索

通过向量搜索

过滤

Vector Search 2.0使用字典式查询语法进行Data Objects过滤:
支持的操作符:
  • $eq: 等于
  • $ne: 不等于
  • $lt: 小于
  • $lte: 小于或等于
  • $gt: 大于
  • $gte: 大于或等于
  • $and: 逻辑AND
  • $or: 逻辑OR
  • $not: 逻辑NOT
See the Vector Search 2.0 查询文档 for more details.

删除操作

通过 IDs 删除

通过元数据过滤器删除

注意: 当前 V2 API 中元数据删除存在限制。推荐方案为:
  1. 使用 similarity_search 并结合您的过滤器获取文档 IDs
  2. 通过 IDs 删除
或者,如果您的环境支持直接删除元数据:

高级功能

Vector Search 2.0 提供了超越传统密集向量搜索的多种高级搜索能力。

语义搜索

语义搜索会使用 Gemini 企业智能体平台模型从查询文本自动生成嵌入。您的集合必须配置 vertex_embedding_config 在向量方案中。
任务类型:
  • RETRIEVAL_QUERY: 查询搜索(默认)
  • RETRIEVAL_DOCUMENT: 文档索引
  • SEMANTIC_SIMILARITY: 语义相似度任务
  • CLASSIFICATION: 分类任务
  • CLUSTERING: 聚类任务

文本搜索

文本搜索会在数据字段中执行关键词/全文匹配,无需使用嵌入。
!!! note 文本搜索不支持过滤器。如需过滤请使用 semantic_search() 或 similarity_search()

混合搜索

混合搜索通过 reciprocity rank fusion(RRF)融合自动生成的语义搜索(基于嵌入)和文本搜索(关键词匹配),生成最优排序结果。
权重参数:
  • 更高的 semantic_weight: 优先语义理解
  • 更高的 text_weight: 优先精确关键词匹配
  • 相等权重(默认):平衡结果
在语义和文本搜索结果中排名均靠前的项目,将在合并结果中排名最高。 See the Vector Search 2.0 文档 for more information.

自定义向量字段名

如果您的集合方案使用自定义向量字段名:

补充资源


Vector Search 1.0

本笔记本演示如何使用 Google Cloud Vector Search on Gemini Enterprise Agent Platform 向量数据库相关功能。
Gemini 企业智能体平台上的 Vector Search,前身为 Vertex AI 匹配引擎,提供业界领先的规模化低延迟向量数据库。这些向量数据库通常被称为向量相似匹配或近似最近邻(ANN)服务。
注意: LangChain API 需要预先创建端点及部署的索引。索引创建时间可能长达一小时。
参见 创建索引并将其部署到端点 了解如何创建索引 如果已部署索引,请跳转到 从文本创建 VectorStore

创建索引并部署到端点

  • 本节演示如何创建新索引并部署到端点

使用 VertexAIEmbeddings 作为嵌入模型

创建空索引

注意:创建索引时需指定 “index_update_method” 参数,其取值范围为 “BATCH_UPDATE” 或 “STREAM_UPDATE”
批量索引适用于需要按固定周期(如每周或每月)更新索引的场景,例如系统处理周期性存储的数据。流式索引则适用于实时更新场景,例如书店需即时展示新库存信息。选择索引更新方式直接影响系统配置和运行要求。
参考 官方文档 获取索引配置的详细信息

创建端点

部署索引到端点

从文本创建向量存储

NOTE:若已有索引和端点,可通过以下代码加载
Langchainassets.png

创建简单向量存储(无过滤)

OPTIONAL : 您也可以创建向量并存储到数据存储中

使用元数据过滤器创建向量存储

将向量存储用作检索器

在问答链中使用过滤器与检索器

读取、分块、向量化并索引PDF文件

langchain-community包已不再维护。从langchain_community导入的示例可能过时或无法使用。请谨慎使用。

混合搜索

向量搜索支持混合搜索(Hybrid Search),这是一种在信息检索(IR)中广泛使用的架构模式,结合了语义搜索和关键词搜索(也称为基于令牌的搜索)。通过混合搜索,开发者可以同时利用两种方法的优点,从而提供更高质量的内容检索。 请阅读 Gemini 企业智能体平台混合搜索文档 以了解更多信息。 要使用混合搜索,我们需要适配一个稀疏嵌入向量izer,并独立处理嵌入过程(不依赖于Vector Search集成)。 稀疏嵌入向量izer的一个示例是sklearn的TfidfVectorizer,但也可以使用其他技术,例如BM25。

官方原文:src/oss/python/integrations/vectorstores/google_vertex_ai_vector_search.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。
Last modified on November 3, 2026