Explore o novo chatbot do Developer Center! O MongoDB AI chatbot pode ser acessado na parte superior da sua navegação para responder a todas as suas perguntas sobre o MongoDB .

Junte-se a nós no Amazon Web Services re:Invent 2024! Saiba como usar o MongoDB para casos de uso de AI .
Desenvolvedor do MongoDB
Central de desenvolvedor do MongoDBchevron-right
Produtoschevron-right
Atlaschevron-right

MongoDB com agente Bedrock: tutorial rápido

Pavel Duchovny6 min read • Published Jul 01, 2024 • Updated Jul 01, 2024
AWSIAPythonAtlas
SNIPPET
Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Início rápido
star-empty
star-empty
star-empty
star-empty
star-empty
o MongoDB Atlas e o Amazon Bedrock uniram forças para simplificar o desenvolvimento de aplicativos de IA generativa por meio de sua integração perfeita. O MongoDB Atlas, um serviço robusto de banco de dados baseado em nuvem, agora oferece suporte nativo para o Amazon Bedrock, o serviço gerenciado da AWS para IA generativa. Essa integração aproveita os recursos de pesquisa vetorial do Atlas, permitindo a utilização eficaz de dados corporativos para aumentar os modelos fundamentais fornecidos pela Bedrock, como o Claude da Anthropic e o Titan da Amazon. A combinação garante que os modelos de IA generativa tenham acesso aos dados mais relevantes e atualizados, melhorando significativamente a precisão e a confiabilidade dos aplicativos orientados por IA com MongoDB​.
Essa integração simplifica o fluxo de trabalho dos desenvolvedores que visam implementar a geração aumentada de recuperação (RAG). O RAG ajuda a mitigar o problema de atordoamentos em modelos de AI , permitindo que eles busquem e utilizem dados específicos de uma base de conhecimento predefinida. Nesse caso, os desenvolvedores MongoDB Atlas podem configurar facilmente esse fluxo de trabalho criando um índice vetorial do Atlas Search no Atlas, que armazena as incorporações vetoriais e metadados dos dados de texto. Essa configuração não apenas melhora o desempenho e a confiabilidade dos aplicativos de AI , como também garante a privacidade e a segurança dos dados por meio de recursos como AWS PrivateLink​​.
Este bloco de anotações demonstra como interagir com um agente predefinido usando o AWS Bedrock em um ambiente do Google Colab. Ele utiliza a bibliotecaboto3para se comunicar com o serviço AWS Bedrock e permite que você insira prompts e receba respostas diretamente no bloco de anotações.

Características principais

  1. Manuseio seguro de credenciais da AWS: o módulogetpass é usado para inserir com segurança sua chave de acesso da AWS e a chave secreta.
  2. Gerenciamento de sessões: cada sessão recebe um ID de sessão aleatório para manter a sequência nas conversas.
  3. Invocação do agente: o notebook envia solicitações do usuário para um agente predefinido e transmite as respostas de volta para ousuário.

Requisitos

  • Chave de acesso AWS e chave secreta com permissões apropriadas
  • Bibliotecas Boto3 e Solicitações para interagir com os serviços Amazon Web Services e buscar dados a partir de URLs

Configurando o MongoDB Atlas

  1. Siga o guia de introduçãoao Atlas e configure seu cluster com 0.0.0.0/0 conexão permitida para este bloco de anotações.
  2. Predefina um índice vetorialAtlas . na coleçãobedrockdo banco de dadosagenda. Essa coleção hospedará os dados da agenda do cume do Amazon Web Services e servirá como um armazenamento de contexto para o agente:
**Nome do índice : :vector_index
1{
2 "fields": [
3 {
4 "type": "vector",
5 "path": "embedding",
6 "numDimensions": 1024,
7 "similarity": "cosine"
8 },
9 {
10 "type" : "filter",
11 "path" : "metadata"
12 },
13 {
14 "type" : "filter",
15 "path" : "text"
16 },
17 ]
18}

Configurar o AWS CloudRock

Usaremos a região US-EAST-1 AWS para este notebook.
Siga nosso tutorial oficial para habilitar uma base de conhecimento Bedrock no MongoDB Atlas e na collection criados no MongoDB Atlas. Este guia destaca as etapas para criar a base de dados de conhecimento e o agente.
Para este notebook, realizaremos as seguintes tarefas de acordo com o guia:
Go para o console Bedrock e habilite:
  • Modelo de incorporação de texto do Amazon Titan (amazon.titan-embed-text-v2:0)
  • Modelo de soneto de Claude 3 (O LLM)
