MongoDBAtlasVectorSearch 功能和配置的详细文档,请访问 API 参考。
概述
集成细节
设置
要使用 MongoDB Atlas 向量存储,您需要配置一个 MongoDB Atlas 集群并安装@langchain/mongodb 集成包。
初始集群配置
要创建 MongoDB Atlas 集群,请导航到 MongoDB Atlas 网站,如果您还没有账户,请创建一个。 在提示时创建并命名集群,然后在Database 下找到它。选择 Browse Collections 并创建一个空白集合或使用提供的示例数据创建一个集合。
注意: 集群必须是 MongoDB 7.0 或更高版本才能使用手动嵌入模式。自动嵌入模式需要 MongoDB 8.2 或更高版本。
创建向量搜索索引
配置集群后,在您的集合上创建一个向量搜索索引。您可以在 Atlas、Compass 或 MongoDB Shell 上执行此操作。索引定义取决于您使用的嵌入模式。 手动嵌入(MongoDB 7.0+):您在客户端嵌入文档并将向量存储在字段中。使用以下定义,将numDimensions 调整为与您的嵌入模型匹配。
autoEmbed 字段类型并指定模型:
text 的文本字段读取,并在手动模式下将向量写入名为 embedding 的字段。将 textKey 和 embeddingKey 设置为与您的索引匹配。
嵌入
在 手动嵌入模式中,您提供一个嵌入模型并在客户端嵌入文档。本指南以 OpenAI 嵌入 作为示例。您还可以使用 其他支持的嵌入模型。 在 自动嵌入模式中,MongoDB Atlas 在服务器端处理嵌入生成。不需要客户端嵌入包。安装
- Manual embedding
- Automated embedding
安装核心包和嵌入提供程序:
凭证
完成上述步骤后,从 Mongo 仪表板中的Connect 按钮设置 MONGODB_ATLAS_URI 环境变量。您还需要您的数据库名称和集合名称:
实例化
配置好集群和索引后,初始化您的向量存储。构造函数接受两种形式,取决于您是否使用手动或自动嵌入。- Manual embedding
- Automated embedding
将嵌入实例作为第一个参数传递:
管理向量存储
向向量存储添加项目
现在您可以将文档添加到您的向量存储中:添加文档后,在它们变得可查询之前会有延迟。在自动嵌入模式下,此延迟更长,因为 MongoDB 必须在插入后服务器端生成嵌入。在 Atlas 搜索索引报告文档已索引之前不要查询。
id 添加文档将更新现有文档。
从向量存储删除项目
查询向量存储
当您的向量存储已经创建,并且相关的文档已经添加后,您很可能希望在您的链或智能体运行期间查询它。直接查询
执行简单的相似度搜索可以按以下方式完成:过滤
MongoDB Atlas 支持对其他字段进行预过滤结果。它要求您通过更新最初创建的索引来定义您计划过滤的元数据字段。以下是一个示例:fields中的第一个项目是向量索引,第二个项目是您想要过滤的元数据属性。属性的名称是path键的值。因此,上面的索引允许我们在名为source的元数据字段上进行搜索。
然后,在您的代码中,您可以使用MQL 查询操作符进行过滤。
以下示例说明了这一点:
返回分数
如果您想要执行相似度搜索并接收相应的分数,您可以运行:将其转换为检索器进行查询
您还可以将向量存储转换为检索器,以便在您的链中更轻松地使用。用于检索增强生成
有关如何使用此向量存储进行检索增强生成(RAG)的指南,请参阅以下部分:关闭连接
确保在完成时关闭客户端实例,以避免过度消耗资源:API 参考
有关所有MongoDBAtlasVectorSearch功能和配置的详细文档,请前往API 参考。
官方原文:src/oss/javascript/integrations/vectorstores/mongodb_atlas.mdx · 非官方翻译,译文由 AI 生成,以英文原文为准。