Alura > Cursos de Inteligência Artificial > Cursos de IA para Programação > Conteúdos de IA para Programação > Primeiras aulas do curso Amazon Bedrock e Python: construa chatbots e ferramentas de geração de imagens com IA

Amazon Bedrock e Python: construa chatbots e ferramentas de geração de imagens com IA

Explorando o Amazon Bedrock - Apresentação

Olá! Meu nome é Lucas Mata, sou instrutor na Alura, e quero te dar boas-vindas a este curso.

Audiodescrição: Lucas se descreve como uma pessoa branca, de cabelo e barba pretos e curtos, e olhos castanho-escuros. Ele usa óculos de armação arredondada preta, veste uma camisa escura com o logotipo da Alura em branco, e está em um estúdio da Alura, com uma parede iluminada em roxo ao fundo, e uma estante preta à esquerda do instrutor, com quadros, enfeites, livros e pontos de iluminação amarela.

O que vamos aprender?

Este curso é destinado a quem deseja aplicar modelos de inteligência artificial no cotidiano de desenvolvimento. Para isso, utilizaremos o serviço da AWS Amazon Bedrock, que disponibiliza diversos modelos de inteligência artificial para integração em projetos e aplicações. Para melhor aproveitamento do curso, é importante ter conhecimentos sobre programação em Python.

Observação! Neste curso, não focaremos na construção do código em si, mas sim na elaboração de ferramentas que utilizam modelos de inteligência artificial do Bedrock.

Primeiramente, vamos interagir com modelos de IA diretamente no Amazon Bedrock. Em seguida, entenderemos como encaminhar requisições para modelos de IA generativa, utilizando a API de cada modelo. A partir disso, criaremos um chatbot inteligente, usando o modelo Claude da Anthropic, e aplicaremos ferramentas como o LangChain e o RAG.

Por fim, criaremos ferramentas inteligentes para geração de imagens, utilizando modelos de geração de imagem, como, por exemplo, o Stable Diffusion.

Aprenderemos tudo isso de forma prática, construindo efetivamente as ferramentas e integrando os diferentes modelos disponíveis no Bedrock.

Conclusão

Aproveite os recursos da plataforma! Além dos vídeos, temos atividades para reforçar o conteúdo, o fórum para tirar suas dúvidas, e o apoio da comunidade no Discord.

Nos encontramos nos próximos vídeos para dar início à nossa jornada de aprendizado!

Explorando o Amazon Bedrock - Hello, Bedrock

Usamos inteligência artificial no dia a dia de forma direta e indireta, seja fazendo uma busca no navegador ou utilizando um assistente de voz no nosso smartphone, por exemplo.

A IA tem se tornado um componente essencial em muitas aplicações, como quando queremos fazer uma pesquisa mais inteligente, ou seja, obter uma resposta mais específica para uma dada pergunta.

Em muitas aplicações e plataformas, é comum o uso de assistentes virtuais ou chatbots. Na plataforma da Alura, por exemplo, temos a Luri.

A Luri é uma assistente que, se digitarmos um prompt como "Quero aprender Linux", ela nos retornará uma pesquisa de conteúdos refinada, ajudando na trajetória de aprendizado e recomendando conteúdos, artigos e cursos na plataforma.

Com isso em mente, como podemos construir aplicações inteligentes, ou seja, aplicações que utilizem modelos de inteligência artificial? Esse será o principal objeto de estudo da nossa jornada.

Configurando o Amazon Bedrock

Nesse caso específico, lidaremos com a aplicação da Meteora. A Meteora é um e-commerce para venda de peças de roupas e itens de vestuário em geral. Ao longo deste curso, trabalharemos na construção de ferramentas, como um chatbot para essa plataforma.

Para isso, utilizaremos um serviço da AWS chamado Amazon Bedrock.

Acessando o console da AWS

Daremos início acessando o console da AWS e fazendo o login.

Caso você ainda não tenha suas credenciais de acesso, é necessário configurá-las e criá-las.

Após isso, clicamos na opção "Faça login no console" no canto superior direito da tela. Realizado o login, temos acesso ao console da AWS, onde podemos visualizar todos os serviços e recursos disponíveis. Nesse caso, utilizaremos o Bedrock, mas antes de acessá-lo efetivamente, precisamos garantir que nossa conta de usuário tenha acesso a esse serviço.

Permitindo o acesso ao Amazon Bedrock

Na AWS, o gerenciamento de identidade e acesso regula as permissões de cada pessoa usuária para acessar os recursos de forma adequada. Sabendo disso, vamos buscar por "IAM" no campo de pesquisa do console, que é um acrônimo de Identity Access Management.

Feito isso, selecionaremos a primeira opção e, no menu lateral esquerdo, escolheremos "Users" ("Usuários"). Dessa forma, será exibida uma lista de pessoas usuários da nossa conta.

No caso do instrutor, ele selecionará LucasMata; você deve selecionar seu próprio usuário.

Após clicar no usuário desejado, encontramos uma lista de permissões (seção "Políticas de permissões"). No nosso caso, já existe a permissão para AmazonBedrockFullAccess.

