Docs 菜单
Docs 主页
/ /

如何为集合和查询中的文本数据自动生成向量嵌入

您可以部署MongoDB Vector Search,并通过MongoDB Vector Search 索引中的自动嵌入启用,对文本数据启用由AI支持的智能语义搜索。 MongoDB 的自动嵌入功能将传统上复杂的向量搜索实施进程转变为单步解决方案。您现在可以通过简单的字段配置来实现语义搜索,而无需管理单独的嵌入基础架构、模型选择和集成代码。

当您配置MongoDB Vector Search 索引时,它会使用您选择的最先进的 Voyage AI嵌入模型,为集合中的文本数据自动生成向量嵌入,在数据发生变化时保持嵌入同步,还支持使用自然语言文本查询。这些向量嵌入捕获数据中有意义的关系,并允许根据意图而不是关键字进行搜索。

只需更改简单的配置,即可为AI助手启用语义搜索、 RAG 和内存,而无需编写嵌入代码、管理模型基础架构或处理向量管道。换言之,在部署具有MongoDB Search mongot和 Vector Search进程 的MongoDB Community Edition时,您可以提供用于生成嵌入的 Voyage AI API密钥,理想情况下一个用于索引操作,另一个用于查询操作不同的项目。

部署后:

  1. 从集合中,选择要启用语义搜索的文本字段。

  2. 从可用嵌入模型列表中,选择一个嵌入模型。

  3. 在MongoDB Vector Search索引定义中,使用 autoEmbed 类型配置自动嵌入。

要学习;了解有关配置MongoDB Vector Search索引以实现自动嵌入的更多信息,请参阅索引文本字段。

MongoDB Vector Search 会为您使用初始化MongoDB Community Edition时指定的 API密钥插入或更新的现有文档和新文档自动生成嵌入。

注意

生成的嵌入存储在同一集群上的单独系统集合中。

对于查询,请在query.text $vectorSearch管道阶段使用 选项。 MongoDB Vector Search 使用索引定义中相同的嵌入模型为文本查询生成嵌入。您可以在model $vectorSearch管道阶段使用 选项指定不同的嵌入模型,但指定的嵌入模型必须与索引时使用的嵌入模型兼容。 MongoDB Vector Search 使用您在MongoDB Community初始化期间提供的查询API密钥在查询时生成嵌入。要学习;了解详情,请参阅运行文本查询。

使用API密钥生成嵌入时需要付费。要学习;了解更多信息,请参阅成本。

要自动执行嵌入并运行示例查询,请参阅入门。

虽然您可以使用单个API密钥在索引时和查询时生成嵌入,但我们建议您使用单独的API密钥,以避免查询操作对索引操作产生负面影响。

您可以通过以下方式生成API密钥:

mongot创建密钥后,在使用MongoDB Community Edition部署期间配置 时,必须指定要用于自动嵌入的密钥。 MongoDB Vector Search 使用您在部署 期间提供的 Voyage AI mongotAPI密钥,在索引处为您的数据自动生成嵌入,并在查询时为查询文本自动生成嵌入。

MongoDB Vector Search 与 Voyage AI 最先进的嵌入模型集成,每个模型都针对特定用例进行了优化:

嵌入模型
说明

voyage-4-lite

针对大容量、成本敏感的应用程序进行了优化。

voyage-4

(推荐)平衡一般文本搜索的性能。

voyage-4-large

复杂语义关系的最高准确性。

voyage-code-3

专门用于代码搜索和技术文档。

嵌入模型的定价基于使用量,向与用于访问权限的API密钥关联的帐户计费。定价基于文本字段和查询中的令牌数量。

注意

在嵌入模型和法学硕士中,词元是模型处理以创建嵌入或生成文本的文本的基本单位,例如单词、子词或字符。令牌是针对使用嵌入模型和 LLM 的计费方式。

如果您使用通过Atlas帐户创建的API密钥,则可以从Atlas 用户界面监控API密钥的使用情况。要学习;了解更多信息,请参阅计费。

如果您直接从 Voyage AI生成API密钥,请参阅定价以学习;了解有关嵌入服务端点请求费用的更多信息。

在预览阶段,以下部署类型尚无法使用自动嵌入功能:

  • Atlas集群

  • 使用Atlas CLI 的本地Atlas部署

  • MongoDB Enterprise Edition

该功能仅适用于使用Docker、Tarball 或包管理器的MongoDB Search 和MongoDB Vector Search 部署,以及将MongoDB Controllers for Kubernetes Operator 与MongoDB8.2 或更高版本 Community Edition 结合使用的部署。

使用以下教程,学习;了解如何配置MongoDB Vector Search 以自动生成向量嵌入。具体来说,您执行以下操作:

  1. 对集合中包含要在索引时自动生成嵌入的文本数据的字段或多个字段进行索引。

  2. 使用查询时自动生成的嵌入对索引字段运行文本查询。

本教程使用 sample_airbnb.listingsAndReviews命名空间演示如何对集合中的文本字段 索引,以便在索引时自动生成嵌入,并使用在以下位置生成的嵌入对索引字段summary summary运行文本查询:查询时间。

如要完成本教程,您必须具备以下条件:

您在本教程中创建的索引定义将对 sample_airbnb.listingsAndReviews集合中的以下字段进行索引:

  • summary 字段作为 autoEmbed 类型,以使用 voyage-4 嵌入模型自动为该字段中的文本数据生成嵌入。

  • address.country 字段作为 filter 类型,以使用该字段中的字符串值对数据进行预过滤以进行语义搜索。

  • bedroom 字段作为 filter 类型,以使用该字段中的数值对数据进行预筛选以进行语义搜索。

要创建此索引:

本教程中的查询执行以下操作:

  1. 针对 sample_airbnb.listingsAndReviews集合中带索引的 summary字段运行。

  2. 使用以下条件对属性进行预筛选:

    • 具有 3 或更多 bedrooms 的属性。

    • country 中名为 United States 的属性。

  3. 使用通过 voyage-4 嵌入模型自动生成的嵌入对 close to amusement parks 的属性语义搜索。查询:

    • 考虑最多 100 个最近邻。

    • 将结果限制为 10 个文档。

要运行此查询,请运行以下操作:

后退

兼容性与限制

获得技能徽章

免费掌握“RAG with MongoDB”!

了解详情

在此页面上