├── .gitignore ├── LICENSE ├── README.md ├── decision log └── s02 │ └── README.md ├── episode ├── 0 │ ├── README.md │ └── thumb.jpeg ├── 1 │ ├── Ciclo de vida com IA Generativa.jpeg │ ├── README.md │ └── thumb.jpeg ├── 2 │ ├── README.md │ └── thumb.jpeg ├── 3 │ ├── README.md │ └── thumb.jpeg ├── 4 │ ├── README.md │ └── thumb.jpeg ├── 5 │ ├── README.md │ └── thumb.jpeg ├── 6 │ ├── README.md │ └── thumb.png ├── 7 │ ├── README.md │ └── thumb.png ├── 8 │ ├── README.md │ └── thumb.jpeg ├── 9 │ ├── README.md │ └── thumb.jpeg ├── 10 │ ├── README.md │ └── thumb.jpeg ├── 11 │ ├── README.md │ └── thumb.jpg ├── 12 │ ├── README.md │ └── thumb.jpg ├── 13 │ ├── README.md │ ├── main.ipynb │ └── thumb.jpg ├── 14 │ ├── README.md │ └── thumb.jpg ├── 15 │ ├── README.md │ └── thumb.jpg ├── 16 │ ├── README.md │ └── thumb.jpg ├── 17 │ ├── README.md │ └── thumb.jpg ├── 18 │ ├── README.md │ └── thumb.png ├── 19 │ ├── README.md │ └── thumb.png └── 20 │ ├── README.md │ └── thumb.png ├── images ├── Generative AI with LLMs.jpeg ├── architecture s02.png └── partyrock.jpeg ├── logo.jpeg └── mug ├── 0 └── 10 anos JoinCommunity.jpeg ├── 2 └── Serverless Days São Paulo 2023.jpeg ├── 3 └── may the force be with you.jpg ├── 4 └── devops days belem 2023.jpg ├── 5 └── smile.jpg ├── 6 └── hamilton.jpg ├── 8 └── work hard have fun make history.jpeg ├── 9 └── Cloud Summit Cerrado 2021.jpg ├── 10 └── palla mexicano.jpg ├── 11 └── palla-o-escolhido-mexicano.jpeg ├── 12 └── rogadx.jpeg ├── 13 └── campus-party-nordeste-aws-ug-piaui.jpeg ├── 14 └── aws-ug-foz.jpeg ├── 15 └── edimburgo.jpeg └── 16 └── awscommunitydaybrasil2024.jpeg /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 AWS Cloud Drops Builders Edition - Brasil 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![AWS Cloud Drops Builders Edition - Brasil logo](logo.jpeg) 2 | 3 | [🏠 Página principal](https://www.youtube.com/watch?v=Ng_8PlvzA3Y&list=PLQHh55hXC4yrlnKxKDsLPFl5O6sTfXWHu) | [▶️ YouTube](https://www.youtube.com/@AmazonWebServicesLatinAmerica) 4 | 5 | Esta é o repositório principal do *AWS Cloud Drops Builders Edition - Brasil*, um programa bisemanal, leve e descontraído para Builders que sujam as mãos utilizando AWS. O programa conta com a apresentação dos AWS Developers Advocates LATAM [Ana Cunha](https://www.linkedin.com/in/analuizacunha/) e [Marcelo Palladino](https://www.linkedin.com/in/mfpalladino/), além de contar com participações de especialistas da AWS e da comunidade AWS. 6 | 7 | ### 📜 Histórico de decisões de projeto e arquitetura da temporada 2 8 | 9 | * [S02 - AWSome Generative Drink App](/decision%20log/s02/README.md) 10 | * [S02 - AWSome Generative Drink App - Arquitetura](/images/architecture%20s02.png) 11 | 12 | ### 🎙️ Lista de episódios 13 | 14 | #### Segunda temporada - 2024/2025 15 | 16 | * [#1: **[NA PRÁTICA - Parte 1] Da ideia a produção com Amazon Q Developer**](/episode/11) [[vídeo](https://bit.ly/cdbe-s02e01)] 17 | * [#2: **[NA PRÁTICA - Parte 2] Arquitetura do AWSome Generative Drink App**](/episode/12) [[vídeo](https://bit.ly/cdbe-s02ep02)] 18 | * [#3: **[NA PRÁTICA - Parte 3] Engenharia de prompt com Claude 3 e Amazon Q Developer**](/episode/13) [[vídeo](https://bit.ly/cdbe-s02e03)] 19 | * [#4: **[NA PRÁTICA - Parte 4] Estruturando os projetos AWS CDK e React**](/episode/14) [[vídeo](https://bit.ly/cdbe-s02e04)] 20 | * [#5: **[NA PRÁTICA - Parte 5] Boas práticas em projetos AWS CDK**](/episode/15) [[vídeo](https://bit.ly/cdbe-s02e05)] 21 | * [#6: **[NA PRÁTICA - Parte 6] Não seja COMPLACENTE com código gerado por IA**](/episode/16) [[vídeo](https://bit.ly/cdbe-s02e06)] 22 | * [#7: **[NA PRÁTICA - Parte 7] Como aplicar o princípio da responsabilidade única (SRP) com AWS Lambda**](/episode/17) [[vídeo](https://bit.ly/cdbe-s02e07)] 23 | * [#8: **INFRAESTRUTURA COMO CÓDIGO COM AMAZON Q DEVELOPER CLI 🚀**](/episode/18) [[vídeo](https://bit.ly/cdbe-s02e08)] 24 | * [#9: **PIRÂMIDE DE TESTES COM AMAZON Q DEVELOPER CLI**](/episode/19) [[vídeo](https://bit.ly/cdbe-s02e09)] 25 | * [#10: **MCP (Model Context Protocol) NA PRÁTICA 🚀**](/episode/20) [[vídeo](https://bit.ly/cdbe-s02e10)] 26 | 27 | #### Primeira temporada - 2023/2024 28 | 29 | * [#1: **Conheça os Large Language Models (LLMs) e o ciclo de vida de um projeto de IA generativa**](/episode/0) [[vídeo](https://youtu.be/DwTV5uNENqo?list=PLQHh55hXC4yrsSptdH0mh0QyHWiI4waUV&t=313)] 30 | * [#2: **Como integrar modelos fundacionais ao seu código com Amazon Bedrock**](/episode/1) [[vídeo](https://youtu.be/Ng_8PlvzA3Y?list=PLQHh55hXC4yrsSptdH0mh0QyHWiI4waUV&t=340)] 31 | * [#3: **Programação em par turbinada por IA: Crie uma aplicação com Amazon CodeWhisperer**](/episode/2) [[vídeo](https://www.youtube.com/watch?v=nMNPN0q8Sfo)] 32 | * [#4: **Sumarizando textos com IA Generativa e Prompt Engineering**](/episode/3) [[vídeo](https://www.youtube.com/watch?v=QkkUcbtzoIg)] 33 | * [#5: **Ajustando LLMs com instruction fine-tuning**](/episode/4) [[vídeo](https://www.youtube.com/watch?v=pD7ol5xDGm8)] 34 | * [#6: **Ajustando LLMs com Parameter efficient fine-tunning (PEFT)**](/episode/5) [[vídeo](https://www.youtube.com/watch?v=18eWp6ceP4k)] 35 | * [#7: **Usando RAG para melhorar respostas utilizando Knowledge Bases for Amazon Bedrock**](/episode/6) [[vídeo](https://www.youtube.com/watch?v=7lF8_9bG15Q)] 36 | * [#8: **Knowledge Bases for Amazon Bedrock NA PRÁTICA**](/episode/7) [[vídeo](https://www.youtube.com/watch?v=tS8GfsnMSbI)] 37 | * [#9: **Projetos de IA Generativa NA PRÁTICA**](/episode/8) [[vídeo](https://www.youtube.com/watch?v=6FC9iFdLoZQ)] 38 | * [#10: **IA Generativa & Java com Vini Senger**](/episode/9) [[vídeo](https://www.youtube.com/watch?v=zkhMc-nzm-k)] 39 | * [#11: **Simplificando a construção e implantação de assistentes de IA com Agents for Amazon Bedrock**](/episode/10) [[vídeo](https://youtube.com/live/abQmX-3vpSQ)] 40 | 41 | ### ☕ Canecas utilizadas 42 | 43 | #### Segunda temporada - 2024/2025 44 | 45 | * [#1: **Palla, o escolhido mexicano**](/mug/11/palla-o-escolhido-mexicano.jpeg) 46 | * [#2: **ROGA DX 2024**](/mug/12/rogadx.jpeg) 47 | * [#3: **Campus Party Nordeste 2024 e AWS User Group Piauí**](/mug/13/campus-party-nordeste-aws-ug-piaui.jpeg) 48 | * [#4: **AWS User Group Foz do Iguaçu**](/mug/14/aws-ug-foz.jpeg) 49 | * [#5: **Lumos**](/mug/15/edimburgo.jpeg) 50 | * [#6: **AWS Community Day 2024**](/mug/16/awscommunitydaybrasil2024.jpeg) 51 | 52 | #### Primeira temporada - 2023/2024 53 | 54 | * [#1: **Caneca de comemoração de 10 anos do JoinCommunity**](/mug/0/10%20anos%20JoinCommunity.jpeg) 55 | * [#3: **Caneca do Serverless Days São Paulo 2023**](/mug/2/Serverless%20Days%20São%20Paulo%202023.jpeg) 56 | * [#4: **Que a força esteja com você (sugestão da audiência)**](/mug/3/may%20the%20force%20be%20with%20you.jpg) 57 | * [#5: **Copo do DevOps Days Belém 2023**](/mug/4/devops%20days%20belem%202023.jpg) 58 | * [#6: **Smile**](/mug/5/smile.jpg) 59 | * [#7: **Hamilton**](/mug/6/hamilton.jpg) 60 | * [#8: **Hamilton (porque o Palla esqueceu de trazer o copo no último episódio 😂)**](/mug/6/hamilton.jpg) 61 | * [#9: **Garrafa Work Hard, Have Fun, Make History**](/mug/8/work%20hard%20have%20fun%20make%20history.jpeg) 62 | * [#10: **Copo do Cloud Summit Cerrado 2021**](/mug/9/Cloud%20Summit%20Cerrado%202021.jpg) 63 | * [#11: **Palla Mexicano**](/mug/10/palla%20mexicano.jpg) -------------------------------------------------------------------------------- /decision log/s02/README.md: -------------------------------------------------------------------------------- 1 | # Temporada 02 - Histórico de decisões de projeto 2 | 3 | Este arquivo destina-se a manter o histórico das decisões de nível de projeto que foram tomadas para o projeto que foi construído durante a segunda temporada do [AWS Cloud Drops Builders Edition](https://www.youtube.com/playlist?list=PLQHh55hXC4yrlnKxKDsLPFl5O6sTfXWHu). Nós sabemos que na maior parte das vezes não há apenas uma resposta certa, então vamos compartilhar também os porquês de cada decisão. 4 | 5 | ## 20-08-2024 6 | 7 | ### AWS CDK 8 | 9 | 🤨 **O que?** 10 | 11 | O [AWS CDK](https://aws.amazon.com/pt/cdk/) (Cloud Development Kit) é um framework de código aberto que permite definir infraestrutura de nuvem usando linguagens de programação familiares como TypeScript, Python, Java e .NET. Ele gera templates do AWS CloudFormation a partir do seu código, permitindo que você provisione e gerencie recursos da AWS de uma maneira mais intuitiva e programática. O AWS CDK simplifica o processo de criação e implantação de infraestrutura de nuvem, fornecendo construções e abstrações de alto nível para os serviços da AWS. 12 | 13 | 🕵️ **Por que?** 14 | 15 | Nós usamos o Amazon Q Developer para nos ajudar a tomar esta decisão. Você pode ver parte do diálogo [aqui](https://github.com/AWS-Cloud-Drops-Builders-Edition/show/blob/main/episode/11/README.md). 16 | 17 | - Há inúmeras opções para definir infraestrutura como código. Você pode escolher entre AWS SAM, Terraform, Pulumi, AWS CloudFormation, entre outros. 18 | 19 | - Nós escolhemos AWS CDK porque gostaríamos de usar Python de ponta a ponta no projeto backend. 20 | 21 | - Esta é uma decisão que tem mais relação com as características da sua organização do que com qualquer outro aspecto técnico. 22 | 23 | ### React 24 | 25 | 🤨 **O que?** 26 | 27 | [React](https://react.dev/) é uma biblioteca JavaScript para construção de interfaces de usuário. Ela utiliza uma arquitetura baseada em componentes e um DOM virtual para renderização eficiente. 28 | 29 | 🕵️ **Por que?** 30 | 31 | Nós usamos o Amazon Q Developer para nos ajudar a tomar esta decisão. Você pode ver parte do diálogo [aqui](https://github.com/AWS-Cloud-Drops-Builders-Edition/show/blob/main/episode/11/README.md). 32 | 33 | Aqui vale notar que nós não somos desenvolvedores do Frontend. Sendo assim, nosso principal racional foi o pragmatismo, que nos fez escolher o React por ser tão popular e ter tanto suporte da comunidade. O Vue.js também seria uma escolha na mesma direção. 34 | 35 | ## 01-10-2024 36 | 37 | ### Poetry 38 | 39 | 🤨 **O que?** 40 | 41 | [Poetry](https://python-poetry.org/) é uma ferramenta de gerenciamento de dependências e empacotamento para projetos Python. O Poetry visa resolver muitos dos desafios associados às ferramentas tradicionais de gerenciamento de pacotes Python, oferecendo uma abordagem mais moderna e simplificada para o gerenciamento e empacotamento de projetos Python. 42 | 43 | 🕵️ **Por que?** 44 | 45 | Ao longo do tempo nós temos usando pip em nossos projetos e inclusive usamos pip no projeto que originou esta demo e rodou no HackTown 2024. 46 | 47 | Durante a fase de estudos para construir esta temporada, decidimos explorar algumas alternativas e chegamos ao Poetry. Para nós, brilham a configuração em um único arquivo e o maior determinismo no gerenciamento das dependências. 48 | 49 | - Gerenciamento de Dependências: O Poetry simplifica o processo de gerenciar dependências do projeto, permitindo declarar bibliotecas necessárias em um arquivo pyproject.toml e instalando, atualizando e resolvendo essas dependências. 50 | 51 | - Ambientes Virtuais: Cria e gerencia automaticamente ambientes virtuais isolados para cada projeto. 52 | 53 | - Lockfile: Utiliza um arquivo lockfile (poetry.lock) para garantir instalações reproduzíveis em diferentes ambientes. 54 | 55 | - Resolução de Dependências: Oferece resolução robusta de dependências, evitando conflitos de versões. 56 | 57 | - Gerenciamento de Configuração: Usa um único arquivo pyproject.toml para configuração do projeto. 58 | 59 | - Builds consistentes: Garante builds consistentes entre diferentes ambientes de desenvolvimento e pipelines de implantação. 60 | 61 | ### Powertools for AWS Lambda 62 | 63 | 🤨 **O que?** 64 | 65 | [Powertools for AWS Lambda](https://docs.powertools.aws.dev/lambda/python/latest/) é um kit de ferramentas para desenvolvedores projetado para simplificar a implementação das melhores práticas de serverless e aumentar a produtividade dos desenvolvedores ao trabalhar com funções AWS Lambda. 66 | 67 | 🕵️ **Por que?** 68 | 69 | Melhores práticas para todos. Este é o lema do Powertools for AWS Lambda e foi exatamente o que nos fez escolher utilizá-lo neste projeto. Neste caso em particular, vamos usar fortemente a parte de logs estruturados e idempotência. 70 | 71 | - Rastreamento: Ajuda no rastreamento distribuído de manipuladores de funções Lambda e outras funções. 72 | 73 | - Logging: Permite logging estruturado com detalhes de contexto do Lambda. 74 | 75 | Sem os logs estruturados, o log de uma exceção vai se parecer com isso aqui: 76 | 77 | ``` 78 | [ERROR] ValueError: Não foi possível processar o drink 79 | Traceback (most recent call last): 80 | File "/var/task/lambda_function.py", line 9, in lambda_handler 81 | raise ValueError("Não foi possível processar o drink") 82 | ``` 83 | 84 | Este formato dificulta a análise e filtragem de logs, especialmente quando você precisa correlacionar eventos ou depurar problemas em produção. 85 | 86 | Com o log estruturado do PowerTools for AWS Lambda temos algo muito mais rico e útil: 87 | 88 | ```json 89 | { 90 | "level": "ERROR", 91 | "location": "lambda_function.lambda_handler:11", 92 | "message": "Erro ao processar o drink 123", 93 | "service": "order-service", 94 | "timestamp": "2025-03-23T19:30:45.123Z", 95 | "xray_trace_id": "1-65fd1234-abcdef1234567890abcdef12", 96 | "exception": "Traceback (most recent call last):\n File \"/var/task/lambda_function.py\", line 9, in lambda_handler\n raise ValueError(\"Não foi possível salvar o drink\")\nValueError: Não foi possível salvar o drink", 97 | "lambda": { 98 | "function_name": "meu-lambda", 99 | "function_memory_size": "128", 100 | "function_arn": "arn:aws:lambda:us-east-1:123456789012:function:meu-lambda", 101 | "request_id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111" 102 | }, 103 | "cold_start": true, 104 | "event": { 105 | "drink_id": "123" 106 | } 107 | } 108 | ``` 109 | 110 | Os benefícios dos logs estruturados incluem: 111 | 112 | 1. **Pesquisa e filtragem avançadas**: Você pode facilmente filtrar logs por nível, serviço, ID de solicitação ou qualquer outro campo personalizado. 113 | 114 | 2. **Correlação de eventos**: O ID de rastreamento do X-Ray e o ID de solicitação permitem correlacionar eventos em diferentes serviços. 115 | 116 | 3. **Contexto enriquecido**: Informações como cold start, detalhes da função Lambda e dados do evento fornecem contexto valioso para depuração. 117 | 118 | 4. **Integração com ferramentas de observabilidade**: Logs estruturados em formato JSON podem ser facilmente ingeridos por ferramentas como CloudWatch Logs Insights, Elasticsearch ou soluções de terceiros. 119 | 120 | 5. **Análise automatizada**: Facilita a criação de alertas baseados em padrões específicos ou anomalias nos logs. 121 | 122 | 123 | - Métricas: Permite a criação de métricas personalizadas usando o CloudWatch Embedded Metric Format (EMF). 124 | 125 | Recursos adicionais (dependendo da linguagem): 126 | 127 | - Idempotência: Para tornar funções Lambda seguras para repetição. 128 | 129 | - Projetado para ajudar a implementar as melhores práticas da AWS Well-Architected para aplicações serverless. 130 | 131 | - Fácil integração via gerenciadores de pacotes ou Lambda Layers. 132 | 133 | - Permite adoção progressiva de utilitários individuais ou de todo o conjunto. 134 | 135 | - Código aberto, permitindo contribuições e melhorias da comunidade. 136 | 137 | ### Pydantic 138 | 139 | 🤨 **O que?** 140 | 141 | [Pydantic](https://docs.pydantic.dev/latest/) é uma biblioteca Python popular para validação de dados usando anotações de tipo do Python. 142 | 143 | 🕵️ **Por que?** 144 | 145 | Nós precisávamos de uma forma para validar os dados de entrada e saída do nosso projeto e vamos também fazer o parsing das variáveis de ambiente. O Pydantic foi uma escolha pragmática, com base em inúmeros projetos que conseguimos observar o seu uso. 146 | 147 | ### pytest 148 | 149 | 🤨 **O que?** 150 | 151 | O [pytest](https://docs.pytest.org/en/stable/) é amplamente utilizado na comunidade Python devido à sua simplicidade, flexibilidade e recursos poderosos. Ele ajuda os desenvolvedores a escrever testes mais fáceis de manter e confiáveis, o que por sua vez leva a um software mais robusto. Sua simplicidade na escrita de testes, combinada com recursos avançados para cenários de teste mais complexos, o torna adequado para projetos de todos os tamanhos e complexidades. 152 | 153 | 🕵️ **Por que?** 154 | 155 | O Pytest também foi uma escolha pragmática, pois ele se tornou uma escolha popular para escrever testes em Python devido à sua facilidade de uso, recursos abrangentes e suporte da comunidade. 156 | 157 | Algumas funcionalidades que destacamos como úteis, para acelerar o desenvolvimento: 158 | 159 | - Sistema de Fixtures: O Pytest possui um sistema de fixtures flexível e poderoso para lidar com operações de *setup* e *teardown*, compartilhamento de dados de teste e gerenciamento de recursos. 160 | 161 | - Testes parametrizados: Isso permite que você execute o mesmo teste com diferentes entradas (inputs) de forma fácil. Com testes parametrizados, você pode escrever um único caso de teste e fornecer múltiplos conjuntos de dados de entrada como parâmetros. O Pytest então executará esse teste uma vez para cada conjunto de dados fornecido. Isso é muito útil quando você precisa testar uma função ou método com uma variedade de entradas diferentes, em vez de duplicar o código de teste para cada entrada. 162 | 163 | - O Pytest pode descobrir e executar automaticamente os testes em seu projeto sem exigir que você mantenha suítes de testes separadas. Especificamente, o Pytest segue algumas convenções para encontrar os testes em seu código: 164 | 165 | - Ele procura por arquivos cujos nomes começam com "test_" ou terminam com "_test.py". 166 | 167 | - Dentro desses arquivos, ele procura por funções cujos nomes começam com "test_". 168 | 169 | - Também reconhece classes começando com "Test" como classes de teste, e qualquer método nessas classes começando com "test_" como um método de teste. 170 | 171 | Essa capacidade de descoberta automática de testes economiza algum trabalho, pois você não precisa configurar explicitamente quais testes devem ser executados. Basta seguir as convenções de nomenclatura e o Pytest encontrará e executará seus testes automaticamente. Isso torna o processo de escrever e executar testes muito mais simples e produtivo, especialmente em projetos maiores com muitos testes espalhados. 172 | 173 | ## 29-10-2024 174 | 175 | ### Boas práticas com AWS CDK 176 | 177 | 🤨 **O que?** 178 | 179 | Nome diferente da stack em um projeto AWS CDK, por desenvolvedor e por branch. 180 | 181 | 🕵️ **Por que?** 182 | 183 | Nomear a stack por desenvolvedor e por branch permite que múltiplos desenvolvedores compartilhem a mesma conta de desenvolvimento e trabalhem em paralelo na mesma stack. O pipeline de CI/CD deve utilizar o seu nome único para remover qualquer chance de conflitos. 184 | 185 | ### Utilização de Lambda Layers 186 | 187 | 🤨 **O que?** 188 | 189 | Vamos criar e utilizar uma Lambda layer que todas as funções Lambda irão compartilhar. 190 | 191 | 🕵️ **Por que?** 192 | 193 | A intenção aqui é a otimização do processo de deployment, já que todas as nossas funções requerem as mesmas dependências. 194 | 195 | Esta layer conterá todas as dependências contidas sa sessão '[tool.poetry.dependencies]' do arquivo 'pyproject.toml'. 196 | 197 | Você pode ler mais sobre Lambda Layers [aqui](https://docs.aws.amazon.com/lambda/latest/dg/chapter-layers.html). 198 | 199 | ### A pasta .build 200 | 201 | 🤨 **O que?** 202 | 203 | Nós vamos utilizar um estágio de build como parte do processo de deployment para copiar o conteúdo das funções Lambdas para uma pasta específica dentro de '.build' e ainda definir o arquivo de dependências que será utilizado para criação da Lambda Layer. 204 | 205 | 🕵️ **Por que?** 206 | 207 | Você deve fornecer uma pasta de assets quando estiver construindo uma Lambda Function com AWS CDK, que desconsidera a pasta informada e pega apenas o conteúdo abaixo dela para levar para dentro da função. 208 | 209 | Desta forma, a proposta é mover o código das funções lambda para uma pasta centralizada de maneira a não quebrar as importações. Digamos que seu código está organizado assim (vide estrutura do projeto): 210 | 211 | ``` 212 | service/ 213 | └── drink/ 214 | ├── domain_logic/ 215 | ├── handlers/ 216 | ├── integration/ 217 | └── models/ 218 | ``` 219 | 220 | Ao importar o schema `DrinkRequest` da pasta models, o import seria algo como: 221 | 222 | ``` 223 | from service.drink.models import DrinkRequest 224 | ``` 225 | 226 | Se fornecêssemos a pasta ```service``` como a pasta raiz, teríamos problemas de importação ao importar o schema, já que as importações contêm ```service.drink.models```, mas o que estaria dentro da função seria ```drink.models``` (não existiria a pasta ```service```). 227 | 228 | ``` 229 | drink/ 230 | ├── domain_logic/ 231 | ├── handlers/ 232 | ├── integration/ 233 | └── models/ 234 | ``` 235 | 236 | Para resolver esse problema, temos uma etapa de construção que é executada durante o processo de deployment. Ela copia recursivamente a pasta ```service``` para uma nova pasta de nível raiz chamada ```lambda```, dentro do diretório ```.build```. 237 | 238 | Dessa forma, quando o AWS CDK pega o conteúdo da função lambda dessa nova pasta de nível superior, ele também pega a pasta ```service``` (ou qualquer outro nome que seja definido por você) e todas as importações permanecem válidas. 239 | 240 | ### O Makefile 241 | 242 | 🤨 **O que?** 243 | 244 | Vamos criar um arquivo makefile para simplificar as tarefas repetitivas no projeto AWS CDK. 245 | 246 | 🕵️ **Por que?** 247 | 248 | Criar um Makefile para projetos AWS CDK é uma boa prática que oferece vários benefícios: 249 | 250 | - Padroniza a execução de tarefas comuns no projeto. 251 | - Simplifica comandos complexos do CDK em targets fáceis de lembrar. 252 | - Automatiza tarefas repetitivas como execução de testes, lint, formatação, synth, deploy e etc.... 253 | - Configura o ambiente de desenvolvimento de forma consistente. 254 | - Permite executar testes locais e verificações de qualidade antes do processo de deployment. 255 | - Facilita a integração com pipelines de CI/CD. 256 | - Serve como documentação, listando as operações disponíveis. 257 | - Garante compatibilidade multiplataforma, funcionando em sistemas Unix e Windows. 258 | 259 | ## 12-11-2024 260 | 261 | ### pre-commit, formatação e análise estática de código 262 | 263 | 🤨 **O que?** 264 | 265 | Nós vamos configurar algumas verificações para serem executadas automaticamente antes de cada cada commit. Para isso, vamos utilizar um [framework](https://github.com/pre-commit/pre-commit) para manter os hooks de pre-commit. 266 | 267 | Com o hook configurado, vamos utilizar três ferramentas: 268 | 269 | - [black](https://github.com/psf/black): 270 | - Formatador de código Python 271 | Aplica um estilo consistente e opinativo. Não é configurável, visando eliminar debates sobre estilo. 272 | 273 | - [flake8](https://github.com/pycqa/flake8): 274 | - Ferramenta de lint para Python 275 | Combina PyFlakes, pycodestyle e Ned Batchelder's McCabe script. 276 | Verifica erros de estilo e lógica. 277 | 278 | - [isort](https://github.com/pycqa/isort): 279 | - Utilitário para ordenar imports em arquivos Python. Organiza imports automaticamente por tipo e ordem alfabética. 280 | 281 | 🕵️ **Por que?** 282 | 283 | - Detectar problemas antes que entrem em seu repositório. 284 | - Garantir automaticamente que todo o código atenda aos padrões estabelecidos. 285 | - Impedir a submissão de código problemático, como declarações de depuração, arquivos grandes ou informações sensíveis. 286 | - Impor consistência em toda a equipe. 287 | - Impor as mesmas verificações de estilo e qualidade de código para todos. 288 | - Eliminar debates sobre estilo, já que todos usam as mesmas ferramentas automatizadas. 289 | - Tornar as revisões de código mais focadas na funcionalidade do que na formatação. 290 | - Permitir a detecção precoce de problemas. 291 | - Eliminar a verificação manual de problemas comuns. 292 | 293 | ## 26-11-2024 294 | 295 | ### Estrutura do projeto de backend (AWS CDK) 296 | 297 | 🤨 **O que?** 298 | 299 | Escolhemos uma estrutura de projeto opinativa com uma pasta de infraestrutura (baseada em CDK), uma pasta de testes e uma pasta para os domínios (caso haja mais de um, as subpastas serão responsáveis separá-los). 300 | 301 | Estrutura proposta (considere que drink é o nome do domínio) 302 | 303 | ``` 304 | infrastructure/ 305 | └── drink/ 306 | 307 | service/ 308 | └── drink/ 309 | ├── domain_logic/ 310 | ├── handlers/ 311 | ├── integration/ 312 | └── models/ 313 | 314 | tests/ 315 | └── drink/ 316 | ├── unit/ 317 | ├── integration/ 318 | └── e2e/ 319 | ``` 320 | 321 | 🕵️ **Por que?** 322 | 323 | Aqui, como em várias outras práticas aplicadas neste projeto, não há certo ou errado. Outras estruturas podem fazer mais sentido para você. Do nosso lado, vemos vantagem em separar o código de infraestrutura do código de domínio, pois isso adiciona clareza de propósito. 324 | 325 | A separação por domínios (caso haja mais de um no mesmo projeto) também visa facilitar o entendimento do projeto. 326 | 327 | ### Aplicando o Princípio da Responsabilidade Única 328 | 329 | 🤨 **O que?** 330 | 331 | De baixo da pasta service/drink há uma série de subpastas (separadas por domínio). 332 | 333 | Estas pastas representam diferentes "camadas", que propõem uma separação de responsabilidades, a fim de evitar a criação de componentes com mais de uma responsabilidade. 334 | 335 | - *domain_logic*: é a lógica do negócio 336 | - *handlers*: handlers das funções lambda 337 | - *integration*: código que acessa APIs (serviços da AWS e APIs externas ao serviço) 338 | - *models*: schemas/modelos do pydantic. 339 | 340 | 🕵️ Por que? 341 | 342 | Esta estrutura é totalmente opinativa e visa principalmente separar o código dos manipuladores de função (handlers) da lógica de domínio e sugerir a criação de códigos menos acoplados e mais testáveis. 343 | 344 | Principais vantagens: 345 | 346 | - Manutenibilidade: Componentes com responsabilidade única são mais fáceis de entender, modificar e manter. Isso reduz o risco de introduzir bugs ao fazer alterações e facilita a evolução do código ao longo do tempo. 347 | 348 | - Reutilização de código: Componentes bem definidos e com responsabilidade única têm maior potencial de reutilização em diferentes partes do sistema ou até mesmo em outros projetos, aumentando a eficiência do desenvolvimento. 349 | 350 | - Testabilidade: Componentes menores e mais focados são mais fáceis de testar de forma isolada. Isso permite a criação de testes de unidade mais eficazes. 351 | 352 | Possíveis desafios: 353 | 354 | - Complexidade excessiva (over engineering): Unidades muito pequenas podem levar a um aumento na complexidade. 355 | 356 | - Definição de limites: Determinar onde exatamente uma responsabilidade termina e outra começa pode ser subjetivo e desafiador, especialmente em sistemas complexos. 357 | 358 | ## 14-03-2025 359 | 360 | ### Metodologia de testes 361 | 362 | 🤨 **O que?** 363 | 364 | Temos testes de unidade, testes de infraestrutura, testes de integração e testes ponta a ponta (E2E). 365 | 366 | 🕵️ **Por que?** 367 | 368 | Cada tipo de teste tem seu uso: 369 | 370 | - Testes de unidade verificam pequenas funções e principalmente validações de schemas. 371 | 372 | - Testes de infraestrutura são executados antes da implantação; eles verificam se recursos críticos existem e não foram excluídos do template do CloudFormation (que é o resultado do deploy do AWS CDK) por erro ou bug. 373 | 374 | - Testes de integração ocorrem após a implantação e geram um evento simulado (mocked events), chamam o manipulador de função na IDE e permitem depurar as funções com pontos de interrupção. 375 | 376 | - Chamamos serviços AWS reais e podemos escolher o que simular para simular falhas e quais recursos chamar diretamente. 377 | 378 | - Testes E2E - acionam os recursos que foram implantados na AWS. -------------------------------------------------------------------------------- /episode/0/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 1 - Conheça os Large Language Models (LLMs) e o ciclo de vida de um projeto de IA generativa 2 | 3 | [![YouTube video thumbnail](./thumb.jpeg)](https://youtu.be/DwTV5uNENqo?list=PLQHh55hXC4yrsSptdH0mh0QyHWiI4waUV&t=313) 4 | **[▶ Assista agora no Youtube!](https://youtu.be/DwTV5uNENqo?list=PLQHh55hXC4yrsSptdH0mh0QyHWiI4waUV&t=313)** 5 | 6 | Neste episódio você verá as definições de IA Generativa e LLM. Além disso, há exemplos de engenharia de prompt e utilização do Amazon SageMaker JumpStart e playgrounds de modelos generativos de texto. 7 | 8 | Se você gostou do conteúdo e que ser notificado sobre próximos episódios, [por favor, assine o canal](https://www.youtube.com/@AmazonWebServicesLatinAmerica). 9 | 10 | Palavras-chave: IA Generativa, Engenharia de prompt 11 | 12 | ## Especialistas convidados 13 | 14 | * [Fabio Balancin](https://www.linkedin.com/in/fabiobalancin/) 15 | * [Evandro Franco](https://www.linkedin.com/in/evandrogfranco/) 16 | 17 | ## O que mencionamos durante o episódio 18 | 19 | * [O que é IA Generativa? - Português](https://www.youtube.com/watch?v=4tqGA3-JXUc) 20 | * [Amazon SageMaker JumpStart](https://youtu.be/DwTV5uNENqo?t=2287) 21 | * [Engenharia de prompt](https://youtu.be/DwTV5uNENqo?t=2460) 22 | * [Mais engenharia de prompt, Zero-Shot, One-Shot, Few-Shot](https://youtu.be/DwTV5uNENqo?t=2908) 23 | 24 | ## 🐛 Bugs em produção 25 | 26 | O primeiro minuto foi um tanto atabalhoado por conta do som. Quem viu ao vivo, viu. Quem não viu não vai ver mais, já que editamos o vídeo para remover esta parte. 🙂 27 | 28 | ## 🫰 Dívida técnica 29 | 30 | Esquecemos de citar o ciclo de vida de um projeto com IA Generativa. Pagamos a dívida no segundo episódio e vamos voltar ao tema, já que quase todos os outros episódios irão flutuar em torno do mesmo ciclo. 31 | 32 | * [Ciclo de vida de uma aplicação com IA Generativa](https://youtu.be/Ng_8PlvzA3Y?t=2942) 33 | 34 | ## Onde aprender mais 35 | 36 | [![Generative AI with LLMs](../../images/Generative%20AI%20with%20LLMs.jpeg)](https://www.deeplearning.ai/courses/generative-ai-with-llms/) 37 | **[DeepLearning.AI](https://www.deeplearning.ai/courses/generative-ai-with-llms/)** 38 | -------------------------------------------------------------------------------- /episode/0/thumb.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/0/thumb.jpeg -------------------------------------------------------------------------------- /episode/1/Ciclo de vida com IA Generativa.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/1/Ciclo de vida com IA Generativa.jpeg -------------------------------------------------------------------------------- /episode/1/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 2 - Como integrar modelos fundacionais ao seu código com Amazon Bedrock 2 | 3 | [![YouTube video thumbnail](./thumb.jpeg)](https://youtu.be/Ng_8PlvzA3Y?t=354) 4 | **[▶ Assista agora no Youtube!](https://youtu.be/Ng_8PlvzA3Y?t=354)** 5 | 6 | Neste episódio você verá como um prompt é processado e também como é a experiência no [Amazon Bedrock](https://aws.amazon.com/bedrock/), tanto no console da AWS, quanto para realizar chamadas ao serviço utilizando [boto3](https://boto3.amazonaws.com/v1/documentation/api/latest/index.html). 7 | 8 | Se você gostou do conteúdo e que ser notificado sobre próximos episódios, [por favor, assine o canal](https://www.youtube.com/@AmazonWebServicesLatinAmerica). 9 | 10 | Palavras-chave: IA Generativa, Engenharia de prompt, Amazon Bedrock, boto3, python, API 11 | 12 | ## Especialista convidado 13 | 14 | * [Fabio Balancin](https://www.linkedin.com/in/fabiobalancin/) 15 | 16 | ## O que mencionamos durante o episódio 17 | 18 | * [Como um prompt é processado](https://youtu.be/Ng_8PlvzA3Y?t=537) 19 | * [Experiência no console da AWS com o Amazon Bedrock](https://youtu.be/Ng_8PlvzA3Y?t=1132) 20 | * [Chamando o Amazon Bedrock bom boto3](https://youtu.be/Ng_8PlvzA3Y?t=2347) 21 | * [Ciclo de vida de um projeto com IA Generativa](https://youtu.be/Ng_8PlvzA3Y?t=2947) 22 | * [Critérios para seleção de modelos fundacionais](https://youtu.be/Ng_8PlvzA3Y?t=3042) 23 | 24 | ## 🐛 Bugs em produção 25 | 26 | * Os nomes da Ana e do Palla estão invertidos em relação às suas posições na tela. 27 | 28 | * Nós tinhamos um diagrama bem interessante com as etapas do ciclo de vida de um projeto com IA Generativa, mas o contraste entre as letras e o fundo não era o edequado. Esta é a figura corrigida. 29 | 30 | ![Ciclo de vida de uma aplicação com IA Generativa](./Ciclo%20de%20vida%20com%20IA%20Generativa.jpeg) 31 | 32 | ## 🫰 Dívida técnica 33 | 34 | Nenhuma dívida técnica foi adquirida neste episódio. 35 | 36 | ## Onde aprender mais 37 | 38 | * [Código utilizado neste episódio (github)](https://github.com/AWS-Cloud-Drops-Builders-Edition/s01e02) 39 | * [Repositório no Github com exemplos do Amazon Bedrock](https://bit.ly/amazon-bedrock-samples) 40 | * [HEML](https://crfm.stanford.edu/helm/latest/) 41 | * [Chatbot Arena Leaderboard](https://huggingface.co/spaces/lmsys/chatbot-arena-leaderboard) 42 | * [Chatbot Arena: Benchmarking LLMs in the Wild with Elo Ratings](https://lmsys.org/blog/2023-05-03-arena/) 43 | 44 | [![Generative AI with LLMs](../../images/Generative%20AI%20with%20LLMs.jpeg)](https://www.deeplearning.ai/courses/generative-ai-with-llms/) 45 | **[DeepLearning.AI](https://www.deeplearning.ai/courses/generative-ai-with-llms/)** 46 | -------------------------------------------------------------------------------- /episode/1/thumb.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/1/thumb.jpeg -------------------------------------------------------------------------------- /episode/10/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 11 - Simplificando a construção e implantação de assistentes de IA com Agents for Amazon Bedrock 2 | 3 | [![YouTube video thumbnail](./thumb.jpeg)](https://youtube.com/live/abQmX-3vpSQ) 4 | **[▶ Assista agora no Youtube!](https://youtube.com/live/abQmX-3vpSQ)** 5 | 6 | Depois de ouvir os feedbacks de vocês, aqui estamos nós para um episódio EXTRA da primeira temporada do AWS Cloud Drops Builders Edition, para falarmos exclusivamente sobre Agents for Amazon Bedrock. 7 | 8 | Bóra Buildar! 9 | 10 | ## O que mencionamos durante o episódio 11 | 12 | 00:00:00 Introdução 13 | 00:04:27 Motivações para o episódio EXTRA 14 | 00:04:59 A Stack de IA Generativa da AWS 15 | 00:07:46 Por que customizar? 16 | 00:09:59 Customizar vs enriquecer o prompt (augment) 17 | 00:13:42 Desafios das automações de fluxo 18 | 00:15:22 Agents for Amazon Bedrock 19 | 00:17:15 Benefícios do Agents for Amazon Bedrock 20 | 00:19:02 Resolvendo tarefas com Agents for Amazon Bedrock 21 | 00:19:55 Noções básicas sobre agentes 22 | 00:30:25 Juntando tudo nas demos 23 | 00:01:36 Finalização 24 | 25 | ## 🐛 Bugs em produção 26 | 27 | ## 🫰 Dívida técnica 28 | 29 | ## Onde aprender mais 30 | 31 | * [Código com o exemplo do assistente de reuniões (Github)](git@github.com:AWS-Cloud-Drops-Builders-Edition/s01e11.git) 32 | * [Amazon Bedrock samples | Agents (Github)](https://github.com/aws-samples/amazon-bedrock-samples/tree/main/agents) 33 | * [Amazon Bedrock Agents Demos (YouTube)](https://www.youtube.com/watch?v=JkDzZFTXeSw) 34 | 35 | 36 | [![AWS PartyRock](../../images/partyrock.jpeg)](https://partyrock.aws/) 37 | **[Bóra construir uma aplicação baseada em IA](https://partyrock.aws/)** 38 | 39 | [![Generative AI with LLMs](../../images/Generative%20AI%20with%20LLMs.jpeg)](https://www.deeplearning.ai/courses/generative-ai-with-llms/) 40 | **[DeepLearning.AI](https://www.deeplearning.ai/courses/generative-ai-with-llms/)** 41 | -------------------------------------------------------------------------------- /episode/10/thumb.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/10/thumb.jpeg -------------------------------------------------------------------------------- /episode/11/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 01, Temporada 02 - [NA PRÁTICA - Parte 1] Da ideia a produção com Amazon Q Developer 2 | 3 | [![YouTube video thumbnail](./thumb.jpg)](https://bit.ly/cdbe-s02e01) 4 | **[▶ Assista agora no Youtube!](https://bit.ly/cdbe-s02e01)** 5 | 6 | Bem-vindo(a) ao primeiro episódio da segunda temporada do AWS Cloud Drops Builders Edition! 7 | 8 | Nesta temporada nós vamos construir uma aplicação Serverless completa com IA generativa DO ZERO! Desde o caso de uso, até a utilização dos dados para tomada de decisão. Vamos explorar temas como utilizar o Amazon Q Developer para escrever código, prompts, fazer chamadas ao Amazon Bedrock, definir a Infraestrutura, automatizar testes, organizar projetos, definir a arquitetura da solução, dentre outros. 9 | 10 | Esta é a temporada perfeita para você que está começando com desenvolvimento de software na AWS e se interessa em IA generativa. 11 | 12 | Bóra Buildar! 13 | 14 | ## O que mencionamos durante o episódio 15 | 16 | - [Amazon Q Developer](https://aws.amazon.com/q/developer/) 17 | - [PartyRock](https://partyrock.aws/) 18 | - [AWS CDK](https://aws.amazon.com/cdk/) 19 | 20 | ## 🤖 Conversinha com o Amazon Q Developer 21 | 22 | #### O que pedimos? 23 | 24 | > We will create an application from scratch in a program on the AWS LATAM YouTube channel. This application will consist of a web interface (frontend) where users can enter data, and a backend. 25 | > - The main functionality is that users will describe how they're feeling, and the application will generate a recipe for a non-alcoholic drink using generative AI. 26 | > - In addition to the recipe, the software will also generate an impactful image of the recipe, also using generative AI. 27 | > - Users will indicate their dietary restrictions based on available ingredients. Therefore, we will store all user choices to ensure we have this information in case an audit is needed. 28 | > - This application will run at technology events as a way to gauge how people are feeling about the event. The number of drinks needed may vary, from none to 2,000, depending on the event. The client application will run on a touchscreen, and each drink will be requested individually. 29 | > - We will use JavaScript for the frontend and Python for the backend. 30 | > - Users will receive the recipe and recipe image via two QR codes that will appear at the end of the recipe generation process. 31 | > - Bartenders will receive the recipes via an email determined by their team. We will use SendGrid to send the emails. 32 | 33 | #### Resposta do Claude 3 Sonnet (via PartyRock) 34 | 35 | >- Hospede o código front-end em um bucket S3 e use o AWS Amplify para implantação e hospedagem estática. 36 | Utilize o AWS Amplify para configurar o serviço de hospedagem web e CDN (CloudFront). 37 | >- Crie um domínio personalizado (exemplo: drinkgenerator.com) usando o Amazon Route 53. 38 | >- Use o AWS Lambda para executar o código Python que gerará as receitas e imagens usando IA generativa. 39 | >- Crie uma API Gateway para expor o Lambda como um endpoint API para o frontend. 40 | >- Use o Amazon DynamoDB para armazenar as escolhas e restrições dos usuários. 41 | >- Configure o AWS Step Functions para orquestrar o fluxo de geração de receitas e imagens. 42 | >- Utilize o AWS Lambda para gerar os QR Codes das receitas e imagens. 43 | >- Armazene as imagens geradas no Amazon S3. 44 | >- Integre o AWS Lambda com o SendGrid para enviar e-mails com as receitas para os bartenders. 45 | >- Use o AWS Auto Scaling para escalar automaticamente as instâncias do Lambda com base na demanda. 46 | >- Implante o frontend em múltiplas regiões da AWS usando o CloudFront para alta disponibilidade. 47 | >- Configure o DynamoDB com réplicas globais para alta disponibilidade dos dados. 48 | >- Use o Amazon CloudWatch para monitorar a saúde dos serviços e configurar alertas. 49 | >- Habilite o AWS X-Ray para rastreamento e análise de desempenho. 50 | >- Envie logs para o Amazon CloudWatch Logs ou Amazon S3. 51 | >- Essa é uma arquitetura de alto nível que atende aos requisitos fornecidos. Nas próximas etapas, fornecerei instruções detalhadas sobre como configurar e provisionar cada componente mencionado acima. 52 | 53 | #### Resposta do Amazon Q Developer 54 | 55 | > To build the application you described, we can leverage various AWS services and technologies. Here's a high-level architecture and the services we could use: 56 | > 57 | > Frontend: 58 | > 59 | >- AWS Amplify or Amazon S3 to host the static website 60 | >- AWS AppSync or Amazon API Gateway to expose a GraphQL or REST API for the backend 61 | >- React or Angular for building the user interface 62 | > 63 | > Backend: 64 | > 65 | >- AWS Lambda to run serverless Python functions 66 | >- Amazon DynamoDB or Amazon RDS to store user preferences and choices 67 | >- Amazon SageMaker or Amazon Bedrock to integrate with generative AI models for recipe and image generation 68 | >- Amazon SNS or Amazon SQS to queue recipe requests for processing 69 | >- AWS Secrets Manager to securely store SendGrid API credentials 70 | >- Amazon CloudWatch for monitoring and logging 71 | >- AWS CloudFormation or AWS CDK for infrastructure as code 72 | >- AWS IAM for access management and security 73 | > 74 | > Workflow: 75 | > 76 | >- User enters their preferences and dietary restrictions on the frontend. 77 | >- Frontend sends a request to the backend API (API Gateway/AppSync). 78 | >- API triggers a Lambda function to store user data in DynamoDB and enqueue a recipe request in SNS/SQS. 79 | >- Another Lambda function is triggered by the SNS/SQS queue to generate the recipe and image using SageMaker/Bedrock models. 80 | >- The generated recipe and image are stored in an S3 bucket, and QR codes are generated for them. 81 | >- The QR codes are returned to the frontend for display. 82 | >- A separate Lambda function sends the recipe to the appropriate bartender team via SendGrid. 83 | >- This architecture allows for scalability, separation of concerns, and easy integration with AWS services. You can use AWS CodePipeline for continuous deployment and AWS CloudFormation/CDK for infrastructure as code. 84 | > 85 | >Note: For the actual implementation, you'll need to provision and configure these services, write the application code, and integrate the generative AI models. Additionally, you'll need to consider security best practices, such as using AWS Cognito for user authentication and AWS KMS for data encryption. 86 | 87 | #### O que pedimos? 88 | 89 | >For IaC, between AWS CDK and AWS SAM, which one is the best option for us? 90 | 91 | #### Resposta do Amazon Q Developer 92 | 93 | >When choosing between AWS CDK and AWS SAM for infrastructure as code (IaC) in your project, consider the following factors: 94 | > 95 | > AWS CDK (Cloud Development Kit): 96 | >- Allows you to define your infrastructure using familiar programming languages like Python, JavaScript/TypeScript, Java, C#, and Go. 97 | >- Provides a higher-level abstraction over AWS resources, making it easier to define and compose complex infrastructure patterns. 98 | >- Supports multiple programming paradigms (object-oriented, functional, etc.) and allows for code reuse through modules and libraries. 99 | >- Offers better integration with CI/CD pipelines and development workflows. 100 | >- Provides better support for testing and validation of infrastructure code. 101 | >- Has a steeper learning curve compared to AWS SAM, as it requires knowledge of the programming language and AWS CDK constructs. 102 | > 103 | > AWS SAM (Serverless Application Model): 104 | > 105 | >- Uses a simplified syntax based on AWS CloudFormation templates (JSON or YAML). 106 | >- Primarily focused on serverless applications and architectures, making it easier to define and deploy serverless resources like Lambda functions, API Gateway, and DynamoDB. 107 | >- Has a lower learning curve for developers familiar with CloudFormation templates. 108 | >- Provides a streamlined workflow for local testing and debugging of serverless applications using the SAM CLI. 109 | >- May be more limited in terms of advanced infrastructure patterns and code reuse compared to AWS CDK. 110 | >- Given the requirements of your project, which involves a frontend, backend, and integration with generative AI models, AWS CDK might be a better choice for the following reasons: 111 | >- Programming Language Support: Since you plan to use JavaScript for the frontend and Python for the backend, AWS CDK supports both languages natively, making it easier to define and manage your infrastructure code alongside your application code. 112 | >- Complex Infrastructure Patterns: Your application involves multiple components (API Gateway, Lambda, DynamoDB, SageMaker, etc.) and integrations, which may require more complex infrastructure patterns. AWS CDK provides a higher-level abstraction and better support for composing and reusing infrastructure patterns. 113 | >- Integration with CI/CD: AWS CDK integrates well with CI/CD pipelines, allowing you to test and validate your infrastructure code as part of your development workflow. 114 | >- Scalability and Future Growth: While your initial requirements may be focused on serverless components, AWS CDK provides broader coverage of AWS services, making it easier to scale and extend your infrastructure as your application grows. 115 | >- However, if your team has significant experience with AWS CloudFormation templates and prefers a more declarative approach, AWS SAM could be a viable option, especially if your application remains focused on serverless architectures. 116 | > 117 | > Ultimately, the choice between AWS CDK and AWS SAM should consider your team's skills, the complexity of your infrastructure, and the long-term scalability and maintainability requirements of your application. 118 | 119 | #### O que pedimos? 120 | 121 | > Regarding the frontend, we are unsure about which technology to use, our team is proficient in JavaScript. What other options would you like us to consider? 122 | 123 | #### Resposta do Amazon Q Developer 124 | 125 | > Since your team is proficient in JavaScript, it would be a natural choice for the frontend development of this project. JavaScript is a widely adopted language for building modern web applications and has a vast ecosystem of libraries and frameworks to choose from. 126 | > 127 | > However, it's always good to explore alternative options and consider their potential benefits and trade-offs. Here are some alternatives to JavaScript that you could consider for the frontend: 128 | > 129 | >- TypeScript: TypeScript is a superset of JavaScript that adds optional static typing, which can help catch errors during development and improve code maintainability. It's particularly useful for larger projects and teams, as it provides better tooling support and code documentation. TypeScript is a popular choice for building complex web applications and is well-supported by many JavaScript frameworks and libraries. 130 | > 131 | >- React: React is a JavaScript library for building user interfaces, developed and maintained by Facebook. It uses a component-based architecture and a virtual DOM for efficient rendering. React is widely adopted and has a large community, making it a solid choice for building the frontend of your application. 132 | > 133 | >- Angular: Angular is a comprehensive framework for building web applications, developed and maintained by Google. It follows a more opinionated approach and provides a structured way of building applications. Angular has a steeper learning curve compared to React but offers a more comprehensive set of features out of the box. 134 | > 135 | >- Vue.js: Vue.js is a progressive JavaScript framework that is designed to be incrementally adoptable. It combines the best features of Angular and React, making it a lightweight and flexible option for building user interfaces. Vue.js has a growing community and is often praised for its ease of learning and integration with other libraries. 136 | > 137 | >- Svelte: Svelte is a relatively new component framework that takes a different approach to building user interfaces. Instead of using a virtual DOM, it compiles components into highly optimized JavaScript code during the build process. This can result in smaller bundle sizes and improved performance, especially for larger applications. 138 | > 139 | >- WebAssembly: While not a direct alternative to JavaScript, WebAssembly is a low-level bytecode format that can be used to run code written in languages like C, C++, and Rust in web browsers. It can potentially offer performance benefits for certain types of computationally intensive tasks, but it may not be suitable for building the entire frontend of your application. 140 | > 141 | > When considering these alternatives, you should evaluate factors such as your team's familiarity with the technology, the learning curve, performance requirements, community support, and the availability of third-party libraries and tools. Additionally, consider the long-term maintainability and scalability of the chosen technology, as well as its compatibility with the backend and other components of your application. 142 | > 143 | > Ultimately, if your team is already proficient in JavaScript and comfortable with its ecosystem, sticking with JavaScript and a popular framework like React or Vue.js could be a pragmatic choice for this project. 144 | 145 | ## 🫰 Dívida técnica 146 | 147 | - Criar o projeto básico do frontend 148 | - Criar o desenho da arquitetura conforme susgestões do Amazon Q Developer 149 | 150 | ## Onde aprender mais 151 | 152 | [AWSome Generative Drink App (Github)](https://bit.ly/awsome-generative-drink-app) -------------------------------------------------------------------------------- /episode/11/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/11/thumb.jpg -------------------------------------------------------------------------------- /episode/12/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 02, Temporada 02 - [NA PRÁTICA - Parte 2] Arquitetura do AWSome Generative Drink App 2 | 3 | [![YouTube video thumbnail](./thumb.jpg)](https://bit.ly/cdbe-s02ep02) 4 | **[▶ Assista agora no Youtube!](https://bit.ly/cdbe-s02ep02)** 5 | 6 | Nesta temporada nós vamos construir uma aplicação Serverless completa com IA generativa DO ZERO! 7 | 8 | Neste episódio, vamos continuar imediatamente de onde paramos no episódio anterior. Vamos definir a arquitetura da solução e utilizar o Amazon Q Developer para tirar dúvidas sobre as escolhas do desenho. 9 | 10 | Esta é a temporada perfeita para você que está começando com desenvolvimento de software na AWS e se interessa em IA generativa. 11 | 12 | Bóra Buildar! 13 | 14 | ![Software Architecture](../../images/architecture%20s02.png) 15 | 16 | ## O que mencionamos durante o episódio 17 | 18 | [Orquestração x Coreografia](https://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/cloud-design-patterns/cloud-design-patterns.pdf) 19 | 20 | 21 | ## Onde aprender mais 22 | 23 | - [AWSome Generative Drink App (Github)](https://bit.ly/awsome-generative-drink-app) 24 | - [AWSome Generative Drink App (Quadro branco)](https://bit.ly/cdbe-s02-wb) -------------------------------------------------------------------------------- /episode/12/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/12/thumb.jpg -------------------------------------------------------------------------------- /episode/13/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 03, Temporada 02 - [NA PRÁTICA - Parte 3] Engenharia de prompt com Claude 3 e Amazon Q Developer 2 | 3 | [![YouTube video thumbnail](./thumb.jpg)](https://bit.ly/cdbe-s02e03) 4 | **[▶ Assista agora no Youtube!](https://bit.ly/cdbe-s02e03)** 5 | 6 | Bem-vindo(a) a mais um episódio da segunda temporada do AWS Cloud Drops Builders Edition! 7 | 8 | Nós estamos construindo uma aplicação Serverless com IA generativa DO ZERO! 9 | 10 | Neste episódio, vamos receber o Nelson Crepalde, Generative AI Strategist da AWS, para nos ajudar a definir os prompts das funcionalidades que utilizam IA generativa e falar sobre técnicas e boas práticas para construir bons prompts. 11 | 12 | Bóra Buildar! 13 | 14 | ![Software Architecture](../../images/architecture%20s02.png) 15 | 16 | ## 🤖 Conversinha com o Amazon Q Developer 17 | 18 | #### O que pedimos? 19 | 20 | - I need to develop a GenAI assistant with Claude 3. Where do I start? 21 | - I want to start developing a prompt for Claude 3. Can you point me to the best practices on building a good prompt for this LLM? 22 | - Why is it good to use XML tags to build prompts for Claude 3? 23 | - What is the difference between a System prompt and a Human prompt when working with Claude 3? 24 | 25 | ## Onde aprender mais 26 | 27 | - [Notebook com o código do episódio (Github)](./main.ipynb) 28 | - [AWSome Generative Drink App (Github)](https://bit.ly/awsome-generative-drink-app) 29 | - [AWSome Generative Drink App (Quadro branco)](https://bit.ly/cdbe-s02-wb) 30 | - [O que é engenharia de prompt](https://aws.amazon.com/pt/what-is/prompt-engineering/) -------------------------------------------------------------------------------- /episode/13/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/13/thumb.jpg -------------------------------------------------------------------------------- /episode/14/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 04, Temporada 02 - [NA PRÁTICA - Parte 4] Estruturando os projetos AWS CDK e React 2 | 3 | [![YouTube video thumbnail](./thumb.jpg)](https://bit.ly/cdbe-s02e04) 4 | **[▶ Assista agora no Youtube!](https://bit.ly/cdbe-s02e04)** 5 | 6 | Nesta temporada nós vamos construir uma aplicação Serverless completa com IA generativa DO ZERO! 7 | 8 | Neste episódio, vamos utilizar o Amazon Q Developer para nos ajudar a criar as estruturas iniciais dos projetos backend e frontend. 9 | 10 | Esta é a temporada perfeita para você que está começando com desenvolvimento de software na AWS e se interessa em IA generativa. 11 | 12 | Bóra Buildar! 13 | 14 | ![Software Architecture](../../images/architecture%20s02.png) 15 | 16 | ## O que mencionamos durante o episódio 17 | 18 | [Log de decisões de projeto](../../decision%20log/s02/README.md) 19 | 20 | ## Onde aprender mais 21 | 22 | - [AWSome Generative Drink App (Github)](https://bit.ly/awsome-generative-drink-app) 23 | - [AWSome Generative Drink App (Quadro branco)](https://bit.ly/cdbe-s02-wb) -------------------------------------------------------------------------------- /episode/14/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/14/thumb.jpg -------------------------------------------------------------------------------- /episode/15/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 05, Temporada 02 - [NA PRÁTICA - Parte 5] Boas práticas em projetos AWS CDK 2 | 3 | [![YouTube video thumbnail](./thumb.jpg)](https://bit.ly/cdbe-s02e05) 4 | **[▶ Assista agora no Youtube!](https://bit.ly/cdbe-s02e05)** 5 | 6 | Bem-vindo(a) a mais um episódio da segunda temporada do AWS Cloud Drops Builders Edition! 7 | 8 | Nós estamos construindo uma aplicação Serverless com IA generativa DO ZERO! 9 | 10 | Neste episódio, vamos utilizar o Amazon Q Developer para nos ajudar a ajustar o projeto AWS CDK construído no episódio anterior e ainda compartilhar mais algumas boas práticas contidas em nosso log de decisões de projeto. Infraestrutura como código, AWS CDK, Python, Serverless e mais neste episódio. 11 | 12 | Bóra Buildar! 13 | 14 | ![Software Architecture](../../images/architecture%20s02.png) 15 | 16 | ## O que mencionamos durante o episódio 17 | 18 | [Log de decisões de projeto](../../decision%20log/s02/README.md) 19 | 20 | ## Onde aprender mais 21 | 22 | - [AWSome Generative Drink App (Github)](https://bit.ly/awsome-generative-drink-app) 23 | - [AWSome Generative Drink App (Quadro branco)](https://bit.ly/cdbe-s02-wb) -------------------------------------------------------------------------------- /episode/15/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/15/thumb.jpg -------------------------------------------------------------------------------- /episode/16/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 06, Temporada 02 - [NA PRÁTICA - Parte 6] Não seja COMPLACENTE com código gerado por IA 2 | 3 | [![YouTube video thumbnail](./thumb.jpg)](https://bit.ly/cdbe-s02e06) 4 | **[▶ Assista agora no Youtube!](https://bit.ly/cdbe-s02e06)** 5 | 6 | Bem-vindo(a) a mais um episódio da segunda temporada do AWS Cloud Drops Builders Edition! 7 | 8 | Nós estamos construindo uma aplicação Serverless com IA generativa DO ZERO! 9 | 10 | Neste episódio, vamos continuar usando o Amazon Q Developer para nos ajudar a desenvolver nossa aplicação. Além disso, vamos implementar mecanismos automáticos para verificação do código e falar sobre os possíveis efeitos da complacência ao aceitar código gerado por IA. 11 | 12 | Lembre-se: A ferramenta ajuda, profissionais decidem! 13 | 14 | Bóra Buildar! 15 | 16 | ![Software Architecture](../../images/architecture%20s02.png) 17 | 18 | ## O que mencionamos durante o episódio 19 | 20 | - [Log de decisões de projeto](../../decision%20log/s02/README.md) 21 | - [Technology Radar | Thoughtworks](https://bit.ly/radar-2024) 22 | - [AWS Community Day Brasil 2024](https://awscommunityday.com.br/) 23 | 24 | ## Onde aprender mais 25 | 26 | - [AWSome Generative Drink App (Github)](https://bit.ly/awsome-generative-drink-app) 27 | - [AWSome Generative Drink App (Quadro branco)](https://bit.ly/cdbe-s02-wb) -------------------------------------------------------------------------------- /episode/16/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/16/thumb.jpg -------------------------------------------------------------------------------- /episode/17/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 07, Temporada 02 - [NA PRÁTICA - Parte 7] Como aplicar o princípio da responsabilidade única (SRP) com AWS Lambda 2 | 3 | [![YouTube video thumbnail](./thumb.jpg)](https://bit.ly/cdbe-s02e07) 4 | **[▶ Assista agora no Youtube!](https://bit.ly/cdbe-s02e07)** 5 | 6 | Bem-vindo(a) a mais um episódio da segunda temporada do AWS Cloud Drops Builders Edition. Nesta temporada estamos construindo uma aplicação Serverless completa com IA generativa DO ZERO. 7 | 8 | Neste episódio, vamos explorar a aplicação do Princípio da Responsabilidade Única (SRP) no contexto do AWS Lambda e refatorar o código que escrevemos até aqui. 9 | 10 | Este episódio é ideal para pessoas interessadas em melhorar a estrutura e manutenibilidade de suas funções Lambda. 11 | 12 | Bóra Buildar! 13 | 14 | ![Software Architecture](../../images/architecture%20s02.png) 15 | 16 | ## O que mencionamos durante o episódio 17 | 18 | - [Log de decisões de projeto](../../decision%20log/s02/README.md) 19 | 20 | ## Onde aprender mais 21 | 22 | - [AWSome Generative Drink App (Github)](https://bit.ly/awsome-generative-drink-app) 23 | - [AWSome Generative Drink App (Quadro branco)](https://bit.ly/cdbe-s02-wb) -------------------------------------------------------------------------------- /episode/17/thumb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/17/thumb.jpg -------------------------------------------------------------------------------- /episode/18/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 08, Temporada 02 - INFRAESTRUTURA COMO CÓDIGO COM AMAZON Q DEVELOPER CLI 🚀 2 | 3 | [![YouTube video thumbnail](./thumb.png)](https://bit.ly/cdbe-s02e08) 4 | **[▶ Assista agora no Youtube!](https://bit.ly/cdbe-s02e08)** 5 | 6 | Bem-vindo(a) a mais um episódio da segunda temporada do AWS Cloud Drops Builders Edition. Nesta temporada estamos construindo uma aplicação Serverless completa com IA generativa DO ZERO. 7 | 8 | Neste episódio, vamos continuar construindo a aplicação e desta vez vamos utilizar o Amazon Q Developer CLI para nos apoiar durante o processo de desenvolvimento. Vamos abordar o uso prático do Amazon Q Developer para codificação, gerenciamento de dependências e garantia das melhores práticas de segurança, além de compartilhar dicas sobre gerenciamento de builds, processos de teste e configuração de roles IAM com privilégios mínimos. 9 | 10 | Bóra Buildar! 11 | 12 | ![Software Architecture](../../images/architecture%20s02.png) 13 | 14 | ## O que mencionamos durante o episódio 15 | 16 | - [00:00](https://youtu.be/9TgT-2LCw5o?t=0) Introdução e Apresentação 17 | - [00:37](https://youtu.be/9TgT-2LCw5o?t=37) Resumo da Temporada e Novidades do reInvent 18 | - [02:22](https://youtu.be/9TgT-2LCw5o?t=142) Construção da Aplicação com IA Generativa 19 | - [03:51](https://youtu.be/9TgT-2LCw5o?t=231) Estrutura do Projeto e Ferramentas Utilizadas 20 | - [05:35](https://youtu.be/9TgT-2LCw5o?t=335) Testes e Ajustes no Makefile 21 | - [08:05](https://youtu.be/9TgT-2LCw5o?t=485) Uso do Amazon Q Developer para Automação 22 | - [21:29](https://youtu.be/9TgT-2LCw5o?t=1289) Implementação de Fluxo Automatizado para Receitas e Drinks 23 | - [25:12](https://youtu.be/9TgT-2LCw5o?t=1512) Introdução ao Boto3 e AWS 24 | - [25:25](https://youtu.be/9TgT-2LCw5o?t=1525) Processamento de Imagens e Bedrock 25 | - [26:01](https://youtu.be/9TgT-2LCw5o?t=1561) Criação e Persistência de Modelos 26 | - [26:37](https://youtu.be/9TgT-2LCw5o?t=1597) Funções Lambda e Step Functions 27 | - [29:21](https://youtu.be/9TgT-2LCw5o?t=1761) Uso de Modelos da Amazon 28 | - [30:14](https://youtu.be/9TgT-2LCw5o?t=1814) Notificações e SendGrid 29 | - [31:29](https://youtu.be/9TgT-2LCw5o?t=1889) Criação e Modificação de Stacks 30 | - [37:49](https://youtu.be/9TgT-2LCw5o?t=2269) Organização e Manutenção de Código 31 | - [42:31](https://youtu.be/9TgT-2LCw5o?t=2551) Deploy e Colaboração 32 | - [49:15](https://youtu.be/9TgT-2LCw5o?t=2955) Encerramento e Próximos Passos 33 | - [Log de decisões de projeto](../../decision%20log/s02/README.md) 34 | - [Reading Code is an Essential Skill by Jeff Barr](https://nextjeff.com/reading-code-is-an-essential-skill-6083f5156acc) 35 | 36 | ## Onde aprender mais 37 | 38 | - [AWSome Generative Drink App (Github)](https://bit.ly/awsome-generative-drink-app) 39 | - [AWSome Generative Drink App (Quadro branco)](https://bit.ly/cdbe-s02-wb) 40 | - 💻 [Siga a Ana](https://www.linkedin.com/in/analuizacunha/) 41 | - 💻 [Siga o Palla](https://www.linkedin.com/in/mfpalladino/) -------------------------------------------------------------------------------- /episode/18/thumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/18/thumb.png -------------------------------------------------------------------------------- /episode/19/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 09, Temporada 02 - PIRÂMIDE DE TESTES COM AMAZON Q DEVELOPER CLI 2 | 3 | [![YouTube video thumbnail](./thumb.png)](https://bit.ly/cdbe-s02e09) 4 | **[▶ Assista agora no Youtube!](https://bit.ly/cdbe-s02e09)** 5 | 6 | Bem-vindo(a) a mais um episódio da segunda temporada do AWS Cloud Drops Builders Edition. Nesta temporada estamos construindo uma aplicação Serverless completa com IA generativa DO ZERO. 7 | 8 | Neste episódio, continuamos a construção da aplicação com Amazon Q Developer CLI, explorando a FAMOSA pirâmide de testes. 9 | 10 | Focamos no pilar de testes, discutindo a pirâmide de testes clássica, abrangendo testes de unidade, integração e end-to-end na AWS. Implementamos um modelo (schema) de requisição de bebidas usando Amazon Q Developer CLI e validamos a estrutura com testes automatizados. 11 | 12 | Bóra Buildar! 13 | 14 | ![Software Architecture](../../images/architecture%20s02.png) 15 | 16 | ## O que mencionamos durante o episódio 17 | 18 | - [00:00](https://www.youtube.com/watch?v=OANKFCQ68Lo&t=0s) - Introdução e Contexto da Série 19 | - [00:17](https://www.youtube.com/watch?v=OANKFCQ68Lo&t=17s) - Recapitulando Episódios Anteriores 20 | - [02:18](https://www.youtube.com/watch?v=OANKFCQ68Lo&t=138s) - Explorando o CloudFormation 21 | - [05:18](https://www.youtube.com/watch?v=OANKFCQ68Lo&t=318s) - Introdução ao Pilar de Testes 22 | - [08:12](https://www.youtube.com/watch?v=OANKFCQ68Lo&t=492s) - Testes de Unidade e Integração 23 | - [20:02](https://www.youtube.com/watch?v=OANKFCQ68Lo&t=1202s) - Implementação e Refatoração de Código 24 | - [32:25](https://www.youtube.com/watch?v=OANKFCQ68Lo&t=1945s) - Definindo Campos Obrigatórios e Opcionais 25 | - [34:37](https://www.youtube.com/watch?v=OANKFCQ68Lo&t=2077s) - Requisitos Adicionais e Boas Práticas 26 | - [35:49](https://www.youtube.com/watch?v=OANKFCQ68Lo&t=2149s) - Implementação e Testes de Unidade 27 | - [41:22](https://www.youtube.com/watch?v=OANKFCQ68Lo&t=2482s) - Gerenciamento de Prompts e Ferramentas 28 | - [44:57](https://www.youtube.com/watch?v=OANKFCQ68Lo&t=2697s) - Execução e Revisão de Testes 29 | - [58:55](https://www.youtube.com/watch?v=OANKFCQ68Lo&t=3535s) - Conclusão e Próximos Passos 30 | 31 | ## Onde aprender mais 32 | 33 | - [AWSome Generative Drink App (Github)](https://bit.ly/awsome-generative-drink-app) 34 | - [AWSome Generative Drink App (Quadro branco)](https://bit.ly/cdbe-s02-wb) 35 | - 💻 [Siga a Ana](https://www.linkedin.com/in/analuizacunha/) 36 | - 💻 [Siga o Palla](https://www.linkedin.com/in/mfpalladino/) -------------------------------------------------------------------------------- /episode/19/thumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/19/thumb.png -------------------------------------------------------------------------------- /episode/2/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 3 - Programação em par turbinada por IA: Crie uma aplicação com Amazon CodeWhisperer 2 | 3 | [![YouTube video thumbnail](./thumb.jpeg)](https://www.youtube.com/watch?v=nMNPN0q8Sfo) 4 | **[▶ Assista agora no Youtube!](https://www.youtube.com/watch?v=nMNPN0q8Sfo)** 5 | 6 | Neste episódio você vai descobrir o [Amazon CodeWhisperer](https://aws.amazon.com/codewhisperer/?trk=f6a5abea-70e5-45dc-9cf2-5c73627a52bc), seu parceiro de código turbinado por IA, enquanto é guiado pelo processo de criação de uma aplicação de galeria de imagens usando React e AWS Amplify. Junte-se a nós e venha aprender sobre o desenvolvimento de aplicações com assistência de IA. 7 | 8 | Se você gostou do conteúdo e que ser notificado sobre próximos episódios, [por favor, assine o canal](https://www.youtube.com/@AmazonWebServicesLatinAmerica). 9 | 10 | Palavras-chave: Geração de código por IA 11 | 12 | ## O que mencionamos durante o episódio 13 | 14 | - [React](https://react.dev/) 15 | - [AWS Amplify](https://aws.amazon.com/amplify/) 16 | - [Amazon CodeWhisperer](https://aws.amazon.com/codewhisperer/) 17 | 18 | ## 🐛 Bugs em produção 19 | 20 | ## 🫰 Dívida técnica 21 | 22 | Nenhuma dívida técnica foi adquirida neste episódio. 23 | 24 | ## Onde aprender mais 25 | 26 | * [Repositório no Github com a aplicação de exemplo (github)](https://bit.ly/cdbe-s01e03-code) 27 | * [Página do serviço](https://bit.ly/amazon-code-whisperer) 28 | 29 | [![Generative AI with LLMs](../../images/Generative%20AI%20with%20LLMs.jpeg)](https://www.deeplearning.ai/courses/generative-ai-with-llms/) 30 | **[DeepLearning.AI](https://www.deeplearning.ai/courses/generative-ai-with-llms/)** 31 | -------------------------------------------------------------------------------- /episode/2/thumb.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/2/thumb.jpeg -------------------------------------------------------------------------------- /episode/20/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 10, Temporada 02 - MCP (Model Context Protocol) NA PRÁTICA 🚀 2 | 3 | [![YouTube video thumbnail](./thumb.png)](https://bit.ly/cdbe-s02e10) 4 | **[▶ Assista agora no Youtube!](https://bit.ly/cdbe-s02e10)** 5 | 6 | Neste episódio, recebemos Neylson Crepalde para discutir o Model Context Protocol (MCP) e suas aplicações práticas. Exploramos como o MCP simplifica a integração de modelos de IA generativa com dados externos e ferramentas, substituindo métodos complexos por soluções mais eficientes e escaláveis. 7 | 8 | Bóra buildar! 9 | 10 | ## O que mencionamos durante o episódio 11 | 12 | - [Introdução](https://www.youtube.com/watch?v=Y8AdqiR5pEQ&t=0s) 13 | - [O Trabalho do Ney na AWS](https://www.youtube.com/watch?v=Y8AdqiR5pEQ&t=63s) 14 | - [Introdução ao Model Context Protocol (MCP)](https://www.youtube.com/watch?v=Y8AdqiR5pEQ&t=135s) 15 | - [Desafios e Soluções com MCP](https://www.youtube.com/watch?v=Y8AdqiR5pEQ&t=284s) 16 | - [Demonstração Prática do MCP](https://www.youtube.com/watch?v=Y8AdqiR5pEQ&t=844s) 17 | - [Considerações Finais e Lançamentos Recentes do Amazon Q Developer CLI](https://www.youtube.com/watch?v=Y8AdqiR5pEQ&t=1955s) 18 | 19 | ## Onde aprender mais 20 | 21 | - [Introdução ao MCP](https://www.anthropic.com/news/model-context-protocol) 22 | - [Exemplos com InlineAgent](https://github.com/awslabs/amazon-bedrock-agent-samples/tree/main/src/InlineAgent/examples/mcp) 23 | - [Apresentando Servidores AWS MCP para assistentes de código](https://aws.amazon.com/pt/blogs/machine-learning/introducing-aws-mcp-servers-for-code-assistants-part-1/) 24 | - [AWS MCP Servers](https://github.com/awslabs/mcp/) 25 | - [Post de lançamento do suporte oficial de MCP no Amazon Q Developer CLI](https://aws.amazon.com/pt/blogs/devops/extend-the-amazon-q-developer-cli-with-mcp/) 26 | - [Amazon Q Developer na linha de comando](https://bit.ly/amazon-q-dev-brasil) 27 | - [Siga o Ney](https://www.linkedin.com/in/neylsoncrepalde/) 28 | - [Siga o Palla](https://www.linkedin.com/in/mfpalladino/) -------------------------------------------------------------------------------- /episode/20/thumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/20/thumb.png -------------------------------------------------------------------------------- /episode/3/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 4 - Sumarizando textos com IA Generativa e Prompt Engineering 2 | 3 | [![YouTube video thumbnail](./thumb.jpeg)](https://www.youtube.com/watch?v=QkkUcbtzoIg) 4 | **[▶ Assista agora no Youtube!](https://www.youtube.com/watch?v=QkkUcbtzoIg)** 5 | 6 | Neste episódio vamos mostrar como realizar uma tarefa de resumo de diálogos utilizando IA generativa. Nós exploraremos como os parâmetros de inferência e o texto de entrada afeta a saída do modelo e utilizaremos engenharia de prompt para instruí-lo a realizar a tarefa desejada. Também vamos comparar as inferências de Zero-Shot, One-Shot e Few-Shot e veremos como estas técnicas podem aprimorar a produção generativa de modelos de linguagem de larga escala (LLMs). 7 | 8 | Palavras-chave: IA Generativa, Engenharia de prompt, Sumarização de texto 9 | 10 | ## O que mencionamos durante o episódio 11 | 12 | * [A importância da engenharia de prompt na construção de produtos (Amazon ads)](https://www.youtube.com/live/QkkUcbtzoIg?t=273&si=ch7_UENbOxe-dKu7) 13 | * [O ciclo de vida de aplicações com IA generativa](https://www.youtube.com/live/QkkUcbtzoIg?t=472&si=Q2S9FMY9Xb60Wrx6) 14 | * [Prompting e prompt engineering](https://www.youtube.com/live/QkkUcbtzoIg?t=648&si=rlSNDum1mbWOMdtr) 15 | * [Inferência Zero Shot](https://www.youtube.com/live/QkkUcbtzoIg?t=770&si=9n8g4cPDzC_-ipnj) 16 | * [Inferência One Shot](https://www.youtube.com/live/QkkUcbtzoIg?t=906&si=M4GFV5l5Zi9rBQC8) 17 | * [Inferência Few Shot](https://www.youtube.com/live/QkkUcbtzoIg?t=1020&si=XP0931BE9vqH3p04) 18 | * [In-context learning - Sumário](https://www.youtube.com/live/QkkUcbtzoIg?t=1110&si=ygzr0U4m3-wETmVl) 19 | * [Parâmetros de inferência (max_new_tokens, top k, top p e temperature)](https://www.youtube.com/live/QkkUcbtzoIg?t=1337&si=hwloUgAGWTs1FJZZ) 20 | * [Juntando tudo no código](https://www.youtube.com/live/QkkUcbtzoIg?t=2101&si=em9XOlNrFPvA56bh) 21 | 22 | ## 🐛 Bugs em produção 23 | 24 | Em alguns momentos o microfone do Palla raspou em alguma coisa, mas nada que comprometesse o episódio. Foram momentos bem isolados. 25 | 26 | ## 🫰 Dívida técnica 27 | 28 | Nenhuma dívida técnica foi adquirida neste episódio. 29 | 30 | ## Onde aprender mais 31 | 32 | * [Andy Jassy LinkedIn post - Amazon Ads GenAI capability](https://www.linkedin.com/posts/andy-jassy-8b1615_first-look-at-our-new-amazon-ads-genai-capability-ugcPost-7122968532773998592-WrFq/) 33 | * [Código utilizado neste episódio (guithub)](https://github.com/AWS-Cloud-Drops-Builders-Edition/s01e04) 34 | * [Como um prompt é processado (trecho de vídeo)](https://www.youtube.com/watch?v=Ng_8PlvzA3Y&t=528s) 35 | * [Exemplos de Zero-Shot, One-Shot, Few-Shot (trecho de vídeo)](https://www.youtube.com/watch?v=DwTV5uNENqo&t=326s) 36 | * [Prompt Engineering Guide](https://www.promptingguide.ai/) 37 | * [Few-shot learning in practice: GPT-Neo and the 🤗 Accelerated Inference API](https://huggingface.co/blog/few-shot-learning-gpt-neo-and-inference-api) 38 | * [EMNLP: Prompt engineering is the new feature engineering](https://www.amazon.science/blog/emnlp-prompt-engineering-is-the-new-feature-engineering) 39 | * [Zero-shot prompting for the Flan-T5 foundation model in Amazon SageMaker JumpStart](https://aws.amazon.com/blogs/machine-learning/zero-shot-prompting-for-the-flan-t5-foundation-model-in-amazon-sagemaker-jumpstart/) 40 | 41 | 42 | [![Generative AI with LLMs](../../images/Generative%20AI%20with%20LLMs.jpeg)](https://www.deeplearning.ai/courses/generative-ai-with-llms/) 43 | **[DeepLearning.AI](https://www.deeplearning.ai/courses/generative-ai-with-llms/)** 44 | -------------------------------------------------------------------------------- /episode/3/thumb.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/3/thumb.jpeg -------------------------------------------------------------------------------- /episode/4/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 5 - Ajustando LLMs com instruction fine-tuning 2 | 3 | [![YouTube video thumbnail](./thumb.jpeg)](https://www.youtube.com/watch?v=pD7ol5xDGm8) 4 | **[▶ Assista agora no Youtube!](https://www.youtube.com/watch?v=pD7ol5xDGm8)** 5 | 6 | Modelos fundacionais contém muitas informações com as quais eles são inicialmente pré-treinados. Geralmente, informações realmente boas sobre o mundo. No entanto, eventualmente eles não sabem como responder às nossas solicitações específicas e às nossas perguntas. Portanto, quando os instruímos a realizar determinadas tarefas, eles não sabem necessariamente como responder. Neste episódio, vamos nos aprofundar no ajuste fino de modelos para lidar com esta questão, começando com o ajuste de instruções em modelos de linguagem de larga escala (LLMs). 7 | 8 | Palavras-chave: IA Generativa, Fine-tuning, Sumarização de diálogo 9 | 10 | ## O que mencionamos durante o episódio 11 | 12 | - [PartyRock, criando uma aplicação de IA (e nomeando a dupla Ana & Palla)](https://www.youtube.com/watch?v=pD7ol5xDGm8&t=363s) 13 | - [Iniciando com fine-tuning](https://www.youtube.com/watch?v=pD7ol5xDGm8&t=950s) 14 | - [Usando templates para montar prompts de instrução](https://www.youtube.com/watch?v=pD7ol5xDGm8&t=1334s) 15 | - [O processo de fine-tuning de LLMs00:29:06 Fine-tuning de uma única tarefa](https://www.youtube.com/watch?v=pD7ol5xDGm8&t=1413s) 16 | - [Esquecimento catastrófico](https://www.youtube.com/watch?v=pD7ol5xDGm8&t=1861s) 17 | - [Fine-tuning de múltiplas tarefas](https://www.youtube.com/watch?v=pD7ol5xDGm8&t=2020s) 18 | - [Como são feitos os modelos FLAN (e flan === pudim)](https://www.youtube.com/watch?v=pD7ol5xDGm8&t=2101s) 19 | - [Melhorando a capacidade de sumarização do FLAN-T5](https://www.youtube.com/watch?v=pD7ol5xDGm8&t=2406s) 20 | - [Juntando tudo no código](https://www.youtube.com/watch?v=pD7ol5xDGm8&t=2722s) 21 | 22 | ## 🐛 Bugs em produção 23 | 24 | ## 🫰 Dívida técnica 25 | 26 | ## Onde aprender mais 27 | 28 | * [PartyRock](https://partyrock.aws/) 29 | * [Código utilizado neste episódio (guithub)](https://github.com/AWS-Cloud-Drops-Builders-Edition/s01e05) 30 | * [Exemplo de template de prompt](https://github.dev/bigscience-workshop/promptsource/blob/main/promptsource/templates/app_reviews/templates.yaml) 31 | * [Scaling Instruction-Finetuned Language Models (paper)](https://arxiv.org/pdf/2210.11416.pdf) 32 | * [Hugging faces datasets samsum](https://huggingface.co/datasets/samsum) 33 | 34 | 35 | [![AWS PartyRock](../../images/partyrock.jpeg)](https://partyrock.aws/) 36 | **[Bóra construir uma aplicação baseada em IA](https://partyrock.aws/)** 37 | 38 | [![Generative AI with LLMs](../../images/Generative%20AI%20with%20LLMs.jpeg)](https://www.deeplearning.ai/courses/generative-ai-with-llms/) 39 | **[DeepLearning.AI](https://www.deeplearning.ai/courses/generative-ai-with-llms/)** 40 | -------------------------------------------------------------------------------- /episode/4/thumb.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/4/thumb.jpeg -------------------------------------------------------------------------------- /episode/5/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 6 - Ajustando LLMs com Parameter efficient fine-tunning (PEFT) 2 | 3 | [![YouTube video thumbnail](./thumb.jpeg)](https://www.youtube.com/watch?v=18eWp6ceP4k) 4 | **[▶ Assista agora no Youtube!](https://www.youtube.com/watch?v=18eWp6ceP4k)** 5 | 6 | Como vimos no último episódio, o ajuste de LLMs é computacionalmente intensivo. O ajuste fino completo requer memória não apenas para armazenar o modelo, mas vários outros parâmetros que são necessários durante o processo de treinamento. Mesmo que o seu computador possa suportar o tamanho do modelo, que agora é da ordem de centenas de gigabytes para os modelos maiores, você também deve ser capaz de alocar memória para vários componentes adjacentes e memória temporária durante todo o processo de treinamento. Esses componentes adicionais podem ser muitas vezes maiores que o modelo e podem rapidamente se tornar grandes demais para serem manuseados em hardware de uso geral. 7 | 8 | Neste episódio, veremos alternativas ao ajuste fino completo, utilizando o Parameter efficient fine-tuning (PEFT), para utilizar técnicas que atualizam apenas um pequeno subconjunto de parâmetros. 9 | 10 | ## O que mencionamos durante o episódio 11 | 12 | * 00:00:00 Introdução 13 | * 00:01:20 Amazon SageMaker Studio Lab 14 | * 00:04:56 PartyRocket, um aplicativo feito com IA generativa no PartyRock 15 | * 00:11:31 Recapitulando o final do episódio 5 16 | * 00:13:45 O ciclo de vida de um projeto com IA generativa 17 | * 00:14:21 Os desafios para avaliar LLMs 18 | * 00:19:00 Métricas: ROUGE e BLEU 19 | * 00:20:51 Métricas: Terminologia 20 | * 00:21:51 Métricas: ROUGE-1 21 | * 00:24:48 Métricas: ROUGE-2 22 | * 00:26:24 Métricas: ROUGE-L 23 | * 00:29:50 Os desafios do full fine-tuning 24 | * 00:31:21 Parameter Efficient Fine-Tuning (PEFT) 25 | * 00:36:49 Comparando as abordagens de fine-tuning 26 | * 00:38:43 PEFT trade-offs 27 | * 00:39:48 Métodos PEFT 28 | * 00:45:25 Juntando tudo no código 29 | * 01:06:09 Finalização 30 | 31 | ## 🐛 Bugs em produção 32 | 33 | ## 🫰 Dívida técnica 34 | 35 | ## Onde aprender mais 36 | 37 | * [Código utilizado neste episódio (guithub)](https://github.com/AWS-Cloud-Drops-Builders-Edition/s01e06) 38 | * [PartyRocket - build web apps with gen AI](https://partyrock.aws/u/mza/pDK3iF1kb/PartyRocket-build-web-apps-with-gen-AI/snapshot/xKLiQfwHd) 39 | * [AWS re:Invent 2023 - Keynote with Dr. Werner Vogels](https://www.youtube.com/watch?v=UTRBVPvzt9w) 40 | * [HELM is a living benchmark to evaluate Language Models more transparently](https://crfm.stanford.edu/helm/latest/) 41 | * [Este artigo apresenta o GLUE, uma referência para avaliar modelos em diversas tarefas de compreensão de linguagem natural (NLU) e enfatiza a importância de sistemas NLU gerais aprimorados](https://openreview.net/pdf?id=rJ4km2R5t7) 42 | * [Este artigo apresenta o SuperGLUE, um benchmark projetado para avaliar o desempenho de vários modelos de PNL em uma série de tarefas desafiadoras de compreensão de linguagem](https://super.gluebenchmark.com/) 43 | * [Este artigo apresenta e avalia quatro medidas diferentes (ROUGE-N, ROUGE-L, ROUGE-W e ROUGE-S) no pacote de avaliação de resumo ROUGE, que avalia a qualidade dos resumos comparando-os com resumos ideais gerados por humanos](https://aclanthology.org/W04-1013.pdf) 44 | * [Este artigo apresenta um novo teste para medir a precisão multitarefa em modelos de texto, destacando a necessidade de melhorias substanciais para alcançar a precisão de nível especializado e abordar o desempenho desequilibrado e a baixa precisão em assuntos socialmente importantes](https://arxiv.org/pdf/2009.03300.pdf) 45 | * [O artigo apresenta o BIG-bench, um benchmark para avaliar modelos de linguagem em tarefas desafiadoras, fornecendo insights sobre escala, calibração e preconceito social](https://arxiv.org/pdf/2206.04615.pdf) 46 | 47 | 48 | [![AWS PartyRock](../../images/partyrock.jpeg)](https://partyrock.aws/) 49 | **[Bóra construir uma aplicação baseada em IA](https://partyrock.aws/)** 50 | 51 | [![Generative AI with LLMs](../../images/Generative%20AI%20with%20LLMs.jpeg)](https://www.deeplearning.ai/courses/generative-ai-with-llms/) 52 | **[DeepLearning.AI](https://www.deeplearning.ai/courses/generative-ai-with-llms/)** 53 | -------------------------------------------------------------------------------- /episode/5/thumb.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/5/thumb.jpeg -------------------------------------------------------------------------------- /episode/6/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 7 - Usando RAG para melhorar respostas utilizando Knowledge Bases for Amazon Bedrock 2 | 3 | [![YouTube video thumbnail](./thumb.png)](https://www.youtube.com/watch?v=7lF8_9bG15Q) 4 | **[▶ Assista agora no Youtube!](https://www.youtube.com/watch?v=7lF8_9bG15Q)** 5 | 6 | Nos últimos dois episódios falamos de fine-tuning, como forma de fazer suas aplicações de IA generativa podem fornecer melhores respostas incorporando dados específicos da organização. Neste episódio, vamos abordar uma técnica conhecida como Retrieval Augmented Generation (RAG). No entanto, a implementação do RAG requer tempo para configurar conexões com fontes de dados, gerenciar fluxos de trabalho de ingestão de dados e escrever código personalizado para gerenciar as interações entre o modelo fundacional (FM) e as fontes de dados. Nós receberemos o [Allex Lima](https://www.linkedin.com/in/allexlimas/), que irá nos mostrar como tornar o processo muito mais fácil, utilizando o Amazon Bedrock. 7 | 8 | ## O que mencionamos durante o episódio 9 | 10 | * 00:00 Abertura 11 | * 09:18 Por que customizar modelos fundacionais? 12 | * 16:35 Abordagens comuns para customização de modelos fundacionais 13 | * 25:04 Customizar ou Enriquecer 14 | * 35:16 O que é RAG (Retrieval Augmented Generation)? 15 | * 39:18 Casos de uso para utilização de RAG 16 | * 43:57 O que são embeddings? 17 | * 45:10 Por que embeddings é importantes para RAG? 18 | * 46:41 RAG em ação 19 | * 49:00 Desafios para implementar RAG 20 | * 50:10 Knowledge Bases for Amazon Bedrock 21 | * 51:56 Juntando tudo na demo 22 | * 01:00:01 Finalização 23 | 24 | ## 🐛 Bugs em produção 25 | 26 | ## 🫰 Dívida técnica 27 | 28 | Graças ao Palla, que esqueceu o copo em seu armário no escritório 😂, não conseguimos trazer o copo do Hamilton, conforme divulgado antes do episódio. 29 | 30 | ## Onde aprender mais 31 | 32 | * [RAG para tarefas de PNL com uso intensivo de bases de conhecimento (Paper)](https://arxiv.org/abs/2005.11401v4) 33 | * [Exemplo de como construir um chatbot multi-tenant com RAG utilizando Amazon Bedrock](https://aws.amazon.com/pt/blogs/containers/build-a-multi-tenant-chatbot-with-rag-using-amazon-bedrock-and-amazon-eks/) 34 | * [Exemplos de código com Amazon Bedrock (GitHub)](https://github.com/aws-samples/amazon-bedrock-samples) 35 | 36 | 37 | [![AWS PartyRock](../../images/partyrock.jpeg)](https://partyrock.aws/) 38 | **[Bóra construir uma aplicação baseada em IA](https://partyrock.aws/)** 39 | 40 | [![Generative AI with LLMs](../../images/Generative%20AI%20with%20LLMs.jpeg)](https://www.deeplearning.ai/courses/generative-ai-with-llms/) 41 | **[DeepLearning.AI](https://www.deeplearning.ai/courses/generative-ai-with-llms/)** 42 | -------------------------------------------------------------------------------- /episode/6/thumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/6/thumb.png -------------------------------------------------------------------------------- /episode/7/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 8 - Knowledge Bases for Amazon Bedrock NA PRÁTICA 2 | 3 | [![YouTube video thumbnail](./thumb.png)](https://www.youtube.com/watch?v=tS8GfsnMSbI) 4 | **[▶ Assista agora no Youtube!](https://www.youtube.com/watch?v=tS8GfsnMSbI)** 5 | 6 | No [último episódio](https://www.youtube.com/watch?v=7lF8_9bG15Q) recebemos o [Allex Lima](https://www.linkedin.com/in/allexlimas/) e vimos muitos conceitos sobre Retrieval Augmented Generation (RAG) e Knowledge Bases for Amazon Bedrock. Este é um episódio 100% de mão na massa, que assume que você assistiu o último. Então vem com a gente nessa e vamos aplicar os conceitos na PRÁTICA! 7 | 8 | Bóra buildar! 9 | 10 | ## O que mencionamos durante o episódio 11 | 12 | * 00:00:00 Abertura 13 | * 00:07:33 Notas dos episódios 14 | * 00:08:38 Abrindo o Amazon SageMaker Studio 15 | * 00:13:03 Carregando os arquivos 16 | * 00:13:33 Configurando o ambiente do notebook 17 | * 00:17:23 Explicando o exemplo de ponta a ponta 18 | * 00:21:33 Instalando as dependências, importando os módulos e declarando as variáveis 19 | * 00:23:23 Criando o Bucket no Amazon S3 20 | * 00:25:11 Fazendo a pergunta antes de aplicar RAG 21 | * 00:27:11 Criando o repositório de vetores no OpenSearch Serverless e a Execution Role do Amazon Bedrock 22 | * 00:29:33 Criando o índice de vetor no OpenSearch Serverless 23 | * 00:33:31 Inspecionando a Role criada no IAM 24 | * 00:35:53 Olhando o Amazon OpenSearch Service no console 25 | * 00:39:41 Executando a criação do índice (finalmente :D) 26 | * 00:40:15 Fazendo o download dos dados 27 | * 00:42:06 Configurando e criando a base de conhecimento no Knowledge Bases for Amazon Bedrock 28 | * 00:44:25 Criando a origem de dados (Data Source) 29 | * 00:45:19 Iniciando a ingestão dos dados (S3 - OpenSearch vector store) 30 | * 00:46:19 Perguntando para o modelo aplicando RAG 31 | * 00:52:19 Imprimindo as referências 32 | * 00:53:07 Visualizando os chunks recuperados e suas URIs 33 | * 00:55:13 Limpando a casa e desligando a instância do notebook 34 | * 01:00:20 Finalização 35 | 36 | ## 🐛 Bugs em produção 37 | 38 | ## 🫰 Dívida técnica 39 | 40 | ## Onde aprender mais 41 | 42 | * [Usando RAG para melhorar respostas utilizando Knowledge Bases for Amazon Bedrock (episódio 7)](https://www.youtube.com/watch?v=7lF8_9bG15Q) 43 | * [Exemplos de código com Amazon Bedrock (GitHub)](https://github.com/aws-samples/amazon-bedrock-samples) 44 | 45 | 46 | [![AWS PartyRock](../../images/partyrock.jpeg)](https://partyrock.aws/) 47 | **[Bóra construir uma aplicação baseada em IA](https://partyrock.aws/)** 48 | 49 | [![Generative AI with LLMs](../../images/Generative%20AI%20with%20LLMs.jpeg)](https://www.deeplearning.ai/courses/generative-ai-with-llms/) 50 | **[DeepLearning.AI](https://www.deeplearning.ai/courses/generative-ai-with-llms/)** 51 | -------------------------------------------------------------------------------- /episode/7/thumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/7/thumb.png -------------------------------------------------------------------------------- /episode/8/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 9 - Projetos de IA Generativa NA PRÁTICA 2 | 3 | [![YouTube video thumbnail](./thumb.jpeg)](https://www.youtube.com/watch?v=6FC9iFdLoZQ) 4 | **[▶ Assista agora no Youtube!](https://www.youtube.com/watch?v=6FC9iFdLoZQ)** 5 | 6 | Durante os últims episódios, temos reforçado a importância da tangibilização da tecnologia para os aspectos do negócio, quando falamos de IA Generativa. Neste episódio, convidamos a [Leticia Dornelas](https://www.linkedin.com/in/leticiadornelas/), Solutions Architect da AWS, para uma sessão de quadro branco, na qual vamos bater um papo e ela vai compartilhar casos de uso e soluções que estão utilizando IA Generativa na vida real. 7 | 8 | Bóra desenhar, para depois Buildar! 9 | 10 | ## O que mencionamos durante o episódio 11 | 12 | - 00:00:00 Introdução e apresentações 13 | - 00:02:58 O (famoso) Ciclo de vida de um projeto com IA Generativa 14 | - 00:05:18 Desenho de uma solução para corrigir redações do ENEM 15 | - 00:20:39 Uma solução Serverless 16 | - 00:28:18 Agradecendo o Diego, fundador do AWS User Group Blumenau, pela incrível garrafa usada no episódio 17 | - 00:28:55 Juntando tudo na demonstração 18 | - 00:35:56 Juntando tudo no código 19 | - 00:41:08 Evoluindo a solução 20 | - 00:46:26 Demo: Usando as questões do ENEM como base para RAG (Retrieval-augmented generation) 21 | - 00:57:41 Finalização 22 | 23 | ## 🐛 Bugs em produção 24 | 25 | ## 🫰 Dívida técnica 26 | 27 | ## Onde aprender mais 28 | 29 | * [Avaliando LLMs](https://aws.amazon.com/pt/blogs/machine-learning/evaluate-large-language-models-for-quality-and-responsibility/) 30 | * [Avaliação de modelos (em preview)](https://docs.aws.amazon.com/bedrock/latest/userguide/model-evaluation.html) 31 | * [Monitorando aplicativos de IA generativa usando a integração do Amazon Bedrock e do Amazon CloudWatch](https://aws.amazon.com/pt/blogs/mt/monitoring-generative-ai-applications-using-amazon-bedrock-and-amazon-cloudwatch-integration/) 32 | * [Construindo um chat de documentos serverless com AWS Lambda e Amazon Bedrock](https://aws.amazon.com/pt/blogs/compute/building-a-serverless-document-chat-with-aws-lambda-and-amazon-bedrock/?ref=serverlessland) 33 | * [Lex + Kendra + Bedrock](https://aws.amazon.com/pt/blogs/machine-learning/deploy-generative-ai-self-service-question-answering-using-the-qnabot-on-aws-solution-powered-by-amazon-lex-with-amazon-kendra-and-amazon-bedrock/) 34 | * [Converta documentos e media utilizando Inteligencia Artificial](https://aws.amazon.com/pt/blogs/aws-brasil/converta-documentos-e-media-utilizando-inteligencia-artificial/) 35 | 36 | [![AWS PartyRock](../../images/partyrock.jpeg)](https://partyrock.aws/) 37 | **[Bóra construir uma aplicação baseada em IA](https://partyrock.aws/)** 38 | 39 | [![Generative AI with LLMs](../../images/Generative%20AI%20with%20LLMs.jpeg)](https://www.deeplearning.ai/courses/generative-ai-with-llms/) 40 | **[DeepLearning.AI](https://www.deeplearning.ai/courses/generative-ai-with-llms/)** 41 | -------------------------------------------------------------------------------- /episode/8/thumb.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/8/thumb.jpeg -------------------------------------------------------------------------------- /episode/9/README.md: -------------------------------------------------------------------------------- 1 | # Episódio 10 - IA Generativa & Java com Vini Senger 2 | 3 | [![YouTube video thumbnail](./thumb.jpeg)](https://www.youtube.com/watch?v=zkhMc-nzm-k) 4 | **[▶ Assista agora no Youtube!](https://www.youtube.com/watch?v=zkhMc-nzm-k)** 5 | 6 | Neste episódio, convidamos o [Vinicius Senger](https://www.linkedin.com/in/viniciussenger/), Senior Developer Advocate, Specialist Team na AWS, para uma conversa sobre como a IA Generativa está afetando o mundo Java e seus Builders. 7 | 8 | Bóra Buildar! 9 | 10 | ## O que mencionamos durante o episódio 11 | 12 | 00:00:00 Introdução 13 | 00:01:27 O museu da história da tecnologia grega e um robô mecânico para servir vinho 250 AC 14 | 00:07:02 O estado do Java na AWS 15 | 00:15:41 A forma como aprendemos está mudando 16 | 00:24:21 Amazon Q na IDE 17 | 00:31:08 Amazon CodeWhisperer no terminal 18 | 00:33:27 Exemplos de utilização do Amazon Q 19 | 00:33:35 Amazon Q Code Transformation 20 | 00:42:22 Java Foundation Model (FM) Playground 21 | 00:46:00 Quarkus Roblox Workshop 22 | 00:54:07 Finalização 23 | 24 | ## 🐛 Bugs em produção 25 | 26 | ## 🫰 Dívida técnica 27 | 28 | ## Onde aprender mais 29 | 30 | * [AWS Java Academy](https://catalog.workshops.aws/java-academy/en-US) 31 | * [Java Foundations Model Playground (Github)](https://github.com/build-on-aws/java-fm-playground) 32 | * [Lessons Learned from Upgrading and Modernizing a Massive JVM Codebase at AWS by Volker Simonis](https://www.youtube.com/watch?v=7DKQ8OdGfmk) 33 | * [AWS Java Links](https://www.linkedin.com/posts/viniciussenger_activity-7128135806795333632-KGY_/?utm_source=share) 34 | 35 | [![AWS PartyRock](../../images/partyrock.jpeg)](https://partyrock.aws/) 36 | **[Bóra construir uma aplicação baseada em IA](https://partyrock.aws/)** 37 | 38 | [![Generative AI with LLMs](../../images/Generative%20AI%20with%20LLMs.jpeg)](https://www.deeplearning.ai/courses/generative-ai-with-llms/) 39 | **[DeepLearning.AI](https://www.deeplearning.ai/courses/generative-ai-with-llms/)** 40 | -------------------------------------------------------------------------------- /episode/9/thumb.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/episode/9/thumb.jpeg -------------------------------------------------------------------------------- /images/Generative AI with LLMs.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/images/Generative AI with LLMs.jpeg -------------------------------------------------------------------------------- /images/architecture s02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/images/architecture s02.png -------------------------------------------------------------------------------- /images/partyrock.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/images/partyrock.jpeg -------------------------------------------------------------------------------- /logo.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/logo.jpeg -------------------------------------------------------------------------------- /mug/0/10 anos JoinCommunity.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/mug/0/10 anos JoinCommunity.jpeg -------------------------------------------------------------------------------- /mug/10/palla mexicano.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/mug/10/palla mexicano.jpg -------------------------------------------------------------------------------- /mug/11/palla-o-escolhido-mexicano.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/mug/11/palla-o-escolhido-mexicano.jpeg -------------------------------------------------------------------------------- /mug/12/rogadx.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/mug/12/rogadx.jpeg -------------------------------------------------------------------------------- /mug/13/campus-party-nordeste-aws-ug-piaui.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/mug/13/campus-party-nordeste-aws-ug-piaui.jpeg -------------------------------------------------------------------------------- /mug/14/aws-ug-foz.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/mug/14/aws-ug-foz.jpeg -------------------------------------------------------------------------------- /mug/15/edimburgo.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/mug/15/edimburgo.jpeg -------------------------------------------------------------------------------- /mug/16/awscommunitydaybrasil2024.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/mug/16/awscommunitydaybrasil2024.jpeg -------------------------------------------------------------------------------- /mug/2/Serverless Days São Paulo 2023.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/mug/2/Serverless Days São Paulo 2023.jpeg -------------------------------------------------------------------------------- /mug/3/may the force be with you.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/mug/3/may the force be with you.jpg -------------------------------------------------------------------------------- /mug/4/devops days belem 2023.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/mug/4/devops days belem 2023.jpg -------------------------------------------------------------------------------- /mug/5/smile.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/mug/5/smile.jpg -------------------------------------------------------------------------------- /mug/6/hamilton.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/mug/6/hamilton.jpg -------------------------------------------------------------------------------- /mug/8/work hard have fun make history.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/mug/8/work hard have fun make history.jpeg -------------------------------------------------------------------------------- /mug/9/Cloud Summit Cerrado 2021.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AWS-Cloud-Drops-Builders-Edition/show/f4a99365337f5cebee6e334a77d0ca9a23dab40f/mug/9/Cloud Summit Cerrado 2021.jpg --------------------------------------------------------------------------------