Menu Docs
Página inicial do Docs
/
MongoDB Atlas
/ /

Comece com a integração com o LangChain

Nesta página

  • Plano de fundo
  • Pré-requisitos
  • Configurar o ambiente
  • Use o Atlas como um Vector Store
  • Criar o índice Atlas Vector Search Index
  • Executar queries no Vector Search
  • Responda a perguntas sobre seus dados
  • Próximos passos

Observação

Este tutorial utiliza abiblioteca da LangChain . Para obter um tutorial que usa a biblioteca JavaScript, consulte Comece a usar a integração LangChain JS/TS.

Você pode integrar o Atlas Vector Search com o LangChain para construir aplicativosLLM e implementar a geração aumentada de recuperação (RAG). Este tutorial demonstra como começar a usar o Atlas Vector Search com o LangChain para executar a Atlas Search semântica em seus dados e criar uma implementação de RAG . Especificamente, você executa as seguintes ações:

  1. Configure o ambiente.

  2. Armazene dados personalizados no Atlas.

  3. Crie um índice de pesquisa do Atlas Vector Search em seus dados.

  4. Execute as seguintes query de pesquisa vetorial:

    • Pesquisa semântica.

    • Pesquisar semântica com pontuação.

    • Pesquisa semântica com pré-filtragem de metadados.

  5. Implemente o RAG usando o Atlas Vector Search para responder a perguntas sobre seus dados.

LangChain é uma estrutura de código aberto que simplifica a criação de aplicativos LLM por meio do uso de "cadeias". As cadeias são componentes específicos do LangChain que podem ser combinados para uma variedade de casos de uso de AI , incluindo RAG.

Ao integrar o Atlas Vector Search com o LangChain, você pode usar o Atlas como um banco de dados vetorial e usar o Atlas Vector Search para implementar o RAG , recuperando documentos semanticamente semelhantes de seus dados. Para saber mais sobre RAG, consulte Retrieval-Augmented Geração (RAG) com Atlas Vector Search.

Para concluir este tutorial, você deve ter o seguinte:

  • Um Atlas cluster executando o MongoDB versão 6.0.11, 7.0.2 ou posterior (incluindo RCs). Garanta que seu endereço IP esteja incluído na lista de acessodo seu projeto Atlas.

  • Uma chave de API OpenAI. Você deve ter uma conta OpenAI paga com créditos disponíveis para solicitações de API.

  • Um ambiente para executar blocos de anotações interativos do Python, como o CoLab.

Você deve primeiro configurar o ambiente para este tutorial. Crie um bloco de anotações Python interativo salvando um arquivo com a extensão .ipynb e, em seguida, execute os seguintes trechos de código no bloco de anotações.

1

Execute o seguinte comando:

%pip install --upgrade --quiet langchain langchain-community langchain-core langchain-mongodb langchain-openai pymongo pypdf

Em seguida, execute o seguinte código para importar os pacotes necessários:

import getpass, os, pymongo, pprint
from langchain_community.document_loaders import PyPDFLoader
from langchain_core.output_parsers import StrOutputParser
from langchain_core.runnables import RunnablePassthrough
from langchain_mongodb import MongoDBAtlasVectorSearch
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain.prompts import PromptTemplate
from langchain.text_splitter import RecursiveCharacterTextSplitter
from pymongo import MongoClient
from pymongo.operations import SearchIndexModel
2

Execute o código a seguir e forneça o seguinte quando solicitado:

os.environ["OPENAI_API_KEY"] = getpass.getpass("OpenAI API Key:")
ATLAS_CONNECTION_STRING = getpass.getpass("MongoDB Atlas SRV Connection String:")

Observação

Sua string de conexão deve usar o seguinte formato:

mongodb+srv://<db_username>:<db_password>@<clusterName>.<hostname>.mongodb.net

Em seguida, carregue dados personalizados no Atlas e instancie o Atlas como um banco de dados vetorial, também chamado de armazenamento de vetores. Copie e cole os seguintes trechos de código em seu bloco de anotações.

1

Execute o seguinte código para estabelecer uma conexão com seu cluster do Atlas. Ele especifica o seguinte:

  • langchain_db.test como o nome da collection para a qual carregar os dados.

  • vector_index como o nome do Atlas Vector Search índice de pesquisa a ser usado para a query dos dados.

