# 引言
Google Firestore 是一种无服务器的文档型数据库,可以根据需求进行自动扩展。对于那些希望将AI功能集成到应用程序中的开发者来说,Firestore 提供了一种有效的解决方案,通过它可以存储和检索向量数据。这篇文章将指导您如何使用 Firestore 的 Langchain 集成来存储和查询向量数据。
# 主要内容
## 创建 Google Cloud 项目
首先,您需要创建一个 Google Cloud 项目,并启用 Firestore API。这个步骤是访问 Firestore 所必需的,请确保在继续之前完成这些操作。
## 安装必要的库
为了在Python环境中使用 Firestore,我们需要安装一些特定的库。使用以下命令来安装:
```bash
%pip install --upgrade --quiet langchain-google-firestore langchain-google-vertexai
设置 Google Cloud 项目
设置您的 Google Cloud 项目以便利用其资源。可以通过以下命令进行配置:
# 请填写您的 Google Cloud 项目 ID
PROJECT_ID = "your-google-cloud-project-id"
# 设置项目 ID
!gcloud config set project {PROJECT_ID}
认证
使用 Google Cloud 的IAM用户进行认证,以便访问您的 Google Cloud 项目:
from google.colab import auth
auth.authenticate_user()
FirestoreVectorStore 初始化
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)
删除和更新向量
要删除向量,可以使用 delete 方法:
vector_store.delete(["apple"]) # 删除 'apple' 的数据
更新向量与添加类似:
fruit_to_update = ['{"name": "apple","price": 12}']
vector_store.add_texts(fruit_to_update, ids=["apple"])
相似性搜索
通过 FirestoreVectorStore,您可以执行向量的相似性搜索:
vector_store.similarity_search("I like fuji apples", k=3)
常见问题和解决方案
API访问限制
由于某些地区的网络限制,开发者可能需要考虑使用API代理服务提高访问的稳定性。可以通过在 ClientOptions 中设定代理参数来实现这一点。
总结和进一步学习资源
通过本文,我们详细讲解了如何利用 Google Firestore 来存储和检索 AI 向量数据,为构建AI驱动的应用程序奠定基础。想要深入了解,可以参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---