Além da permissão AmazonBedrockFullAccess, temos a AdministratorAccess, isto é, o acesso como pessoa administradora. Com isso, já teríamos acesso ao Bedrock normalmente.

Caso a permissão não exista ainda, basta clicar em "Adicionar permissões" no canto superior direito. Para realizar este processo, existem três opções:

  1. Adicionar usuário ao grupo;
  2. Copiar permissões;
  3. Anexar políticas diretamente.

Para adicionar políticas de permissão padrão da AWS rapidamente, escolhemos a última opção ("Anexar políticas diretamente"). Feito isso, podemos pesquisar pela política "Bedrock" e, se necessário, incluir outras políticas disponíveis. No entanto, as permissões AmazonBedrockFullAccess e AdministratorAccess, que acabamos de conhecer, nos dão acesso total ao serviço do Bedrock.

Para anexar as novas políticas, clicamos em "Próximo > Adicionar Permissões". Uma mensagem confirmará que as políticas foram adicionadas, garantindo acesso aos serviços do Bedrock.

Acessando o serviço Amazon Bedrock

Para acessar o Amazon Bedrock, basta digitar o nome do serviço na barra de pesquisa superior. Nesse caso, clicaremos na primeira opção de serviço ("Amazon Bedrock").

Feito isso, vamos acessar a caixa do canto superior direito da tela, onde temos o texto "Experimentar o Bedrock" e, em seguida, um botão rotulado "Conceitos básicos", onde iremos clicar.

No serviço do Bedrock, temos acesso a uma série de modelos de inteligência artificial, como os LLMs (Large Language Models), que fazem o processamento da linguagem natural.

Autorizando o acesso aos modelos

Antes de interagir com esses modelos, precisamos solicitar autorização de acesso para nossa conta. No menu lateral esquerdo, vamos até "Bedrock configurations" e clicaremos em "Acesso a modelo".

Ao fazer isso, encontramos uma lista de modelos de base com acesso concedido. Para obter acesso aos modelos desejados, vamos clicar em "Modify model access" para modificar o acesso ao modelo.

Uma vez selecionados os modelos que queremos acessar, basta clicar em "Next". Com isso, enviamos uma solicitação de requisição de acesso, que será processada pela Amazon.

Para alguns modelos, como os da Anthropic, é necessário preencher um caso de uso, descrevendo o propósito, como construir um projeto de chatbot ou para fins educacionais.

Interagindo com os modelos

Após obter acesso aos modelos, podemos começar a interagir com eles no serviço de Playground. Na categoria "Playground" do menu lateral esquerdo, escolheremos a opção "Chat".

No Playground de chats, existem diferentes fornecedores de modelos, alguns open source e outros não. Por exemplo: podemos interagir com os modelos da própria Amazon.

Nesse caso, selecionando o modelo "Titan Text G1 - Express", verificamos que não há throughputs disponíveis, indicando que não podemos usar o modelo sob demanda.

Após aplicar o modelo, no campo de interação logo abaixo, conseguimos enviar uma requisição ou escrever um prompt para o modelo. Por exemplo, no contexto do Meteora, podemos enviar:

Opções de sandália para passeio na praia.

Com isso, o modelo retornará uma resposta. Nesse caso, ela veio em inglês e foi um pouco longa, mas podemos ajustar configurações, como temperatura e top-p para refinar a resposta.

Além disso, mais adiante na página, conseguimos visualizar algumas métricas, como, por exemplo, a latência, que é o tempo entre o envio da requisição e o retorno da resposta, e também a contagem de tokens, que são unidades de texto utilizadas pelo modelo.

Importante! Nada do que utilizamos é gratuito. Cada requisição de processamento e interação no chat usando o Playground do Bedrock pode ser creditada na conta devido ao uso do serviço da Amazon.

Conclusão

Agora que temos acesso ao Bedrock e começamos a interagir com o modelo de IA, vamos entender melhor como funciona esse ambiente e como podemos ajustar os parâmetros dos modelos?

Explorando o Amazon Bedrock - Explorando modelos

Começamos a interagir no Playground de chats do Amazon Bedrock com um modelo da própria Amazon, o "Titan Text G1 - Premier". Inserimos um prompt com a mensagem "Opções de sandália para passeio na praia." e recebemos uma resposta com algumas indicações de sandálias.

Observamos que a resposta está em inglês, e uma das questões levantadas anteriormente foi justamente sobre os parâmetros que podemos configurar no console da AWS.

Explorando modelos

Configurando parâmetros

Os parâmetros possuem uma configuração padrão, e o primeiro deles na seção "Configurações" da lateral direita é a temperatura, que está relacionada à criatividade do modelo.

Quanto maior o valor de temperatura, que varia entre 0 e 1, mais criativa será a resposta. Por outro lado, quanto mais próximo de 0 esse valor, mais determinística será a resposta, ou seja, mais restrita e focada na questão semântica do prompt de entrada o retorno será.