Faça upload dos seguintes dados de origem sobre a agenda do AWS Summit para seu bucket S3 :
Esta será a nossa fonte de dados listando os eventos que acontecerão no Summit.
Go para o Gerenciador de segredos no console da AWS e crie credenciais para nosso cluster Atlas via "Outro tipo de segredo"
  • chave : nome de usuário , valor : <ATLAS_USERNAME>
  • chave : senha, valor : <ATLAS_PASSWORD>
Siga a configuração do assistente da base de conhecimento para conectar os modelos Cama do Rock ao Atlas:
  • Clique em "Criar Knowledge Base" e insira:
EntradaValor
Nome<NAME>
EscolhaCriar e usar uma nova role de serviço
Nome da Fonte de Dados<NAME>
S3 URIProcure o bucket S3 hospedando os arquivos de origem carregados 2
modelo de incorporaçãoTitan Text Embeddings v2
Ponto de partida do KB
Configurações de incorporação
  • Vamos escolher MongoDB Atlas no "Banco de dados vetorial". Selecione a seção "Escolha um armazenamento de vetores que você criou":
Configuração do vetor 1
EntradaValor
Selecione seu armazenamento de vetoresMongoDB Atlas
nome de anfitriãoSeu nome de host do atlas srv eg. cluster0.abcd.mongodb.net
Nome do Banco de Dadosbedrock
Nome da Coleçãoagenda
ARN secreto de credenciaisCopie as credenciais criadas do "Gerenciador de segredos"
Nome do índice de pesquisa vetorialvector_index
campo do caminho de incorporação do vetorembedding
Caminho do campo de textotext
Caminho do campo de metadadosmetadata
Configuração do vetor 3 Configuração do vetor 2
Clique em “Next” e revise os detalhes e " Criar base de conhecimento. "
Quando a base de conhecimento estiver marcada com " Status: Pronto, " Go para a seção “Data source”, escolha a fonte de dados que temos e clique em " Sync " no canto superior direito. Esta operação deve carregar os dados no Atlas se tudo foi configurado corretamente.

Configurar um agente de agenda

Agora podemos configurar nosso agente, que trabalhará com um conjunto de instruções e nossa base de conhecimento.
  1. Vá para a aba "Agentes" na IU do Bedrock.
  2. Clique em "Criar agente" e forneça um nome significativo (por exemplo, agenda_assistância).
  3. Insira os seguintes dados no construtor de agentes:
EntradaValor
Nome do agenteagenda_assistant
Role do recurso do agenteCriar e usar uma nova role de serviço
Selecionar modeloAntrópico - laudo 3 Sonnet
Instruções para o agenteVocê é um chatbot de AI amigável que ajuda os usuários a encontrar e criar itens de agenda para o AWS Summit Tel Aviv. Elabore o máximo possível sobre a resposta.
Nome do agenteagenda_assistant
Bases de conhecimentoEscolha sua Base de Conhecimento
AliasesCriar um novo Alias
E agora, temos um agente funcional que pode ser testado por meio do console. Vamos passar para o notebook.
Anote a ID do agente e crie um ID de alias de agente para o bloco de anotações.

Interagindo com o agente