# Connect to your Atlas cluster
client = MongoClient(ATLAS_CONNECTION_STRING)
# Define collection and index name
db_name = "langchain_db"
collection_name = "test"
atlas_collection = client[db_name][collection_name]
vector_search_index = "vector_index"
2

Para este tutorial, você usa um documento PDF acessível ao público intitulado Melhores práticas do MongoDB Atlas como fonte de dados para seu armazenamento de vetores. Este documento descreve várias recomendações e conceitos principais para gerenciar seus sistemas Atlas.

Para carregar os dados de amostra, execute o seguinte trecho de código. Ele faz o seguinte:

  • Recupera o PDF a partir da URL especificada e carrega os dados de texto brutos.

  • Usa um divisor de texto para dividir os dados em documentos menores.

  • Especifica os parâmetros de parte, que determinam o número de caracteres em cada documento e o número de caracteres que devem se sobrepor entre dois documentos consecutivos.

# Load the PDF
loader = PyPDFLoader("https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP")
data = loader.load()
# Split PDF into documents
text_splitter = RecursiveCharacterTextSplitter(chunk_size=200, chunk_overlap=20)
docs = text_splitter.split_documents(data)
# Print the first document
docs[0]
Document(page_content='Mong oDB Atlas Best P racticesJanuary 20 19A MongoD B White P aper', metadata={'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 0})
3

Execute o seguinte código para criar um armazenamento de vetor denominado vector_store a partir dos documentos de exemplo. Este trecho utiliza o método MongoDBAtlasVectorSearch.from_documents e especifica os seguintes parâmetros:

  • O documento de amostra a serem armazenados no reconhecimento de data center vetorial.

  • Modelo de incorporação do OpenAI como o modelo usado para converter texto em incorporações vetoriais para o campo embedding .

  • langchain_db.test como a coleção Atlas para armazenar os documentos.

  • vector_index como o índice a ser usado para consultar o armazenamento de vetores.

# Create the vector store
vector_store = MongoDBAtlasVectorSearch.from_documents(
documents = docs,
embedding = OpenAIEmbeddings(disallowed_special=()),
collection = atlas_collection,
index_name = vector_search_index
)

Dica

Depois de executar o código de amostra, você pode visualizar suas incorporações vetoriais na Atlas navegando até a collection langchain_db.test no seu cluster.

Observação

Para criar um Atlas Vector Search índice de pesquisa, você deve ter acesso Project Data Access Admin ou superior ao Atlas projeto.

Para habilitar consultas de pesquisa de vetor no seu armazenamento de vetor, crie um índice do Atlas Vector Search na coleção langchain_db.test .

No seu bloco de anotações, execute o seguinte código para criar um índice do tipo vectorSearch que especifica a indexação dos seguintes campos:

  • embedding campo como o tipo de vetor . O campo embedding contém as incorporações criadas utilizando o modelo de incorporação text-embedding-ada-002 do OpenAI. A definição de índice especifica 1536 dimensões vetoriais e mede a similaridade usando cosine.

  • page campo como o tipo de filtro para pré-filtrar dados pelo número da página no PDF.

1# Create your index model, then create the search index
2search_index_model = SearchIndexModel(
3 definition={
4 "fields": [
5 {
6 "type": "vector",
7 "path": "embedding",
8 "numDimensions": 1536,
9 "similarity": "cosine"
10 },
11 {
12 "type": "filter",
13 "path": "page"
14 }
15 ]
16 },
17 name="vector_index",
18 type="vectorSearch"
19)
20
21atlas_collection.create_search_index(model=search_index_model)

O índice deve levar cerca de um minuto para ser criado. Enquanto constrói, o índice está em um estado de sincronização inicial . Quando terminar de ser criado, você poderá começar a consultar os dados em sua coleção.

Depois que o Atlas criar seu índice, execute consultas de pesquisa vetorial em seus dados. Os exemplos a seguir demonstram várias queries que você pode executar em seus dados vetorizados.

A query a seguir usa o método similarity_search para executar uma pesquisa semântica básica para a string MongoDB Atlas security . Retorna uma lista de documentos classificados por relevância.

query = "MongoDB Atlas security"
results = vector_store.similarity_search(query)
pprint.pprint(results)
[Document(page_content='To ensure a secure system right out of the b ox,\nauthentication and I P Address whitelisting are\nautomatically enabled.\nReview the security section of the MongoD B Atlas', metadata={'_id': ObjectId('65c2e8f480f26794dedad8d5'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17}),
Document(page_content='MongoD B Atlas team are also monitoring the underlying\ninfrastructure, ensuring that it is always in a healthy state.\nApplication L ogs And Database L ogs', metadata={'_id': ObjectId('65c2e8f480f26794dedad8a0'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 15}),
Document(page_content='MongoD B.\nMongoD B Atlas incorporates best practices to help keep\nmanaged databases healthy and optimized. T hey ensure\noperational continuity by converting comple x manual tasks', metadata={'_id': ObjectId('65c2e8f380f26794dedad883'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 13}),
Document(page_content='Atlas provides encryption of data at rest with encrypted\nstorage volumes.\nOptionally , Atlas users can configure an additional layer of\nencryption on their data at rest using the MongoD B', metadata={'_id': ObjectId('65c2e8f480f26794dedad8e3'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 18})]

A query a seguir usa o método similarity_search_with_score para executar uma pesquisa semântica para a string MongoDB Atlas security e especifica o parâmetro k para limitar o número de documentos para retornar ao 3.

Observação

O parâmetro k neste exemplo refere-se à opção de método similarity_search_with_score , não à opção do operador knnBeta com o mesmo nome.

Ela retorna os três documentos mais relevantes e uma pontuação de relevância entre 0 e 1.

query = "MongoDB Atlas security"
results = vector_store.similarity_search_with_score(
query = query, k = 3
)
pprint.pprint(results)
[(Document(page_content='To ensure a secure system right out of the b ox,\nauthentication and I P Address whitelisting are\nautomatically enabled.\nReview the security section of the MongoD B Atlas', metadata={'_id': ObjectId('65c2e8f480f26794dedad8d5'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17}),
0.935082197189331),
(Document(page_content='MongoD B Atlas team are also monitoring the underlying\ninfrastructure, ensuring that it is always in a healthy state.\nApplication L ogs And Database L ogs', metadata={'_id': ObjectId('65c2e8f480f26794dedad8a0'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 15}),
0.9335962533950806),
(Document(page_content='MongoD B.\nMongoD B Atlas incorporates best practices to help keep\nmanaged databases healthy and optimized. T hey ensure\noperational continuity by converting comple x manual tasks', metadata={'_id': ObjectId('65c2e8f380f26794dedad883'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 13}),
0.9317940473556519)]

Você pode pré-filtrar seus dados usando uma expressão de correspondência MQL que compara o campo indexado com valores booleanos, numéricos ou de cadeia. Você deve indexar todos os campos de metadados que deseja filtrar como o tipo filter . Para saber mais, consulte Como indexar campos do Vector Search.

Observação

Você especificou o campo page como um filtro quando criou o índice para este tutorial.

A query abaixo usa o método similarity_search_with_score para executar uma pesquisa semântica para a string MongoDB Atlas security. Ele também especifica o seguinte:

  • O parâmetro k para limitar o número de documentos para retornar ao 3.

  • Um pré-filtro no campo page que usa o operador $eq para corresponder aos documentos que aparecem somente na página 17 .

Retorna os três documentos mais relevantes da página 17 e uma pontuação de relevância entre 0 e 1.

query = "MongoDB Atlas security"
results = vector_store.similarity_search_with_score(
query = query,
k = 3,
pre_filter = { "page": { "$eq": 17 } }
)
pprint.pprint(results)
[(Document(page_content='To ensure a secure system right out of the b ox,\nauthentication and I P Address whitelisting are\nautomatically enabled.\nReview the security section of the MongoD B Atlas', metadata={'_id': ObjectId('65c2e8f480f26794dedad8d5'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17}),
0.935082197189331),
(Document(page_content='Security\nAs with all software, MongoD B administrators must\nconsider security and risk e xposure for a MongoD B\ndeployment. T here are no magic solutions for risk', metadata={'_id': ObjectId('65c2e8f480f26794dedad8d0'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17}),
0.920635461807251),
(Document(page_content='number of diff erent methods for managing risk and\nreducing risk e xposure.\nMongoD B Atlas f eatures e xtensive capabilities to def end,\ndetect, and control access to MongoD B, off ering among', metadata={'_id': ObjectId('65c2e8f480f26794dedad8d2'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17}),
0.9206267595291138)]

Dica

Veja também:

Para obter uma lista completa dos métodos de pesquisa semântica, consulte a referência da API.

Esta seção demonstra como implementar RAG em seu aplicativo com Atlas Vector Search e LangChain. Agora que você usou o Atlas Vector Search para recuperar documentos semanticamente semelhantes, execute os exemplos de código a seguir para solicitar que o LLM responda perguntas com base nesses documentos.

Este exemplo faz o seguinte:

  • Instancia o Atlas Vector Search como um recuperador para executar query de documentos semelhantes, incluindo o k parâmetro opcional para pesquisar somente os 10 documentos mais relevantes.

  • Define um modelo de prompt do LangChain para instruir o LLM a usar esses documentos como contexto para sua query. O LangChain passa esses documentos para a {context} variável de entrada e sua query para a {question} variável .

  • Constrói uma cadeia que especifica o seguinte:

    • Atlas Vector Search como o recuperador para pesquisar documentos que são usados como contexto pelo LLM.

    • O modelo de prompt que você criou.

    • O modelo de bate-papo da OpenAI como LLM usado para gerar uma resposta sensível ao contexto.

  • Solicita à cadeia uma query de amostra sobre as recomendações de segurança do Atlas.

  • Retorna a resposta do LLM e os documentos usados como contexto. A resposta gerada pode variar.

# Instantiate Atlas Vector Search as a retriever
retriever = vector_store.as_retriever(
search_type = "similarity",
search_kwargs = { "k": 10 }
)
# Define a prompt template
template = """
Use the following pieces of context to answer the question at the end.
If you don't know the answer, just say that you don't know, don't try to make up an answer.
{context}
Question: {question}
"""
custom_rag_prompt = PromptTemplate.from_template(template)
llm = ChatOpenAI()
def format_docs(docs):
return "\n\n".join(doc.page_content for doc in docs)
# Construct a chain to answer questions on your data
rag_chain = (
{ "context": retriever | format_docs, "question": RunnablePassthrough()}
| custom_rag_prompt
| llm
| StrOutputParser()
)
# Prompt the chain
question = "How can I secure my MongoDB Atlas cluster?"
answer = rag_chain.invoke(question)
print("Question: " + question)
print("Answer: " + answer)
# Return source documents
documents = retriever.invoke(question)
print("\nSource documents:")
pprint.pprint(documents)
Question: How can I secure my MongoDB Atlas cluster?
Answer: To secure your MongoDB Atlas cluster, you can enable
authentication and IP address whitelisting, review the security section
in the MongoDB Atlas dashboard, encrypt data at rest with encrypted storage
volumes, optionally configure an additional layer of encryption on your
data, set up global clusters on Amazon Web Services, Microsoft Azure,
and Google Cloud Platform, and ensure operational continuity by choosing
appropriate instance size, storage size, and storage speed options.
Additionally, consider setting up a larger number of replica nodes for
increased protection against database downtime.
Source documents:
[Document(page_content='To ensure a secure system right out of the b ox,\nauthentication and I P Address whitelisting are\nautomatically enabled.\nReview the security section of the MongoD B Atlas', metadata={'_id': ObjectId('65fb4f056979cf7cbbfe0436'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17}),
Document(page_content='MongoD B Atlas team are also monitoring the underlying\ninfrastructure, ensuring that it is always in a healthy state.\nApplication L ogs And Database L ogs', metadata={'_id': ObjectId('65fb4f056979cf7cbbfe0401'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 15}),
Document(page_content='All the user needs to do in order for MongoD B Atlas to\nautomatically deploy the cluster is to select a handful of\noptions:\n•Instance size\n•Storage size (optional)\n•Storage speed (optional)', metadata={'_id': ObjectId('65fb4f046979cf7cbbfe03ef'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 14}),
Document(page_content='MongoD B.\nMongoD B Atlas incorporates best practices to help keep\nmanaged databases healthy and optimized. T hey ensure\noperational continuity by converting comple x manual tasks', metadata={'_id': ObjectId('65fb4f046979cf7cbbfe03e4'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 13}),
Document(page_content='You can set up global clusters — available on Amazon W eb\nServices, Microsoft Azure, and Google Cloud Platform —\nwith just a f ew clic ks in the MongoD B Atlas U I. MongoD B', metadata={'_id': ObjectId('65fb4f046979cf7cbbfe03bb'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 12}),
Document(page_content='Table of Contents\n1 Introduction\n2 Preparing for a MongoD B Deployment\n9 Scaling a MongoD B Atlas Cluster\n11 Continuous A vailability & Data Consistency\n12 Managing MongoD B\n16 Security', metadata={'_id': ObjectId('65fb4f026979cf7cbbfe02d6'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 1}),
Document(page_content='Atlas provides encryption of data at rest with encrypted\nstorage volumes.\nOptionally , Atlas users can configure an additional layer of\nencryption on their data at rest using the MongoD B', metadata={'_id': ObjectId('65fb4f056979cf7cbbfe0444'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 18}),
Document(page_content='Disaster Recovery\nCreated by the engineers who develop the database,\nMongoD B Atlas is the simplest way to run MongoD B,\nmaking it easy to deploy , monitor , backup, and scale\nMongoD B.', metadata={'_id': ObjectId('65fb4f046979cf7cbbfe03e3'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 13}),
Document(page_content='Security\nAs with all software, MongoD B administrators must\nconsider security and risk e xposure for a MongoD B\ndeployment. T here are no magic solutions for risk', metadata={'_id': ObjectId('65fb4f056979cf7cbbfe0431'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17}),
Document(page_content='A larger number of replica nodes provides increased\nprotection against database downtime in case of multiple\nmachine failures.\nMongoD B Atlas replica sets have a minimum of 3 nodes', metadata={'_id': ObjectId('65fb4f046979cf7cbbfe03ca'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 12})]

Este exemplo faz o seguinte:

  • Instancia o Atlas Vector Search como um recuperador para consultar documentos semelhantes, incluindo os seguintes parâmetros opcionais:

    • k para pesquisar somente os 10 documentos mais relevantes.

    • score_threshold para usar apenas documentos com uma pontuação de relevância acima de 0.75.

      Observação

      Esse parâmetro se refere a uma pontuação de relevância que o Langchain usa para normalizar seus resultados, e não à pontuação de relevância usada nas queries do Atlas Search. Para usar as pontuações do Atlas Search na implementação do RAG , defina um recuperador personalizado que use o método similarity_search_with_score e filtre pela pontuação do Atlas Search.

    • pre_filter para filtrar o campo page apenas para documentos que aparecem na página 17 .

  • Define um modelo de prompt do LangChain para instruir o LLM a usar esses documentos como contexto para sua query. O LangChain passa esses documentos para a {context} variável de entrada e sua query para a {question} variável .

  • Constrói uma cadeia que especifica o seguinte:

    • Atlas Vector Search como o recuperador para pesquisar documentos que são usados como contexto pelo LLM.

    • O modelo de prompt que você criou.

    • O modelo de bate-papo da OpenAI como LLM usado para gerar uma resposta sensível ao contexto.

  • Solicita à cadeia uma query de amostra sobre as recomendações de segurança do Atlas.

  • Retorna a resposta do LLM e os documentos usados como contexto. A resposta gerada pode variar.

# Instantiate Atlas Vector Search as a retriever
retriever = vector_store.as_retriever(
search_type = "similarity_score_threshold",
search_kwargs = {
"k": 10,
"score_threshold": 0.75,
"pre_filter": { "page": { "$eq": 17 } }
}
)
# Define a prompt template
template = """
Use the following pieces of context to answer the question at the end.
If you don't know the answer, just say that you don't know, don't try to make up an answer.
{context}
Question: {question}
"""
custom_rag_prompt = PromptTemplate.from_template(template)
llm = ChatOpenAI()
def format_docs(docs):
return "\n\n".join(doc.page_content for doc in docs)
# Construct a chain to answer questions on your data
rag_chain = (
{ "context": retriever | format_docs, "question": RunnablePassthrough()}
| custom_rag_prompt
| llm
| StrOutputParser()
)
# Prompt the chain
question = "How can I secure my MongoDB Atlas cluster?"
answer = rag_chain.invoke(question)
print("Question: " + question)
print("Answer: " + answer)
# Return source documents
documents = retriever.invoke(question)
print("\nSource documents:")
pprint.pprint(documents)
Question: How can I secure my MongoDB Atlas cluster?
Answer: To secure your MongoDB Atlas cluster, you can enable
authentication and IP Address whitelisting, define permissions
for users and applications, use VPC Peering for secure connectivity,
implement a Defense in Depth approach for securing deployments, and
consider using LDAP integration for centralized authorization
management. It is important to regularly review the security section
of MongoDB Atlas and continuously monitor and update security measures
to mitigate risk and maintain a secure deployment.
Source documents:
[Document(page_content='To ensure a secure system right out of the b ox,\nauthentication and I P Address whitelisting are\nautomatically enabled.\nReview the security section of the MongoD B Atlas', metadata={'_id': ObjectId('65fb4f056979cf7cbbfe0436'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17}),
Document(page_content='Security\nAs with all software, MongoD B administrators must\nconsider security and risk e xposure for a MongoD B\ndeployment. T here are no magic solutions for risk', metadata={'_id': ObjectId('65fb4f056979cf7cbbfe0431'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17}),
Document(page_content='number of diff erent methods for managing risk and\nreducing risk e xposure.\nMongoD B Atlas f eatures e xtensive capabilities to def end,\ndetect, and control access to MongoD B, off ering among', metadata={'_id': ObjectId('65fb4f056979cf7cbbfe0433'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17}),
Document(page_content='permissions for a user or application, and what data it can\naccess when querying MongoD B. MongoD B Atlas provides\nthe ability to provision users with roles specific to a', metadata={'_id': ObjectId('65fb4f056979cf7cbbfe043b'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17}),
Document(page_content='connectivity without using public I P addresses, and without\nneeding to whitelist every client in your MongoD B Atlas\ngroup.\nAuthorization\nMongoD B Atlas allows administrators to define', metadata={'_id': ObjectId('65fb4f056979cf7cbbfe043a'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17}),
Document(page_content='mitigation, and maintaining a secure MongoD B deployment\nis an ongoing process.\nDefense in Depth\nA Def ense in Depth approac h is recommended for\nsecuring MongoD B deployments, and it addresses a', metadata={'_id': ObjectId('65fb4f056979cf7cbbfe0432'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17}),
Document(page_content='optimization.\nIn addition, MongoD B Atlas provides pac kaged integration\nwith the New Relic platform. K ey metrics from MongoD B\nAtlas are accessible to the AP M for visualization, enabling', metadata={'_id': ObjectId('65fb4f056979cf7cbbfe042e'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17}),
Document(page_content='their I P address (or a C IDR covering their I P address) has\nbeen added to the IP whitelist for your MongoD B Atlas\ngroup.\nVPC P eering\nVirtual P rivate Cloud (VPC) P eering allows users to create', metadata={'_id': ObjectId('65fb4f056979cf7cbbfe0438'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17}),
Document(page_content='dedicated A tlas clusters using credentials that are verified\nby a centralized L DAP server . Authorization management is\nsimplified by allowing control at the L DAP group level.', metadata={'_id': ObjectId('65fb4f056979cf7cbbfe043d'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17}),
Document(page_content='database, making it possible to realize a separation of\nduties between diff erent entities accessing and managing\nthe data.\nAtlas supports L DAP integration, allowing users to login to', metadata={'_id': ObjectId('65fb4f056979cf7cbbfe043c'), 'source': 'https://query.prod.cms.rt.microsoft.com/cms/api/am/binary/RE4HkJP', 'page': 17})]

Para saber mais sobre casos de uso de RAG adicionais com o Atlas Vector Search, consulte os seguintes modelos fornecidos pelo LangChain para ajudá-lo a criar aplicação:

O MongoDB também fornece os seguintes recursos para desenvolvedores:

Voltar

Integrações de IA

Próximo

LangChain JS/TS