MongoDB com agente Bedrock: tutorial rápido
Avalie esse Início rápido
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 biblioteca
boto3
para se comunicar com o serviço AWS Bedrock e permite que você insira prompts e receba respostas diretamente no bloco de anotações.- Manuseio seguro de credenciais da AWS: o módulo
getpass
é usado para inserir com segurança sua chave de acesso da AWS e a chave secreta. - Gerenciamento de sessões: cada sessão recebe um ID de sessão aleatório para manter a sequência nas conversas.
- 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.
- 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
- 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. - Predefina um índice vetorialAtlas . na coleção
bedrock
do 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 }
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:
Entrada | Valor |
---|---|
Nome | <NAME> |
Escolha | Criar e usar uma nova role de serviço |
Nome da Fonte de Dados | <NAME> |
S3 URI | Procure o bucket S3 hospedando os arquivos de origem carregados 2 |
modelo de incorporação | Titan Text Embeddings v2 |
- Vamos escolher MongoDB Atlas no "Banco de dados vetorial". Selecione a seção "Escolha um armazenamento de vetores que você criou":
Entrada | Valor |
---|---|
Selecione seu armazenamento de vetores | MongoDB Atlas |
nome de anfitrião | Seu nome de host do atlas srv eg. cluster0.abcd.mongodb.net |
Nome do Banco de Dados | bedrock |
Nome da Coleção | agenda |
ARN secreto de credenciais | Copie as credenciais criadas do "Gerenciador de segredos" |
Nome do índice de pesquisa vetorial | vector_index |
campo do caminho de incorporação do vetor | embedding |
Caminho do campo de texto | text |
Caminho do campo de metadados | metadata |
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.
Agora podemos configurar nosso agente, que trabalhará com um conjunto de instruções e nossa base de conhecimento.
- Vá para a aba "Agentes" na IU do Bedrock.
- Clique em "Criar agente" e forneça um nome significativo (por exemplo, agenda_assistância).
- Insira os seguintes dados no construtor de agentes:
Entrada | Valor |
---|---|
Nome do agente | agenda_assistant |
Role do recurso do agente | Criar e usar uma nova role de serviço |
Selecionar modelo | Antrópico - laudo 3 Sonnet |
Instruções para o agente | Você é 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 agente | agenda_assistant |
Bases de conhecimento | Escolha sua Base de Conhecimento |
Aliases | Criar 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.
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 .
1 import boto3 2 from botocore.exceptions import ClientError 3 import os 4 import random 5 import getpass 6 7 8 # Get AWS credentials from user 9 aws_access_key = getpass.getpass("Enter your AWS Access Key: ") 10 aws_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.
1 bedrock_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) 8 agent_id = getpass.getpass("Enter your agent ID") 9 agent_alias_id = getpass.getpass("Enter your agent Alias ID")
Vamos criar a função auxiliar para interagir com o agente.
1 def 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 12 def 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 30 def 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 2 session_id = randomise_session_id() 3 4 5 while 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.
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.