Skip to main content
Bigtable 是一种键值对和宽列存储,适用于快速访问结构化、半结构化或非结构化数据。通过 Bigtable 的 LangChain 集成,可扩展数据库应用以构建 AI 驱动的体验。
该笔记本将介绍如何使用 Bigtable 通过 BigtableLoader 和 BigtableSaver 实现 langchain 文档 的保存、加载和删除。 更多关于该包的详细信息,请参考 GitHub。 打开Colab

准备工作

运行该笔记本前需完成以下步骤: 在笔记本运行环境确认数据库访问权限后,填写以下值并运行单元格,再执行示例脚本。

🦜🔗 库安装

集成位于独立 langchain-google-bigtable 包中,需先安装。
仅限Colab:取消注释下方单元格以重启内核或使用重启按钮。对于 Gemini 企业智能体平台工作台,可通过顶部按钮重启终端。

设置Google Cloud项目

将笔记本关联至 Google Cloud 项目以使用云资源。 若不知项目 ID,请按以下步骤操作:
  • 运行 gcloud config list
  • 运行 gcloud projects list
  • 查看支持页面:定位项目 ID。

认证

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

基础用法

使用保存器

通过 BigtableSaver.add_documents(<documents>) 保存 langchain 文档。初始化 BigtableSaver 类需提供以下两个参数:
  1. instance_id - Bigtable 实例
  2. table_id - 存储 langchain 文档的 Bigtable 表名称

从Bigtable查询文档

关于连接 Bigtable 表的详细信息,请查阅 Python SDK 文档。

从表加载数据

使用 BigtableLoader.load() 或 BigtableLoader.lazy_load() 加载 langchain 文档。lazy_load 返回一个仅会在迭代时查询数据库的生成器。初始化 BigtableLoader 类需提供:
  1. instance_id - Bigtable 的实例。
  2. table_id - 在 Bigtable 中用于存储 langchain 文档的表名称。

删除文档

从 BigtableSaver.delete(<documents>) 中删除一系列 langchain 文档。

高级用法

限制返回的行数

有两种方式限制返回的行数:
  1. 使用 filter
  2. 使用 row_set

自定义客户端

默认客户端使用 admin=True 选项创建。若要使用非默认客户端,需通过构造函数传入 custom client。

自定义内容

BigtableLoader 默认假设存在名为 langchain 的列族,该列族包含名为 content 的列,其中存储 UTF-8 编码的值。这些默认值可通过以下方式修改:

元数据映射

默认情况下,@[Document] 对象的 metadata 映射仅包含单个键 rowkey,其值为行键的值。如需添加更多条目,请使用 metadata_mapping。

元数据为 JSON

若 Bigtable 中存在存储 JSON 字符串的列,可通过以下参数向 BigtableLoader 添加对应字段。注意 metadata_as_json_encoding 的默认值为 UTF-8。

自定义 BigtableSaver

BigtableSaver 同样支持类似 BigtableLoader 的自定义配置。

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