本教程演示如何在本地实现检索增强生成 (RAG),而无需API密钥或信用。要学习;了解有关 RAG 的更多信息,请参阅 使用MongoDB进行检索增强生成 (RAG)。
具体来说,您需要执行以下操作:
创建本地 Atlas 部署。
设置环境。
使用本地嵌入模型生成向量嵌入。
对数据创建MongoDB Vector Search索引。
使用本地 LLM 来回答有关数据的问题。
在本教程中,您将使用Python和Docker通过atlas-local-lib-py 库创建本地Atlas部署。该库通过自动处理Docker容器并提供对连接字符串的编程访问权限来简化部署管理。要学习;了解更多信息,请参阅 atlas-local-lib-py存储库。
您还可以使用安装了Search 和 Vector Search的MongoDB Community或 Enterprise集群。
先决条件
除了常见的先决条件外,本教程还需要以下内容:
创建本地部署
设置环境
使用本地模型生成嵌入
在本部分中,您将在本地加载嵌入模型,并使用 sample_airbnb数据库中的数据生成向量嵌入,该数据库包含一个名为 listingsAndReviews的集合。
此代码可能需要几分钟才能运行。完成后,您可以使用部署的连接字符串从mongosh 连接到本地部署或应用程序,以查看向量嵌入。然后,您可以对 sample_airbnb.listingsAndReviews集合运行读取操作。
提示
您可以将样本数据中的嵌入转换为 BSON 向量,以便在 Atlas 中高效存储和摄取向量。要了解更多信息,请参阅如何将原生嵌入转换为 BSON 向量。
创建MongoDB Vector Search 索引
要在 sample_airbnb.listingsAndReviews集合上启用向量搜索,请创建MongoDB Vector Search索引。