Skip to main content
MongoDB Atlas 是一项在 AWS、Azure 和 GCP 上提供的完全托管的云服务数据库。它现已支持对 MongoDB 文档数据原生的向量搜索(Vector Search)。

安装与配置

请参阅详细配置说明 我们需要安装 langchain-mongodb Python 包。
pip install langchain-mongodb

向量存储

请参阅使用示例
from langchain_mongodb import MongoDBAtlasVectorSearch

检索器

全文搜索检索器

Hybrid Search Retriever 使用 Lucene 的标准分析器(BM25)执行全文搜索。
from langchain_mongodb.retrievers import MongoDBAtlasFullTextSearchRetriever

混合搜索检索器

Hybrid Search Retriever 结合向量搜索和全文搜索,并通过 Reciprocal Rank FusionRRF)算法对其进行加权。
from langchain_mongodb.retrievers import MongoDBAtlasHybridSearchRetriever

模型缓存

MongoDBCache

一种在 MongoDB 中存储简单缓存的抽象层。此方法不使用语义缓存(Semantic Caching),也不要求在生成之前对集合创建索引。 要导入此缓存:
from langchain_mongodb.cache import MongoDBCache
要在您的 LLM 中使用此缓存:
from langchain_core.globals import set_llm_cache

# 使用任意嵌入提供商...
from tests.integration_tests.vectorstores.fake_embeddings import FakeEmbeddings

mongodb_atlas_uri = "<YOUR_CONNECTION_STRING>"
COLLECTION_NAME="<YOUR_CACHE_COLLECTION_NAME>"
DATABASE_NAME="<YOUR_DATABASE_NAME>"

set_llm_cache(MongoDBCache(
    connection_string=mongodb_atlas_uri,
    collection_name=COLLECTION_NAME,
    database_name=DATABASE_NAME,
))

MongoDBAtlasSemanticCache

语义缓存允许用户根据用户输入与先前缓存结果之间的语义相似度来检索缓存的提示词。其底层将 MongoDBAtlas 同时作为缓存和向量存储(vectorstore)进行融合。 MongoDBAtlasSemanticCache 继承自 MongoDBAtlasVectorSearch,并且需要定义 Atlas 向量搜索索引才能正常工作。有关如何设置索引,请参阅使用示例 要导入此缓存:
from langchain_mongodb.cache import MongoDBAtlasSemanticCache
要在您的 LLM 中使用此缓存:
from langchain_core.globals import set_llm_cache

# 使用任意嵌入提供商...
from tests.integration_tests.vectorstores.fake_embeddings import FakeEmbeddings

mongodb_atlas_uri = "<YOUR_CONNECTION_STRING>"
COLLECTION_NAME="<YOUR_CACHE_COLLECTION_NAME>"
DATABASE_NAME="<YOUR_DATABASE_NAME>"

set_llm_cache(MongoDBAtlasSemanticCache(
    embedding=FakeEmbeddings(),
    connection_string=mongodb_atlas_uri,
    collection_name=COLLECTION_NAME,
    database_name=DATABASE_NAME,
))