Bigtable 是一种键值和宽列存储,非常适合对结构化、半结构化或非结构化数据进行快速访问。通过 Bigtable 的 LangChain 集成,扩展您的数据库应用,构建 AI 驱动的体验。本 notebook 介绍如何使用 Bigtable 通过
BigtableLoader 和 BigtableSaver 来保存、加载和删除 LangChain 文档。
在 GitHub 上了解更多关于该软件包的信息。
开始之前
要运行本 notebook,您需要完成以下准备工作: 确认可以在本 notebook 的运行环境中访问数据库后,请填写以下值并在运行示例脚本之前执行该单元格。🦜🔗 安装库
该集成位于独立的langchain-google-bigtable 包中,需要单独安装。
设置 Google Cloud 项目
设置您的 Google Cloud 项目,以便在本 notebook 中使用 Google Cloud 资源。 如果您不知道项目 ID,请尝试以下方法:- 运行
gcloud config list。 - 运行
gcloud projects list。 - 参阅支持页面:查找项目 ID。
身份验证
以登录本 notebook 的 IAM 用户身份向 Google Cloud 进行身份验证,以访问您的 Google Cloud 项目。- 如果您在 Colab 中运行本 notebook,请使用下方单元格并继续。
- 如果您在 Vertex AI Workbench 中运行,请参阅此处的设置说明。
基本用法
使用 Saver
使用BigtableSaver.add_documents(<documents>) 保存 LangChain 文档。初始化 BigtableSaver 类需要提供以下 2 个参数:
instance_id:Bigtable 实例。table_id:Bigtable 中用于存储 LangChain 文档的表名。
从 Bigtable 查询文档
有关连接到 Bigtable 表的更多详情,请查阅 Python SDK 文档。从表中加载文档
使用BigtableLoader.load() 或 BigtableLoader.lazy_load() 加载 LangChain 文档。lazy_load 返回一个生成器,仅在迭代时才查询数据库。初始化 BigtableLoader 类需要提供以下参数:
instance_id:Bigtable 实例。table_id:Bigtable 中用于存储 LangChain 文档的表名。
删除文档
使用BigtableSaver.delete(<documents>) 从 Bigtable 表中删除一组 LangChain 文档。
高级用法
限制返回的行数
限制返回行数有两种方式:- 使用 filter(过滤器)
- 使用 row_set(行集合)
自定义客户端
默认创建的客户端仅使用admin=True 选项。如需使用非默认客户端,可以将自定义客户端传入构造函数。
自定义内容
BigtableLoader 默认假定存在名为langchain 的列族,其中包含名为 content 的列,值以 UTF-8 编码。可按如下方式更改这些默认设置:
元数据映射
默认情况下,Document 对象上的 metadata 字典只包含一个键 rowkey,其值为该行的 rowkey 值。要在该字典中添加更多条目,请使用 metadata_mapping。
元数据作为 JSON
如果 Bigtable 中某列包含您希望添加到输出文档元数据中的 JSON 字符串,可以向 BigtableLoader 添加以下参数。注意,metadata_as_json_encoding 的默认值为 UTF-8。
自定义 BigtableSaver
BigtableSaver 与 BigtableLoader 类似,同样支持自定义配置。通过 MCP 将这些文档连接到 Claude、VSCode 等工具,获取实时解答。