Outro parâmetro é o top-p, relacionado à variedade de palavras e vocabulário utilizada na resposta. Da mesma forma, a escala varia entre 0 e 1; quanto mais próximo de 1, mais variado será o vocabulário, enquanto valores próximos de 0 resultam em respostas concisas e, às vezes, repetitivas.

Também podemos configurar o tamanho da resposta, medido em tokens. Por exemplo: ao reduzir o número para 300 tokens e executar o mesmo prompt de antes, recebemos uma resposta similar, mas dentro do limite de tokens configurado.

Opções de sandália para passeio na praia.

Se a resposta gerasse mais de 300 tokens, como um retorno de 400 tokens, por exemplo, ela seria cortada, o que poderia comprometer o sentido do texto.

Outra configuração possível é a sequência de parada, onde podemos inserir um caractere que, ao atingir uma frequência de ocorrência, interrompe a resposta e a envia para a pessoa usuária.

Nas métricas do modelo da página de Playground de chats, além da contagem de tokens de entrada e saída, podemos acompanhar os custos das requisições. Cada execução envia uma requisição para um servidor, que processa a pergunta em linguagem natural e retorna uma resposta, gerando custos associados.

Conhecendo outros modelos

A vantagem de utilizar a inteligência artificial do Bedrock da Amazon é que não precisamos nos preocupar com a infraestrutura, pois as requisições são enviadas para a infraestrutura da AWS, funcionando no modo serverless. Isso significa que não precisamos configurar e provisionar um servidor, e o throughput sob demanda está disponível para requisições de diversas pessoas usuárias.

Além disso, não estamos restritos apenas ao Titan, ou seja, podemos mudar de modelo. Ao clicar em "Alterar" abaixo do nome do modelo, podemos navegar por outros modelos, como os do Anthropic.

Por exemplo: ao interagir com o Claude 3.5 Sonnet, observamos diferenças nas configurações, como os parâmetros "System prompts" e "Top K" (também relacionado à variedade de palavras).

A escala do top-k é maior, e quanto menor o valor, menos variado será o vocabulário, e vice-versa. Já os system prompts são prompts informados ao sistema, como em um chatbot.

Nesse campo, podemos definir que a resposta deve ser em português, concisa, ou que deve retornar apenas opções de sandálias disponíveis em um site específico, entre outras configurações possíveis.

Configurando prompts de sistema

Vamos experimentar o mesmo prompt de antes "Opções de sandália para passeio na praia." e configurar os system prompts para gerar uma resposta concisa, considerando um teste para uso do modelo em um chatbot de um site de moda.

Ajustaremos tanto a temperatura quanto o top-p para 0.7, e o comprimento máximo para 200 tokens. A resposta deve ser concisa e em português, com sugestões de sandálias adequadas.

Opções de sandália para passeio na praia.

System prompts:

Gerar resposta concisa, levando em consideração que está sendo realizado um teste para uso do modelo em um chatbot de site de moda.

Dessa forma, recebemos uma resposta concisa, em português, com contagem de tokens de 55 de entrada e 178 de saída, sem custos adicionais. Observe o retorno completo abaixo:

Para um passeio na praia, recomendo as seguintes opções de sandálias:

  1. Rasteirinhas: Confortáveis e fáceis de tirar para andar na areia.
  2. Sandálias de tiras: Estilosas e seguras para caminhar.
  3. Chinelos de dedo: Práticos e ideais para praia.
  4. Sandálias de borracha: Resistentes à água e areia.
  5. Espadrilles: Casuais e elegantes para um look praiano.

Escolha um modelo confortável, resistente à água e fácil de limpar. Cores claras ou vibrantes combinam bem com o ambiente praiano.

Avaliando o custo das requisições

É importante se atentar aos custos das requisições, que podem ser consultados na página Preços do Amazon Bedrock. Esses custos variam conforme a região da AWS (no nosso caso, "Leste dos EUA").

Podemos utilizar as tabelas dessa página para conferir os custos atualizados para cada região.

Discutindo a contagem de tokens

A contagem de tokens varia de modelo para modelo. Para verificar a contagem de tokens, no caso do ChatGPT, podemos utilizar a ferramenta Tokenizer da OpenAI.

Por exemplo: para o prompt "Opções de sandália para passeio na praia.", tivemos 41 caracteres e 10 tokens de entrada. Perceba que o token não coincide necessariamente com uma palavra, mas é um conjunto de caracteres que as LLMs consideram como unidade de entrada e saída.

Conclusão

Uma vez definido o modelo, precisamos pensar na construção do código para interagir diretamente com o modelo no Bedrock. Analisaremos isso a partir do próximo vídeo!

Sobre o curso Amazon Bedrock e Python: construa chatbots e ferramentas de geração de imagens com IA

O curso Amazon Bedrock e Python: construa chatbots e ferramentas de geração de imagens com IA possui 142 minutos de vídeos, em um total de 47 atividades. Gostou? Conheça nossos outros cursos de IA para Programação em Inteligência Artificial, ou leia nossos artigos de Inteligência Artificial.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda IA para Programação acessando integralmente esse e outros cursos, comece hoje!

Conheça os Planos para Empresas