Skip to main content
Spanner 是一个高度可扩展的数据库,结合了无限扩展性与关系型语义,例如次级索引、强一致性、模式定义和SQL,提供99.999%可用性的单一解决方案。
本笔记本将介绍如何使用 Spanner 进行向量搜索,并配合 SpannerVectorStore 类实现。 了解该包的更多信息请参考 GitHub。 Open In Colab

开始前

运行本笔记本前需要完成以下步骤:

🦜🔗 库安装

集成模块位于独立的 langchain-google-spanner 包中,因此需要安装该包。
Colab专用:取消注释以下单元格以重启内核或使用重启按钮。对于Gemini企业智能体平台工作台,请使用顶部按钮重启终端。

🔐 认证

以本笔记本中登录的IAM用户身份对Google Cloud进行认证,以便访问您的Google Cloud项目。

☁ 设置Google云项目

在本笔记本中设置您的Google云项目,以便使用Google云资源。 若不知道项目ID,请尝试以下步骤:
  • 运行 gcloud config list。
  • 运行 gcloud projects list。
  • 查看支持页面:定位项目ID。

💡 API启用

langchain-google-spanner 包需要您在Google Cloud项目中 启用Spanner API。

基础用法

设置Spanner数据库值

在 Spanner实例页面 中查找您的数据库值。

初始化表

SpannerVectorStore 类实例需要一个包含id、content和embeddings字段的数据库表。 可以使用辅助方法 init_vector_store_table() 来创建具有正确模式的表。

创建嵌入类实例

您可以使用任何 LangChain嵌入模型。 若需使用 VertexAIEmbeddings,可能需要启用Gemini企业智能体平台API。我们建议为生产环境设置嵌入模型的版本,更多详情请参考 文本嵌入模型。

SpannerVectorStore

初始化 SpannerVectorStore 类需要提供4个必填参数,其他参数为可选且仅在非默认值时需要传递
  1. instance_id - Spanner实例名称
  2. database_id - Spanner数据库名称
  3. table_name - 数据库中存储文档及嵌入的表名称
  4. embedding_service - 用于生成嵌入的Embeddings实现

添加文档

向向量存储中添加文档。
langchain-community包已不再维护。从langchain_community导入的示例可能过时或无法使用。请谨慎使用。

搜索文档

使用相似度搜索在向量存储中检索文档。

搜索文档

使用最大边际相关性搜索在向量存储中检索文档。

删除文档

从向量存储中移除文档,需使用初始化VectorStore时设置的 row_id 字段对应的ID。

删除文档

可通过文档本身删除向量存储中的文档。VectorStore初始化时提供的content字段和元数据字段将用于查找对应行,所有匹配行将被删除。

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