探索Google Firestore的原生模式:构建AI驱动的应用程序
现代应用程序的需求不断增长,开发者需要一个能够快速扩展,无需大量硬件和管理资源的数据库解决方案。Google Firestore 是一个无服务器的文档导向数据库,完美地满足了这些需求。通过结合 Firestore 和 Langchain 集成,您可以扩展数据库应用程序,构建由 AI 驱动的体验。在这篇文章中,我们将探讨如何使用 Firestore 来存储向量,并使用 FirestoreVectorStore 类对其进行查询。
1. 引言
Firestore 作为谷歌云的一部分,是一种无服务器的、可自动扩展的文档存储数据库。本文旨在展示如何在 Firestore 中存储和查询向量,为构建 AI 驱动的应用程序奠定基础。
2. 主要内容
2.1 环境准备
在开始之前,你需要完成以下步骤:
- 创建一个 Google Cloud 项目
- 启用 Firestore API
- 创建 Firestore 数据库
确认您在此notebook的运行时环境中能够访问数据库后,开始设置集合名称:
# 指定一个集合名称用于演示
COLLECTION_NAME = "test" # 这里可以更改为您实际使用的集合名称
2.2 安装必要的软件包
我们需要安装 langchain-google-firestore
和 langchain-google-vertexai
软件包以便集成和使用 Google Generative AI 嵌入。
%pip install --upgrade --quiet langchain-google-firestore langchain-google-vertexai
2.3 设置 Google Cloud 项目
使用以下代码来设置您的 Google Cloud 项目:
PROJECT_ID = "your-project-id" # 请用您的实际项目ID替换
!gcloud config set project {PROJECT_ID}
2.4 认证
使用 Google Colab 或 Vertex AI Workbench 进行认证:
from google.colab import auth
auth.authenticate_user()
3. 代码示例
下面是一个完整的示例,介绍如何使用 FirestoreVectorStore 来存储和查询向量:
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)
# 查询存储的向量
results = vector_store.similarity_search("I like fuji apples", k=3)
print(results)
使用API代理服务提高访问稳定性
4. 常见问题和解决方案
- 网络连接问题:由于某些地区的网络限制,开发者可能需要考虑使用 API代理服务 来提高访问的稳定性。
- 认证失败:确保正确配置了 Google Cloud 项目ID,并进行正确的用户认证。
5. 总结和进一步学习资源
Google Firestore 提供了一种强大且灵活的方式来管理 AI 应用程序的数据需求。通过 FirestoreVectorStore,开发者可以轻松存储和查询向量数据,为构建智能应用程序奠定基础。
进一步学习资源
6. 参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—