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

Observação

Este tutorial usa a biblioteca Python do LangChain. Para um tutorial que usa a biblioteca JavaScript, consulte Introdução à 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 dos seus dados. Para saber mais sobre RAG, consulte Geração Aumentada de Recuperação (RAG) com Atlas Vector Search.

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

  • Um cluster do Atlas executando MongoDB versão 6.0.11, 7.0.2 ou posterior (incluindo RCs).

  • 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 notebooks Python interativos, como o Colab.

    Observação

    Se estiver usando o Colab, certifique-se de que o endereço IP da sessão do notebook esteja incluído na lista de acesso do projeto Atlas.

Configure o ambiente para este tutorial. Crie um bloco de anotações Python interativo salvando um arquivo com a extensão .ipynb. Este bloco de anotações permite que você execute trechos de código Python individualmente, e você o usará para executar o código neste tutorial.

Para configurar seu ambiente de 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 código a seguir para criar uma instância de armazenamento de vetor chamada vector_store a partir dos documentos de amostra. Este trecho utiliza o método from_documents para criar o armazenamento de vetor do MongoDBAtlasVectorSearch e especifica os seguintes parâmetros:

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

  • Um modelo de incorporação OpenAI como o modelo usado para converter texto em incorporações vetoriais para o campo embedding . Por padrão, este modelo é text-embedding-ada-002.

  • 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
)

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.

Dica

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 em seu armazenamento de vetor, crie um índice do Atlas Vector Search na coleção langchain_db.test usando o método de assistente LangChain ou o método de driver PyMongo.

Execute o seguinte código no seu bloco de anotações seu método preferido. A definição de índice 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.

# Use helper method to create the vector search index
vector_store.create_vector_search_index(
dimensions = 1536,
filters = [ "page" ]
)
# Create your index model, then create the search index
search_index_model = SearchIndexModel(
definition={
"fields": [
{
"type": "vector",
"path": "embedding",
"numDimensions": 1536,
"similarity": "cosine"
},
{
"type": "filter",
"path": "page"
}
]
},
name="vector_index",
type="vectorSearch"
)
atlas_collection.create_search_index(model=search_index_model)

O índice deve levar cerca de um minuto para ser criado. Enquanto ele é compilado, o índice está em um estado de sincronização inicial. Quando a construção estiver concluída, você poderá começar a fazer query nos dados em sua coleção.

Depois que o Atlas criar seu índice, execute queries 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 realizar uma pesquisa semântica para a string MongoDB Atlas security e especifica o parâmetro k para limitar o número de documentos a serem retornados a 3.

Observação

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

Ele 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 string. Você deve indexar todos os campos de metadados pelos quais 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 a seguir 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 .

Ele 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

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 a Atlas Vector Search como um recuperador para fazer query em documentos semelhantes, incluindo o parâmetro k opcional para pesquisar apenas os 10 documentos mais relevantes.

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

  • Constrói uma cadeia que especifica o seguinte:

    • Atlas Vector Search como o recuperador para pesquisar documentos para usar como contexto.

    • O modelo de prompt que você definiu.

    • Um LLM da OpenAI para gerar uma resposta sensível ao contexto. Por padrão, este é o gpt-3.5-turbo modelo.

  • Solicita a cadeia com 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.
{context}
Question: {question}
"""
prompt = PromptTemplate.from_template(template)
model = ChatOpenAI()
# Construct a chain to answer questions on your data
chain = (
{ "context": retriever, "question": RunnablePassthrough()}
| prompt
| model
| StrOutputParser()
)
# Prompt the chain
question = "How can I secure my MongoDB Atlas cluster?"
answer = 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 documentos 10 mais relevantes.

    • score_threshold para usar somente 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 sua 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 no campo page os documentos que aparecem somente na página 17.

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

  • Constrói uma cadeia que especifica o seguinte:

    • Atlas Vector Search como o recuperador para pesquisar documentos para usar como contexto.

    • O modelo de prompt que você definiu.

    • Um LLM da OpenAI para gerar uma resposta sensível ao contexto. Por padrão, este é o gpt-3.5-turbo modelo.

  • Solicita a cadeia com 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,
"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.
{context}
Question: {question}
"""
prompt = PromptTemplate.from_template(template)
model = ChatOpenAI()
# Construct a chain to answer questions on your data
chain = (
{ "context": retriever, "question": RunnablePassthrough()}
| prompt
| model
| 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})]

Voltar

LangChain