Skip to main content
本笔记本介绍如何将 MongoDB 向量搜索与 LangChain 结合使用。它还展示了 MongoDB Atlas 嵌入和重排序 API,用于访问 Voyage AI 的前沿嵌入模型和重排序器。
MongoDB Atlas 是一个完全托管的云数据库,可在 AWS、Azure 和 GCP 上使用。它支持对您的 MongoDB 文档数据进行原生向量搜索、全文搜索(BM25)和混合搜索。
MongoDB 向量搜索 允许您将嵌入存储在 MongoDB 文档中,创建向量搜索索引,并使用近似最近邻算法(Hierarchical Navigable Small Worlds)执行 KNN 搜索。它使用 $vectorSearch MQL 阶段
MongoDB Atlas 嵌入和重排序 API 通过 MongoDB Atlas 使您能够访问 Voyage AI 模型。
注意:MongoDBAtlasVectorSearch 接口与社区版中的 MongoDB 向量搜索兼容。

设置

要使用 MongoDB Atlas,您必须首先部署一个集群。要开始使用,请免费注册 Atlas 为了使用 Voyage AI 嵌入和重排序模型,您需要创建一个模型 API 密钥。生成您的 API 密钥,并在最新模型上获得 2 亿免费令牌的访问权限。 首先,安装以下库以跟随本笔记本。
将以下代码单元格中的占位符值替换为您的 Atlas 集群连接字符串和模型 API 密钥。

插入数据

我们加载文档,通过 Atlas 托管的 Voyage AI 模型生成嵌入,并以编程方式创建向量搜索索引。

创建向量索引

[可选] 除了上面的 vector_store.create_vector_search_index 命令,您也可以使用 Atlas UI 通过以下索引定义创建向量搜索索引:

查询向量存储

语义搜索

基于语义相似性查找最相关的文档。

带分数的语义搜索

检索文档及其相关性分数。

带过滤的语义搜索

首先,让我们通过提供要过滤的字段来更新向量搜索索引。
使用元数据过滤器缩小结果范围。请注意,Atlas 向量搜索需要显式运算符,如 $eq

混合搜索

使用倒数排名融合(RRF)将向量搜索与全文搜索(关键词)相结合。

向量搜索和重排序

一个两阶段过程:先进行广泛召回,然后进行高精度重排序,以确保最大相关性。

检索增强生成(RAG)

有关如何将 MongoDB 向量存储集成与 LangChain 结合用于检索增强生成(RAG)的指南,请参阅以下教程:

其他说明


API 参考

有关所有 MongoDBAtlasVectorSearch 功能和配置的详细文档,请访问 API 参考