Para interagir com o agente, precisamos instalar o AWS Python SDK:
1!pip install boto3
Vamos colocar as credenciais de nossa conta Amazon Web Services .
1import boto3
2from botocore.exceptions import ClientError
3import os
4import random
5import getpass
6
7
8# Get AWS credentials from user
9aws_access_key = getpass.getpass("Enter your AWS Access Key: ")
10aws_secret_key = getpass.getpass("Enter your AWS Secret Key: ")
Agora, precisamos inicializar o cliente boto3 e obter a entrada ID do agente e ID do alias.
1bedrock_agent_runtime = boto3.client('bedrock-agent-runtime',
2 aws_access_key_id=aws_access_key,
3 aws_secret_access_key=aws_secret_key,
4 region_name="us-east-1")
5
6
7# Define agent IDs (replace these with your actual agent IDs)
8agent_id = getpass.getpass("Enter your agent ID")
9agent_alias_id = getpass.getpass("Enter your agent Alias ID")
Vamos criar a função auxiliar para interagir com o agente.
1def randomise_session_id():
2 """
3 Generate a random session ID.
4
5
6 Returns:
7 str: A random session ID.
8 """
9 return str(random.randint(1000, 9999))
10
11
12def data_stream_generator(response):
13 """
14 Generator to yield data chunks from the response.
15
16
17 Args:
18 response (dict): The response dictionary.
19
20
21 Yields:
22 str: The next chunk of data.
23 """
24 for event in response["completion"]:
25 chunk = event.get("chunk", {})
26 if "bytes" in chunk:
27 yield chunk["bytes"].decode()
28
29
30def invoke_agent(bedrock_agent_runtime, agent_id, agent_alias_id, session_id, prompt):
31 """
32 Sends a prompt for the agent to process and respond to, streaming the response data.
33
34
35 Args:
36 bedrock_agent_runtime (boto3 client): The runtime client to invoke the agent.
37 agent_id (str): The unique identifier of the agent to use.
38 agent_alias_id (str): The alias of the agent to use.
39 session_id (str): The unique identifier of the session. Use the same value across requests to continue the same conversation.
40 prompt (str): The prompt that you want the agent to complete.
41
42
43 Returns:
44 str: The response from the agent.
45 """
46 try:
47 response = bedrock_agent_runtime.invoke_agent(
48 agentId=agent_id,
49 agentAliasId=agent_alias_id,
50 sessionId=session_id,
51 inputText=prompt,
52 )
53
54
55 # Use the data stream generator to stream the response
56 ret_response = ''.join(data_stream_generator(response))
57
58
59 return ret_response
60
61
62 except Exception as e:
63 return f"Error invoking agent: {e}"
Agora podemos interagir com o agente usando o código do aplicativo.
1# Initialize chat history and session ID
2session_id = randomise_session_id()
3
4
5while True:
6 prompt = input("Enter your prompt (or type 'exit' to quit): ")
7
8
9 if prompt.lower() == 'exit':
10 break
11
12
13 response = invoke_agent(bedrock_agent_runtime, agent_id, agent_alias_id, session_id, prompt)
14
15
16 print("Agent Response:")
17 print(response)
Go está ! O MongoDB Atlas tem um forte agente Cama de Rock . Você pode executar este código através do seguinte bloco denotasinterativo.

Conclusão

A integração do MongoDB Atlas com o Amazon Bedrock representa um avanço significativo no desenvolvimento e na implantação de aplicativos generativos de IA. Ao aproveitar o Atlas Search e os poderosos modelos fundamentais disponíveis no Bedrock, os desenvolvedores podem criar aplicativos altamente precisos e profundamente informados pelos dados corporativos. Essa integração perfeita facilita o fluxo de trabalho de geração aumentada de recuperação (RAG), permitindo que os modelos de AI acessem e utilizem os dados mais relevantes, reduzindo assim a probabilidade de alucinações e melhorando o desempenho geral.
Os benefícios dessa integração vão além dos aprimoramentos técnicos. Ele também simplifica a pilha de AI generativa, permitindo que as empresas implementem rapidamente soluções de AI escaláveis com recursos aprimorados de privacidade e segurança, como os fornecidos pelo AWS PrivateLink. Isso o torna uma solução ideal para empresas com requisitos rigorosos de segurança de dados. No geral, a combinação do MongoDB Atlas e da Amazon Cama do Rock fornece uma plataforma robusta, eficiente e segura para criar aplicativos de AI de próxima geração.
Se você tiver dúvidas ou quiser compartilhar seu trabalho com outros desenvolvedores, visite-nos na Comunidade de desenvolvedores do MongoDB.
Principais comentários nos fóruns
Ainda não há comentários sobre este artigo.
Iniciar a conversa

Ícone do FacebookÍcone do Twitterícone do linkedin
Avalie esse Início rápido
star-empty
star-empty
star-empty
star-empty
star-empty
Relacionado
Tutorial

Como configurar o mecanismo de segredos KMIP do HashiCorp Vault com MongoDB CSFLE ou Queryable Encryption


Nov 14, 2022 | 10 min read
Tutorial

Tutorial do MongoDB Atlas Data Federation: consultas federadas e $out para AWS S3


Jan 23, 2024 | 7 min read
Tutorial

Anúncio UDF do MongoDB para modelos do BigQuery Dataflow


Apr 02, 2024 | 4 min read
Tutorial

Introdução ao Azure Spring Apps e ao MongoDB Atlas: um guia passo a passo


Jan 27, 2024 | 5 min read
Sumário