E aí eu vou trazer aqui para vocês qual que é o nosso principal gol hoje que eu quero poder trazer e mostrar aqui para vocês beleza então deixa eu só organizar a minha tela aqui para que nós possamos começar de buenas. Aqui, vamos lá. Deixa eu olhar esse cara. Aqui. E vamos ver se o Zoom compartilha aqui aqui galera, porque senão eu vou precisar fazer um curso de zoom pra eu aprender a compartilhar a tela, vamos lá então essa screen e aqui o escala hidro, tá todo mundo vendo a minha tela aí né sim show de bola, eu vou pedir pro Leonardo mutar a galera e depois o Scalidro. Tá todo mundo vendo a minha tela aí, né? Sim. Show de bola. Eu vou pedir pro Leonan mutar a galera e depois... Leonan, tinha uma galera que tava com a mão levantada ontem. Fala o nome das pessoas aí, eles já levantam as mãos pra garantir que não vai perder a ordem no meio das perguntas aí. Tem que botar a câmera também, fechou? Então, maravilha. Galera, vamos lá. Sejam muito bem-vindos e bem-vindas aqui novamente, tá? A gente está no nosso evento da Full Psycho Tech Week IA, onde o nosso principal objetivo aqui é trazer para vocês dois pontos de vista do que a gente acredita que são coisas extremamente importantes para a redefinição, inclusive, da nossa profissão, de como que a gente vai trabalhar daqui para frente. Então, dois pontos principais que a gente está colocando é que a forma de como a gente desenvolveu o software e a gente desenvolve software está mudando, já mudou na realidade. E o segundo ponto é o tipo de software que a gente vai desenvolver daqui para frente também mudou. Então, o objetivo durante esses três dias é que a gente consiga dar esse panorama geral, trazendo conceitos, mostrando coisas na prática, tanto de como que eu desenvolvo software nos dias de hoje, ou seja, qual que é o meu workflow adequado para eu conseguir, por exemplo, ou seja, qual que é o meu workflow adequado para eu conseguir, por exemplo, trabalhar com cursor, trabalhar com windsurf, trabalhar com VS Code em modo agente, trabalhar desenvolvendo, tendo um pouco mais de controle, um pouco menos de controle. Então, o ponto principal que eu quero que vocês se liguem é que existem formas que são muito mais produtivas e muito mais assertivas nos dias de hoje para a gente conseguir desenvolver. E, ao mesmo tempo, os tipos de aplicação que a gente desenvolve também mudam. Então, hoje, eu vou começar, inclusive, trazer aqui para vocês exemplos de aplicação que, nos dias de hoje aí são importantes e que não vai dar muito pra fugir desses tipos de coisa, tá? Então, antes de eu falar sobre o que, né, especificamente a gente vai fazer hoje, eu queria rapidamente voltar aqui e deixar esse contexto claro pra todo mundo. Galera, quando a gente tá falando de A, a gente tá falando de um universo enorme. Tá? É que nem falar que trabalha em TI. Mas hoje em dia, nós desenvolvedores, não são pessoas que treinam modelos, trabalham com ciência de dados, classificação, esses montes de coisas. A gente também não é de infraestrutura que fica mexendo com GPU, TPU, trabalhando com todos esses detalhes de infraestrutura. O que a gente está fazendo aqui, e o nosso foco aqui, é pensar no desenvolvedor. Qual é o nosso papel para desenvolver software e como desenvolver software nos dias de hoje. Normalmente, quando a gente vai estudar qualquer coisa de A, a gente começa indo por aqui. Machine learning, deep learning, e não sei o que, e não sei o que. E, cara, é uma bolha totalmente diferente de quem está desenvolvendo um software back-end para um banco. Entendeu? Então, o grande ponto aqui é a gente entender que hoje em dia existe mais um layer em cima da inteligência artificial que é para a parte de application development, ou seja, para você desenvolver aplicações. Então, a gente pode trabalhar com o IA como ferramenta e IA como projeto para ser desenvolvido. E na hora que a gente vai fazer isso, o buraco é muito mais embaixo do que necessariamente fazer uma chamada na API do chat GPT e ter um resultado. Quando a gente vai desenvolver software, realmente, a gente tem problemas muito maiores para trabalhar com IA que nós não tínhamos antes e que hoje a gente precisa ter conhecimento. A gente precisa ter essa noção, tá? Desde a parte de análise de risco, ver como é que o agente, a resposta voltou, como é que é o comportamento, como é a parte de análise de risco, ver como é que o agente, a resposta voltou, como é que é o comportamento, como é a parte de segurança, a parte de prompt injection, a gente acabou falando bastante disso ontem, análise de modelo, qualidade, entender custo. Você não pode sair desenvolvendo qualquer coisa, de qualquer jeito, você pode falir a sua empresa com a parte de utilização. Então, a grande sacada que a gente falou muito ontem são sobre esses conceitos, mas, ao mesmo tempo, pontos importantes que a gente não pode levar e deixar de levar em consideração. Principalmente, como pedir para IA. Que nem fazer exercício. Todo mundo sabe o que tem que fazer, mas não faz. Prompt Engineering é a mesma coisa. A gente sabe que a gente tem que pedir do jeito certo pra IA, mas ninguém pede do jeito certo, porque acaba não estudando, vamos dizer assim, essa parte aí. E ontem a gente teve, a gente passou de uma forma até que bem legal, como é que a gente trabalha com os tipos de prompt, a gente trouxe os tipos de prompt principais, a gente mostrou gerador de documentação, gerador da ADR, a gente fez uma mesa redonda tech, mostrando diversos especialistas discutindo e chegando num consenso pra gente conseguir explorar ideias. Então, e depois disso, a gente começou a focar bastante em desenvolvimento. Então, eu acabei mostrando aqui também formas, workflows de como que a gente pode começar a trabalhar. Então, hoje, o nosso objetivo aqui é a gente conseguir tratar duas coisas específicas. E por isso que eu falei para vocês que a nossa sessão hoje, ela não tende a ser uma sessão longa, tá? Mas eu quero que ela seja uma sessão que gere um universo de possibilidades ali para vocês, tá? O meu objetivo aqui não é desenvolver um software completo. Ontem a gente deu até exemplos. A gente fez um rate limiter e etc. Então, o meu objetivo não é desenvolver um software completo. Mas sim, o meu objetivo não é desenvolver um software completo, mas sim, o meu objetivo está em mostrar para vocês as possibilidades e workflows que podem te ajudar a fazer você não perder, vamos dizer, a paciência com o IA e fazer ela ficar maluca e gerando coisas que a gente faz a gente perder controle do nosso código. Então, hoje o nosso objetivo, deixa eu botar uma marcação aqui, o nosso principal objetivo hoje aqui vai ser essencialmente falar em duas coisas. Um, workflow de desenvolvimento. E nesse workflow de desenvolvimento, a gente vai incluir os conceitos principais, a gente vai falar especificamente do cursor e os principais recursos que ele possui e que talvez você não saiba e que faz muita diferença. E eu vou também entrar num outro conceito que a gente vai começar a colocar uma perninha, vamos dizer ali, no mundo de desenvolvimento de software que vai ter IA. O software que a gente desenvolve que vai se integrar com o IA. E nesse ponto, eu não estou ainda falando de agentes de IA. A gente vai falar sobre o desenvolvimento de software que integra com IA. Ele pode ser ou não ser um agente de IA. A gente vai falar sobre agentes também, principalmente amanhã. Então, esse é um ponto que a gente vai falar. E, naturalmente, quando a gente fizer isso, eu criei aqui alguns exemplos que são interessantes, na real, para a gente falar sobre alguns conceitos como o REG. Eu não sei se alguém já ouviu falar ou não ouviu falar, de forma geral. E, dentro desses conceitos, a genteG, eu não sei se alguém já ouviu falar ou não ouviu falar de forma geral, e dentro desses conceitos a gente vai também falar sobre banco de dados vetoriais tá vamos falar mais especificamente aqui sobre o Pinecon, que é um banco de dados fantástico, vetorial, inclusive eu vou mostrar exemplos desse cara aqui na prática, né? Vamos falar também sobre embeddings e a gente também vai falar como estruturar informações para a IA. No final das contas, o que eu quero mostrar aqui pra vocês é como que eu posso, por exemplo, pegar a base de conhecimento que tem na minha empresa, enfiar isso num banco de dados e na hora que eu quiser fazer alguma pergunta, por exemplo, eu conseguir pegar esses dados. E quando eu digo pergunta, não é um chatbot. Pode ser qualquer coisa. Pode ser, inclusive, sei lá, um agente se comunicando com outro. Ou um back-end, ou você disponibiliza uma API que retorna um resultado. Não interessa a forma de como isso acaba trabalhando. Eu acho que o ponto mais importante aqui é vocês entenderem quais são esses conceitos que estão por trás desses bancos de dados. E, por último, a gente vai falar, ter uma introdução sobre MCP, que é o Model Context Protocol. Então, a gente vai falar sobre esses pontos aqui, galera. Então, vai ter bastante coisa de forma geral prática, porque eu vou ter que mostrar essas coisas funcionando, mas eu acho que o ponto principal é sempre você entender o espírito da coisa, você entender a ideia do que eu estou querendo trabalhar, porque eu não vou, obviamente, em pouco tempo, conseguir pegar na mão de todo mundo e vamos desenvolver um software 100% do zero e com cada detalhezinho, porque a gente vai perceber que existem diversos workflows para diversos casos de uso para a gente programar utilizando IA. Então, hoje a gente vai falar sobre workflow, a gente vai falar sobre desenvolvimento, mas a gente vai começar a entrar também e ter contato com aplicações que utilizam IA para existir e como que eu começo a trabalhar com persistência de dados e esses tipos de bancos de dados. E o que eu tô falando aqui, tá, galera? Não tem muita aquela pegada de ciência de dados, todas aquelas coisas que não estão na nossa bolha. O que eu vou mostrar aqui pra vocês são coisas realmente práticas que definitivamente vocês, como devs, vão ter que aprender de uma forma ou de outra. Aqui, fazendo o nosso MBA, assistindo vídeo no YouTube, com o seu colega de trabalho, mas o fato é que eu duvido absurdamente que ninguém aqui não vai ter que desenvolver uma aplicação que integre com o IA ou que não vai ter que desenvolver um agente de IA aí nos próximos meses. Quem aqui, inclusive, galera, deixa eu olhar até no chat, porque eu não estou com o chat aberto aqui para mim. Quem, inclusive, aqui, galera, já está tendo ou já teve que fazer integrações com inteligência artificial nos dias de hoje, galera? artificial nos dias de hoje, galera? Aí, já tem uma galera aí que está tendo que... Já está trabalhando com isso. Tem gente que já fez e tudo mais. Show de bola. Então, é o seguinte. A gente tem que lembrar que uma coisa é desenvolver um software que fala com o IA e a outra coisa é desenvolver um agente de IA. E isso aí também gera uma confusão danada na cabeça da galera, e a gente vai resolver e tirar todas as dúvidas sobre isso, e amanhã a gente vai mostrar, inclusive, bastante isso aí na prática. Hoje a gente já vai ver isso, inclusive. Fechou? Pessoal, antes de eu continuar ontem eu prometi que eu ia tirar algumas dúvidas de algumas pessoas que tinham levantado a mão e eu lembro do Fernando, do Ítalo, caras liguem a câmera por favor só para eu poder falar aí com vocês então o que eu quero fazer é o seguinte a galera aí que tava, poder tirar as dúvidas antes de eu começar a ir focar no conteúdo e começar a trabalhar, beleza? Mas o lance aqui é importante a gente ter essa ciência, galera, que a gente tem que desenvolver de um jeito, mudar a forma de como a gente desenvolve e mudar o que a gente desenvolve. Fechou? Fernando, cara, consegue ligar a câmera aí, cara? Eu tô tentando criar meio que... Não digo essa regra, mas pra não ficar falando no escuro aí, de forma geral. Fala aí, meu querido. Como é que você tá? Firme e forte? Galera, só pra vocês saberem, tá? O Fernando Game of Thrones aí, que toda vez é... Toda hora eu esqueço, cara, o final do seu sobrenome. Cara, tá direto nos nossos eventos, é aluno nosso, se eu não me engano se inscreveu, inclusive, no nosso MBA aí, e levantou a mão, cara. Manda ver, cara. Ontem ele não teve tempo, a nossa sessão de quatro horas acabou antes, muito antes dele poder tirar dúvida, então não deu muito bom. Beleza. Duas coisinhas bem simples. Uma que eu vi que você fala muito do cursor. Ali na minha empresa, a gente está querendo implementar essa parte de IA, né? Está começando a trazer para todo mundo o curso e quer colocar também no código em si, tanto para ajudar como para desenvolver coisas com IA. E uma dúvida é essa. A gente estava na dúvida do copilote, do cursor ou de algum outro. E eu vejo que você usa muito cursor. Tem algum motivo disso ou não? E uma segunda coisinha que você falou muito do ADK, você sempre fala dele. Eu fui até pegar para instalar aqui, só queria saber se você começa lá no WSL2 ou então direto no Windows, ou é melhor você pegar um Linux mesmo e pronto? Bom, vamos lá. Uma dúvida de cada vez. Vamos lá. A primeira pergunta foi sobre o Cursor, né? Bom, pessoal, o seguinte. Hoje em dia, a gente tem, na minha opinião, quatro caras que são bem fortes para a gente programar desenvolvendo com o IA. Um cara é o VSCode com o GitHub Copilot. Ele é muito bom, funciona muito bem. Muitas empresas já têm, inclusive, contrato com o Microsoft, com o GitHub, etc. Então, naturalmente, nos planos, nas coisas, já as empresas grandes, conheço muita empresa grande, a galera que está trabalhando em empresa grande, que já acaba trabalhando com o GitHub e Copilot. GitHub e Copilot é bom? Muito bom, de forma geral. Mas, o que acontece? Como que eu posso dizer? Acabou-se demorando um pouco para ele gerar alguns recursos que algumas ideias, como o Cursor e o WindSurf, por exemplo, já implementaram. Então, por exemplo, você trabalhar em modo agente com eles, já tinha faz um bom tempo, e o VS Code, o Cucopilot, você tinha que ver só na versão preview, para depois ir para essa versão. Então, o que eu sinto é o seguinte, em algum momento essas ferramentas vão ficar cada vez mais parecidas e daí vai virar meio que um pouco de gosto pessoal, tá? Mas atualmente, tá? E novamente, tá galera? Eu não fico todo dia abrindo todas as IDEs pra vendo todos os detalhes, tá? Você vai acabando ganhando familiaridade e daí você acaba trabalhando uma mais do que a outra, tá? Mas o lance é que, de forma geral, o que eu percebo é que, atualmente, o Cursor saiu bem na frente do VS Code com o GitHub e o Copilot, tá? Obviamente, Microsoft, GitHub e tudo mais, eles estão correndo atrás disso e acredito que é uma questão de tempo para eles terem muitos recursos bacanas aí também, tá? De forma geral, o que acontece? Além do Cursor, que na minha opinião a gente vai falar especificamente dele porque é o que eu estou mais utilizando, tá, galera? Mas existe um outro camarada que é chamado de Windsurf, que ela é muito boa mesmo, tá? A história desses caras, depois eu posso até tentar mandar um podcast para vocês com o fundador da Windsurf, mas basicamente esses caras já trabalhavam com IA e o objetivo deles não era necessariamente desenvolver IDE, eles acabaram entrando nesse mundo, mas eles desenvolviam modelos. Então, uma coisa bem bacana do Windsurf é que eles têm modelos próprios de codificação, inclusive muito bons, que acaba diminuindo muito o custo na hora de você conseguir desenvolver, porque tem coisas deles que são bem gratuitas ali. E eles têm muitos recursos também, muito parecidos, inclusive, com o Cursor e etc. Mas eu, pessoalmente, hoje... Ah, e obviamente, você tem a JetBrains, que Eu, pessoalmente, hoje... Ah, e obviamente, você tem a JetBrains, que consegue integrar diversos desses plugins para você conseguir trabalhar. Eu acho que JetBrains tem histórico, tem história, é uma empresa fantástica. Então, também, eu acho que não tem muito erro hoje em dia de qual ideia que você vai pegar. O ponto que você tem que levar em consideração, e principalmente quando você vai levar isso para a empresa, é que essas paradas são pagas. Então, vale a pena você fazer uma análise de custo e ver no meio de tudo isso quanto fica a brincadeira ali para a empresa, quais são os limites e tudo mais. Eles têm planos empresariais. Outro ponto importante em relação a essas IDEs é a forma, inclusive, de cobrança. O Cursor mudou a forma de cobrança deles faz pouco tempo, por exemplo. Eles trabalhavam de uma outra forma. Hoje, eles mudaram o processo de precificação. Então, assim, eu acho que não tem muito para onde errar. Eu estou usando o Cursor e estou acompanhando ele bem de perto e tenho gostado. Eu não fico trocando toda hora de IDE. De vez em quando olho uma, olho outra, às vezes eu faço um projeto usando o Windsurf, que melhorou muito também, às vezes eu faço com o GitHub e o Copilot, mas, aparentemente, para mim, com o que eu mais me adaptei e utilizo é o Cursor, mas grande parte do que tem no Cursor tem nas outras, eu acredito que o conceito seja o mesmo, e aí você apenas consegue replicar a ideia. Quando você pega a ideia de uma das IDEs, você vai perceber que é muito parecido aí no meio das coisas, tá? Segunda pergunta é ADK, tá? O ADK é o Agent Development Kit da Google. Eu vou mostrar ele na prática, inclusive amanhã. Eu vou mostrar código, vou mostrar aplicações multi-agente. Tem um vídeo no YouTube que eu gravei mostrando o ADK, eu vou mostrar oicações multi-agente. Tem um vídeo no YouTube que eu gravei mostrando o ADK, eu vou mostrar o fonte dessa aplicação, explicando todos esses principais conceitos. O ADK, cara, ele é desenvolvido em Python. Então, é independente se você vai trabalhar com Linux ou com Windows, com WSL ou qualquer coisa desse tipo. Basicamente, é Python. Você pode rodar dentro de container, fora de container. Você usa o Virtual Env lá, o pai Env da vida, pra você conseguir trabalhar e colocar. Então ele é bem independente do sistema operacional. Ele tem um CLI que você também consegue instalar. Então, cara, de forma geral, é bem diferente, tá, Fernando? Pra você brincar com esse cara. Fechou? Beleza, obrigado, viu? Maravilha, galera. E só pra vocês saberem, se eu não me engano, agora a OpenAI, ela comprou a Windsurf por uma graninha bem baixa. E se vocês souberem, dêem uma pesquisada, vocês vão ver como que essas IDEs, elas estão entrando, elas estão virando peça-chave nesse mundo que a gente está trabalhando todo mundo está falando assim nossa, mas na hora que a Microsoft está botando dinheiro no GitHub Copilot esse cara vai engolir todo mundo cara, não é tão assim se fosse assim por exemplo, a OpenAI não estaria comprando a Windsurf, por exemplo então, caras, essas ideias especializadas em IA, elas estão sendo muito bem feitas. Então, assim, acho que a gente não está muito naquele mundo que a Microsoft vai engolir todo mundo e coisas desse tipo. Eu não acho que isso vai acontecer. Eu acho que tem uma concorrência muito boa e é bom pra gente, no final das contas. Fechou? Mar concorrência muito boa e é bom para a gente no final das contas. Fechou? Maravilha, galera. Então, eu acho que essa é uma parada interessante. Vamos lá para o Ítalo. Fala aí, Ítalo, beleza? Beleza? Boa noite. Está me ouvindo aí direitinho? Opa, estou ouvindo sim. Ah, perfeito. Wesley, aqui acho que a minha dúvida é mais em relação a uma orientação, que eu estou atriculado no MBA de arquitetura de vocês, tenho gostado bastante e tenho realmente me interessado bastante sobre esse MBA com IA também, arquitetura com IA. A minha dúvida é, você acha que dá para conciliar os dois, que eu deveria primeiro focar em um para entender melhor a arquitetura, depois aproveitar com o IA? Que eu vejo com esse arquitetura com o IA, que tem muitos recursos que talvez eu possa estar perdendo, igual você apresentou ontem a mesa tech, para alguns debates de arquitetura, para entender melhor, até mesmo para facilitar nos estudos mesmo do MBA de arquitetura. Você acha que alguma coisa que seria muito overwhelming, tipo, muito conteúdo que não daria pra conciliar, foca primeiro em um, depois você pega e puxa o outro. Você acha que uma seria complementar a outra. Mas assim, ciclobrismo no caso aqui, só pra entender mesmo. Claro, claro. Cara, vamos lá, só pra tentar, inclusive, deixar bem claro. O nosso MBA em arququitetura de Software com IA, a gente vai... Nosso MBA de Arquitetura de Software, que é o Arquitetura Full Cycle, que é o que você está fazendo, nós estamos trabalhando, inclusive, em mudar a parte da emenda dele e começar a adicionar conteúdos nele de IA também. Obviamente, não é um MBA focado em A. Então, obviamente, ele não vai ter o nível de profundidade que o MBA em engenharia de software com IA tem. O foco dele está muito mais na parte de arquitetura de software, solução. A pegada do MBA, ele é bem diferente, tá? Mas a gente vai adicionar esses tipos de conteúdo de IA nele, porque não tem como não falar de A num MBA de forma geral hoje em dia, tá? Sobre você conseguir acompanhar os dois. Cara, essa é uma dúvida recorrente, não é nem recorrente dos dois MBAs, tá? Tem gente, a gente tem aluno que faz o MBA e tá fazendo a pós de Tech Lead, tem gente que tá fazendo o de Go e o MBA ao mesmo tempo, mas, tá? Mas, isso, na minha opinião, é extremamente pessoal, tá? Mas isso, na minha opinião, é extremamente pessoal, tá? É extremamente pessoal porque depende muito do seu tempo, tá? Porque se eu chegar e falar pra você, ah, cara, pega uma horinha aí por dia, etc, faz os dois, etc, cara, pra mim seria o melhor dos mundos porque eu tô vendendo, né? Então quanto mais curso você contratar de mim é melhor no final das contas. Mas, cara, na real não é assim, se você tá com pouco tempo pra se dedicar e coisas desse tipo, tá eu focaria em um primeiro, tá e depois eu iria pro outro, agora se você vê que você tem uma disponibilidade de tempo maior, cara na minha opinião dá pra acompanhar sim, tá porque a ideia do MBA, né, a gente sabe que todo mundo trabalha, a gente sabe que todo mundo tem uma vida corrida, então a gente não tenta sobrecarregar, você está fazendo o nosso MBA, você já deve ter se tocado de como que é. Por outro lado, tudo depende de foco, tempo, o quão determinado você está em realmente fazer as duas coisas. Então, depende demais aí de você. É possível acompanhar os dois? É porque a gente tem alunos que fazem um MBA e outra pós com a gente e conseguem acompanhar. Mas assim, essas pessoas estão dispostas a fazer, tá? Então, não existe uma resposta sim ou não. Existe a resposta que tá todo mundo acostumado a falar na hora que vai desenvolver software, que é o famoso depende, tá? Então, cara, analisa o seu tempo, tá? Em relação a foco e assuntos, eles não vão complicar, porque eles acabam indo por caminhos diferentes, tá? Tem uma convergência, mas eles vão por caminhos diferentes. Mas, de forma geral, vai depender muito do seu tempo, tá? Fechou? E temos o Paulo aí, e daí a gente vai pra prática, galera. Maravilha? Oi, Wesley, boa noite. Fala aí, cara, beleza? Beleza. É, só complementando, eu ia fazer essa mesma pergunta que ele fez, por acaso. Eu vi que a emenda é bem parecida com a parte que eu estou fazendo, né? Então... Cara, é muito diferente a emenda, cara. É muito, mas muito diferente. O que tem mais de convergência é a parte de arquitetura. O resto é bem diferente, cara. Tenta colocar meio que pau a pau, olho a olho aqui. Deixa eu até depois... Opa, espera um pouquinho que eu já estou dando spoiler aqui do meu código. Espera aí aqui para vocês. Galera, só para quem chegou e está e pode ter dúvida sobre o que a gente está falando, eu vou até deixar o link rapidamente aqui para vocês, tá? Deixa eu até copiar. Eu sou de arquitetura de software. Show. Quer ver, ó? Eu vou colar aqui no chat, aí todo mundo consegue saber do que a gente está falando, tá? Eu vou abrir rapidinho. Caras, o lance é o seguinte. Esse aqui é o MBA em engenharia de software com o IA, tá? O foco dele, tá? Basicamente, é ter a IA. O foco dele, basicamente, é ter a IA no meio, e a gente pensar num mundo de arquitetura de software que a IA faz parte nos dias de hoje, ou seja, é a arquitetura de software especificamente, no MBA que você está fazendo, é um MBA em arquitetura full cycle, a gente foca muito em arquitetura de software e arquitetura de solução, e a gente foca muito em arquitetura de software e arquitetura de solução e a gente pega as coisas muito mais em alto nível. Aqui, a gente foca em metodologia e workflow para desenvolvimento. Para desenvolvimento, ou seja, como que eu consigo ser mais produtivo utilizando IA, usando workflows, ferramentas, metodologias e tudo mais. Aqui, a gente tem um foco em desenvolvimento de aplicações e agentes de IA, ou seja, criar aplicações que se integram com IA. E a parte de DevOps SRE aqui é focada em como eu faço com que essas partes façam parte do fluxo no processo de IA, ou seja, eu estou trabalhando com uma pipeline de CICD, na hora que ela fizer isso, eu vou fazer as verificações com IA de segurança, vou pegar os logs de observabilidade, vou gerar isso no GitHub, eu vou entender quais são as métricas que eu preciso, ou seja, a IA, ela está por trás desses tipos de coisa, então, quando a gente olha, inclusive, em conteúdo programático, eu acho que o conteúdo que tem em convergência é o fundamento de arquitetura de software, mas ele tem uma parte que fala de IA, mas o restante, aqui a gente está falando o fundamento de IA generativa, prompt engineering, fundamento de arquitetura de software com IA, isso aí é o mais parecido que tem no MBA que você está fazendo, tá? Depois, design docs com IA, focado no mundo da IA, na realidade desenvolvimento de software com IA, que são essas integrações e muito do que eu vou mostrar hoje aqui, desenvolvimento em modo agente, novamente é a gente conseguir desenvolver com muita velocidade e intencionalidade em modo agente para facilitar a nossa vida depois a gente tem desenvolvimento de aplicações com IA, ou seja, como que eu integro IA nas aplicações que eu tenho hoje na minha empresa. E depois a gente tem desenvolvimento de agentes, que é diferente de aplicações. Amanhã a gente vai falar bastante de agentes e basicamente vai ser o software que todo mundo daqui para frente vai ter que saber desenvolver. Basicamente é isso. E protocol que todo mundo daqui para frente vai ter que saber desenvolver. Basicamente, é isso. E protocolos de comunicação focado em IA. A gente vai falar de MCP, a gente vai falar de A2A, a gente vai falar de tools, a gente vai falar de bastante coisa. E a parte de DevOps e SRE focado em IA. Processos automatizados de deploy, geração de manifestos de terraform, monitoramento de Kubernetes. Mas perceba que eu não vou ensinar Kubernetes. Eu não vou ensinar Terraform. Eu não vou ensinar esses tipos de coisa como no outro MBA você está fazendo. Então, o foco aqui é especificamente em aplicar essas coisas com IA. Então, por isso que eu digo que é bem diferente a grade de uma coisa com a outra. A parte de marketing pessoal, empreendedorismo, etc. é exatamente a mesma, tá? Só para você saber. Fechou, galera? E se vocês quiserem saber mais, cliquem aqui, aproveitando já o Jabá. No final dessa semana, a gente vai mudar o lote, o valor vai subir. Então, aproveitem aí para vocês. Maravilha? Galera, vamos agora para o que interessa, vamos dizer. Não que o MBA não interesse. Para mim interessa bastante e para muita gente também. Mas o nosso foco aqui está em falar bastante desse workflow e depois falar de softwares integrando aqui com inteligência artificial até a gente chegar nesse conceito aqui de RAG. Eu acho que muita gente já ouviu falar, mas nunca fez ou não pegou a manha de como que isso funciona aí na prática, tá? Então, vai ser bem interessante. Eu vou mostrar pra vocês. É algo que a gente vê, a gente entende a ideia, mas nunca, às vezes, a gente olha e entende as minúcias do negócio. Então, hoje eu vou querer abrir um pouco a sua mente em relação a REG. Quem aqui não sabe, inclusive, o que é reggae, galera? Deixa-me saber. Show. Beleza. Ótimo que vocês estão falando que não sabem. Aí vocês vão entender bem como é que essa parada funciona e eu acredito que vocês vão gostar bastante da ideia. Fechou? Tem gente que vai falando que é estilo musical. Mas vamos lá. Galera, seguinte então, tá? Vamos focar aqui em workflow de desenvolvimento. Foi mais ou menos dali que a gente parou ontem, tá? Quando a gente está falando em workflow de desenvolvimento, basicamente é a gente conseguir entender como que eu desenvolvo software hoje em dia com os recursos de ar que eu tenho na minha mão. E quando eu estou falando isso, eu não estou falando apenas no cursor, mas sim no que está por trás da forma como eu trabalho com essas aplicações. E a primeira coisa que eu preciso que vocês entendam é que para trabalhar de uma forma, sem passar raiva com o IA, eu acredito que todo mundo sente que está mais produtivo, mas diversas vezes acaba se pegando em problemas com o IA, a gente tem que entender que nós temos diferentes formatos de trabalho. A gente tem, por exemplo, workflows, que eu vou trabalhar com projetos que eu estou começando do zero. Eu tenho workflows para projetos que já existem. Aí, esse meu workflow pode determinar e ser mudado de acordo com o tamanho do meu código. Uma coisa é eu trabalhar com o IA numa aplicação que tem, sei lá, 100 arquivos. Outra coisa é eu trabalhar com uma aplicação que tem mil arquivos. A ideia é a mesma, mas muda o processo todo, entende? E também, um outro ponto importante é em relação à documentação. Então, isso aí que é um dos pontos que a gente tem que se ligar também. Por quê? Porque a gente tem projetos que têm documentação, uma documentação mínima, e tem projetos que a gente não tem nenhum README para ajudar a gente. Quem aqui trabalha em um projeto que nem README tem, galera? Pegou em um projeto aí tão de cabeça para baixo que nem README veio no projeto. Até para configurar o projeto para rodar na sua máquina, você acabou sofrendo. dar na sua máquina, você acabou sofrendo, né? Então, a primeira coisa que a gente tem que entender é a contextualização, tá? Ontem eu dei alguns exemplos para vocês de contextualização, inclusive eu mostrei, deixa eu ver se eu estou aberto aqui o meu Edge, né? aqui o meu Edge, onde eu acabei fazendo, aqui foi a mesa tech, aqui tinha a parte de contextualização, mas eu posso mostrar a contextualização aqui no meu cursor também. Mas, basicamente, a contextualização é algo que vai dar uma visão geral sobre o projeto. E isso é importante por quê? Um, é importante para a sua equipe, para ela entender mais sobre o projeto. Mas hoje a gente está falando especificamente sobre IA. Então, quando eu estou contextualizando, eu basicamente estou criando um documento que eu vou falar para IA sobre do que se trata o meu projeto. Mas, novamente, quando eu estou em projetos muito grandes, o que começa a acontecer aí na nossa vida? A gente começa a ter um contexto muito raso. Vocês concordam comigo, galera? Se eu tenho um projeto muito grande, cara, não é um documento que vai salvar a minha vida e fazer com que a IA me ajude pra caramba. Então, quando a gente começa a entrar nesse ponto, a gente começa a cair em relação a entender como que a sua aplicação está modularizada. E eu chamei isso de módulo entre aspas, tá? Porque cada pessoa organiza a aplicação de diversas formas. Tem gente que trabalha com monohépo, tem gente que trabalha com diversas camadas, a galera de .NET tem a Solutions. Então, tem muita gente, muita forma de trabalhar. Mas eu acho que o mais importante aqui é vocês conseguirem entender que para cada parte do meu projeto, tá? Que acabe mudando o domínio daquilo que acaba se tratando, eu posso ter uma contextualização ali para mim. Deixa eu abrir o meu cursor para a gente fazer um esboço dessa parada aqui. Deixa eu pegar a Interworkflow, que é o que eu estava mexendo ontem aqui com vocês. Deixa eu tirar a carinha de vocês aqui que está na minha tela. Eu não consigo ver a parada aqui Então, primeira coisa que a gente tem que aceitar que dói menos, é que a gente vai ter que começar a lidar com documentação daqui pra frente, tá? Significa que eu não consigo criar projetos agora sem documentação com o IA? Não, não significa nada disso O que a gente tem que entender e que eu falei bastante hoje, bastante ontem, sobre isso, tá? Basicamente, e esse gráfico, eu faço sempre, quem está acostumado a participar comigo de algumas lives, ou alguma coisa, vê que eu sempre acabo falando bastante nisso aqui. Eu tenho aqui o tempo, tá? E aqui eu tenho a quantidade de código. Isso aqui é um ponto importante para vocês conseguirem se ligar. O que acontece? Conforme o meu software anda, isso aqui vai aumentando ao longo do tempo. E isso aqui que eu estou dizendo é chamado de complexidade. Quanto mais arquivo, é mais complexo. Quanto mais classes, quanto mais módulos, quanto mais qualquer coisa, é mais complexo. O que a gente faz no dia a dia, no nosso projeto, é, no final das contas, tentar diminuir a complexidade ao longo do tempo, para que eu não chegue numa hora que eu vou ter que refazer o meu software inteiro. E aí é o problema quando a empresa perde mais dinheiro. Então, quando a gente está falando em desenvolver um software de forma, vamos dizer, profissional, é a gente brigar o tempo todo, tempo com quantidade de código, com quantidade de features, não interessa o que você queira colocar aqui. Mas o mais importante é você entender em relação ao nível de complexidade. Porque quanto maior a complexidade, eu começo a ter problemas no meio da história, que é risco de mudança. E isso faz com que eu comece a demorar para entregar. E quando eu demoro para fazer deploy, eu tenho um acúmulo de mudanças. E quando eu tenho um acúmulo de mudança, mais eu demoro para fazer deploy, quando dá erro eu tenho que voltar tudo. A nossa briga, galera, independente de A, está nesse gráfico. Complexidade ao longo do tempo. Então, se você quer fazer um projeto que vai durar uma semana, eu não vou falar para você criar um monte de documentação. Mas, você pensando ao longo do tempo, e é essa visão que eu quero que vocês tenham, galera. A gente trabalhando com IA, a gente vai ter foco muito mais em arquitetura, entender a arquitetura de software, e entender esses pontos que eu estou colocando do que necessariamente entender de framework e código. Então, quando a gente começa pensando nisso, a gente pode pensar o que faz com que eu consiga diminuir meu risco, conseguir entregar mais rápido, evitar cúmulo de mudança para diminuir a complexidade do meu código. Uma das coisas que é muito clara que a gente tem é testes automatizados. Quem aqui tem coragem hoje em dia de trabalhar sem testes automatizados? E fazer uma mudança grande no sistema? Fazer uma refaturação grande no sistema? Então, é muito complexo. Não dá para trabalhar sem teste, cara. Se você está trabalhando sem teste hoje, meu amigo, então, é muito complexo, tá? Não dá para trabalhar sem teste, cara. Se você está trabalhando sem teste hoje, meu amigo, puxão de orelha para você, e se é a sua empresa, puxão de orelha na sua empresa também, cara. Não dá para trabalhar sem teste, simplesmente não dá. Mas, o que acontece? O teste, no final das contas, ele acaba virando um asset pra você. Porque você fez ele nesse momento aqui no seu software, imagina que eu, teve os primeiros dias eu criei um teste. Quando eu tiver aqui, ó, mudando o código nessa linha do tempo, tá? Esse meu teste que eu fiz aqui, ainda vai tá me ajudando, tá? O teste que eu fiz ali, vai estar me ajudando, tá? O teste que eu fiz ali eu vou estar usando ele o tempo todo, tá? Então, o que que acontece aqui pra vocês conseguirem se ligar é que hoje a gente tem um outro cara que vai acontecer a mesma coisa, que é documentação. E quando eu falo documentação, novamente eu vou passar pra vocês os tipos de documentação, eu mostrei várias ontem aqui pra vocês, mas o grande ponto, quando eu falo em documentação aqui, é a documentação que ela vai nos ajudar ao longo do tempo orientar o nosso time, e isso aí tá claro, mas também conseguir orientar a IA, para que toda vez que você vai pedir pra ela fazer uma nova feature, alguma mudança, qualquer coisa, ela consiga entender o que aconteceu aqui no seu projeto. Então, esse aí é um ponto importante. Galera, ninguém tá vendo a minha tela? Tá vendo? Eu acho que tem gente... Dá uma olhada direito aí, galera. Cara, que susto. Eu vi alguém falando que não tava vendo a tela. Eu falei, caraca, cara. Tô uma hora aqui desenhando. Mas show de bola. Tá? Então, a documentação, ela, agora, é que nem teste. Sempre foi importante e agora ela é ainda mais importante. Porque quando ela é colocada no contexto da IA, a IA consegue entender a sua linha de raciocínio do porquê que você está fazendo isso. E é exatamente esse ponto que eu quero que vocês consigam levar em consideração. Então, partindo desse princípio, o que acontece? aí levar em consideração. Então, partindo desse princípio, o que acontece? Ontem, eu estava aqui e eu cheguei a mostrar aqui para vocês, a gente pegou um exemplo simples para ele desenvolver um rate limiter aqui para a gente. Se vocês perceberem aqui, eu tinha criado algumas coisas aqui. A primeira coisa que eu criei foi um documento de contextualização. Esse documento de contextualização, ele fez o com o que aqui pra mim? A IA consegue ter uma visão geral, ela entendeu o problema, ela entendeu o que eu espero, o que vai ter no meu projeto, o que não vai ter, qual abordagem de arquitetura, risco, dependências e coisas desse tipo. É um documento simples, se você perceber aqui para mim. Mas isso aí já dá muito mais a sensação de contextualização para IA do que eu simplesmente falar que eu estou fazendo um rate limiter e ele não entende nem o porquê eu estou fazendo um rate limiter. Porque quando eu falo o porquê eu estou fazendo um rate limiter, isso pode mudar na estratégia de rate limiting que eu vou utilizar. Então, isso aí é um ponto importante para vocês conseguirem se ligar. Para quem não viu ontem, eu não estava aqui ontem, esses documentos eu utilizei tudo IA para gerar com assistentes de IA trabalhando com técnicas de prompt engineering. Um outro documento que eu mostrei ontem e que é importante é a parte de research, no final das contas. Basicamente, você quer explorar opções e dar munição para a sua IA conseguir entender as opções que ela tem para desenvolver o seu software. Qual que é o grande problema hoje que a gente tem com IA? Depois eu vou até, eu acredito que vocês já devam ter passado pra isso. Você vai lá e pede pra ela fazer alguma coisa. E às vezes ela começa a utilizar uma versão antiga daquilo. Ou ela pega uma versão desatualizada daquilo que você tá querendo trabalhar. E daí você começa a ter esses tipos de problema e você começa a ficar bravo e daí você começa a ter esses tipos de problemas, você começa a ficar bravo, e daí você fala para a IA, cara, usa a última versão de tal framework. Aí ela faz uma busca, vê a última versão e tudo mais. Dá para melhorar isso com workflows, com regras que você cria e tudo mais? Dá. Mas o que acontece? A sua IA tem que ficar fazendo chamada o tempo todo para tentar entender essas coisas, entender essas opções. Muitas dessas opções, ela acaba se perdendo e acaba fazendo da forma como ela não era para fazer. Agora, imagina que alguém vai lá e faz um estudo profundo sobre o assunto que você vai desenvolver. É muito melhor eu fazer isso do que eu ficar entrando no Google, em página por página, e pegar essas informações. Então, o que você pode fazer aqui nesse tipo de coisa? Você pode fazer uma pesquisa profunda, um deep research, lá no chat GPT, se você quiser. Então, isso aí é um ponto importante para vocês. Uma vez que você faz isso, você está dando o quê agora? Não só contexto, tá? Mas você está dando opções, sugestões, guidelines, prós, contra, né? Diferentes estratégias, mecanismos, exemplos de código, versões atualizadas, entendeu? Ou seja, você tá dando uma pesquisa pronta, mastigada pra sua IA, que ela vai utilizar pra desenvolver o software na versão que você quer, com as opções que você quer, porque é o que eu falei ontem, quando a gente fala ah, desenvolva uma tela de login, cara, ela não sabe se tem esqueci minha senha ou não, ela não sabe se tem que ter confirmação de senha, se tem que ter sign up. Agora, se eu consigo gerar uma pesquisa onde traga toda a parte de segurança de login, cara, já vai ajudar muito mais do que ela sair fazendo da cabeça dela ou do treinamento dela. Eu consigo direcionar a forma como ela vai trazer isso aqui, tá, pessoal? Então, isso aí é algo assim que não tem preço. Vocês vão ver... Cara, façam isso hoje, façam amanhã, tá? Coloque isso nessa pasta de documentação, tá? E você já vai perceber que já começa a mudar completamente como que a sua IA começa a trabalhar. Então, isso aí é um ponto importante. Agora, existem algumas coisas que são importantes eu levar em consideração e que eu fiz ontem de um jeito, mas, na real, não é a forma que eu recomendo você trabalhar no dia a dia. Por quê? O que acontece é o seguinte. Uma coisa é o meu projeto, tá? O meu projeto tem arquivos que ficam, sei lá, no meu repositório. Por quê? Porque são arquivos específicos de uso geral do meu projeto, tá? Mas eu tenho arquivos que são meus arquivo do Wesley e esses arquivos do Wesley eles não são compartilhados no repositório eu posso até deixar ele num branch meu ou de alguma outra forma mas esses arquivos eles não são compartilhados por que? porque eles funcionam como pastas auxiliares que a IA vai te ajudar. Então, aqui eu posso fazer uma separação e daí vocês deem o nome que vocês quiserem para isso. Mas eu quero que vocês entendam uma ideia. Eu posso criar uma pasta aqui, tá? Vou... Cara, aqui... Espera um pouquinho eu posso criar uma pasta aqui chamado, somente pra deixar mais claro, docs.ia o que que são docs.ia aqui são documentos específicos meus que vão me ajudar eu desenvolver a minha tarefa tá esses documentos fazem parte do meu workflow. Ou seja, ontem, por exemplo, eu criei aqui um plano de ação e tarefas. Esse plano de ação e tarefas são documentos que eu utilizo para desenvolver o software. Tá? Ou seja, o que isso significa, galera? Não são documentos do projeto. São documentos que me ajudam no meu workflow. Tá? E isso aí faz uma diferença danada. Por quê? Essa minha pasta aqui, eu posso botar ela aqui no meu git ignore. Eu posso colocar aqui docs e a. E esse cara aqui, ele não vai ser mais indexado. Por quê? Porque é aqui onde você vai fazer com que a sua IA te ajude, sei lá, crie to-do lists, que nem a gente fez ontem, né? Fez ela criar aqui to-do lists, que ela vai matando uma listinha. Nossa, Wesley, você está aqui para me ensinar a fazer a IA, gerar a to- do list? Não. Eu estou aqui querendo falar aqui para você o seguinte, você vai precisar de documentos para IA ajudar no projeto e entender o projeto, e você vai ter documentos que vão fazer a IA entender o seu workflow, a forma de como que você vai trabalhar. Então isso aí é algo que muda completamente o jogo. Fez sentido isso aí pra vocês, né, galera? Documento que é pro projeto e documento que eu vou utilizar pra mim, pras minhas tarefas, na minha organização e ponto mais, né? Não preciso ficar chovendo muito no molhado pra que vocês consigam entender esse cara aqui. Aí, o que acontece? Quando eu começo a trabalhar dessa forma, eu começo a entrar numa seara um pouco complexa. Por quê? Porque, às vezes, o meu projeto começa a realmente ficar complexo. Então, vamos imaginar aqui que eu tenho linter e storage, mas, de repente, eu tenho um módulo aqui do meu sistema que entra domínio 1, aí eu tenho domínio 2, aí eu chego aqui, eu tenho um subdomínio 1 e um subdomínio 2. Quando eu estou falando subdomínio aqui, galera, eu estou falando que acaba entrando em outra área do software, em outra parte de resolver problemas do software. Sei lá, imagina que eu tenho o financeiro da minha empresa e eu tenho a área de vendas. Então, quando o meu software começa a ficar grande, o que a gente tem que começar a se organizar? A IA ent ela entenda, tá? Especificamente, da parte que você vai trabalhar. Porém, não adianta ela entender somente a parte que você vai trabalhar sem ela ter uma ideia do que está em volta dela, tá? E eu acho que esse é o maior problema que acontece quando os desenvolvedores vão trabalhar com IA. Ou é 8 ou é 80. Ou ele vai lá e manda ver o projeto inteiro e daí você tem um milhão de arquivos lá, começa a dar ruim. Ou manda resolver só aquele problema daquela pasta sem a IA entender o que está em volta ali para você. Então, isso aí é importante. Mas, novamente, galera, a questão aqui não está em gerenciamento de tarefas. Não está em gerenciamento do que a IA precisa fazer, do plano de ação. Isso aqui tem a ver com o escopo do que você está falando. Porque existe o seguinte, tá? Isso aqui é importante vocês entenderem. Quando eu estou falando em IA, tá? Ela, hoje em dia, ela cria planos de ação. Tá? Aí ela cria plano de ação já, por padrão, hoje em dia, tá? outra coisa que acontece é que você pode criar o seu plano de ação que você quer beleza? ou seja, esse aqui é o meu plano de ação e, por incrível que pareça eu tenho meu plano de ação e por incrível que pareça eu tenho o plano de ação do meu prompt tá quem não entendeu o que eu quis dizer com isso galera quem não entendeu o que eu quis dizer com isso eu sabia que vocês i dizer com isso. Eu sabia que vocês iam falar isso, tá? Eu sabia. Eu fiz de propósito, inclusive, tá? Eu fiz de propósito. Vamos lá entender. Seguinte, hoje em dia se você pegar modelos de advanced reasoning, se você pegar, por exemplo, o próprio, se eu chegar aqui e pegar por padrão o Cloud 4, se eu pegar o Gemini, o GPT 4.1, por padrão aqui, você percebe que esse cara cria planos de ação internamente, pensando como que ele consegue resolver um determinado problema. Eu posso colocar o seguinte, baseado no meu storage, verifique possíveis inconsist a com o meu documento de contexto aqui pra mim não não crie não crie nenhum arquivo apenas me mostre sua linha de raciocínio e eu não quero usar o cloud max aqui porque eu não quero quando eu CloudMax aqui, porque eu não quero. Quando eu fizer isso, se vocês perceberem aqui, olha isso aqui. Planejando os próximos passos. O usuário está pedindo isso. Eu vou fazer isso. Eu vou fazer isso. Eu vou fazer aquilo. E eu vou verificar. Isso aqui que ela está fazendo, ela está criando internamente um plano de ação dela. É o plano, é o reasoning que o modelo faz, tá? E dependendo do modelo que você vai usar, ele vai fazer isso. Dependendo do modelo que você vai usar, ele não vai fazer isso, tá? É simples assim. Então, eu tenho esse plano de ação que eu não controlo, mas que o modelo me ajuda. Eu tenho um outro plano de ação, que é o meu plano de ação. O que é o meu plano de ação? E aqui eu quero trazer aqui para vocês. Ontem eu criei um exemplo de plano de ação e eu vou mostrar isso aqui para que vocês consigam entender. Um plano de ação, ele é algo em alto nível sobre os principais passos que você tem que dar para você desenvolver uma determinada feature daquilo que você está querendo fazer. Basicamente é isso. Então, o meu plano de ação que eu fiz ontem é eu preciso de um ambiente de desenvolvimento, eu preciso de uma estrutura inicial do repositório, eu preciso de um contrato de rate limiting, eu preciso das estratégias distribuídas, eu preciso do middleware, eu preciso validar desempenho. Isso aqui é um plano de ação que eu fiz. E fiz também usando IA, tá, galera? E, novamente, é muito a parte de prompt. É muito rápido gerar essas coisas, ainda mais quando você tem a pesquisa em volta. Esse contexto, tá? Esse research para ajudar você a criar um plano de ação, tá? É um dois, só para vocês saberem isso. Quem participou de ontem viu Mesa Tech, Context Generator, gerador de ADR, gerador de plano de ação também não é difícil fazer, tá? Então, o que que começa a acontecer isso aqui? Uma vez que eu tenho esse meu plano de ação aqui, vamos dizer, pronto, esse cara é o cara que vai ajudar a IA a entender o que ela está fazendo. O grande ponto é que, baseado nesse plano de ação, eu tenho as minhas tarefas. E essas minhas tarefas, basicamente, é um to-do para eu controlar até onde a IA desenvolveu para mim. Agora, por que eu tô dizendo isso? Porque aqui eu tenho o plano de ação do meu prompt, tá? O que que é o plano de ação do meu prompt? É, na hora que eu pedir pra ela executar algo, eu vou pedir pra ela criar um plano de ação pra desenvolver essas tarefas. Ok? Como assim? Vamos lá. Eu vou dar um exemplo aqui para vocês. E eu acho que vai ficar, inclusive, mais claro para vocês entenderem aqui. Esse aqui é um prompt que eu vou deixar, inclusive, disponível. Deixa eu disponibilizar esse cara rapidinho aqui. Esse aqui é um prompt que eu vou deixar, inclusive, disponível. Vou disponibilizar. Deixa eu disponibilizar esse cara rapidinho aqui. Deixa eu criar um gist.github.com aqui pra mim. promptdev.md Eu vou colar isso aqui pra vocês. Galera, vocês vão querer me dar um abraço. Vocês vão querer me dar um abraço, tá? Vocês vão querer me dar um abraço logo amanhã, na hora que vocês colarem isso na sua IA e mandarem ela fazer alguma coisa. Você vai ver que vai ser outra vida de desenvolvimento somente de você colocar isso. Eu tenho uns 10. Eu tenho uma biblioteca minha de prompt aqui que eu estou trabalhando cada vez melhor nesses caras. Mas somente para você conseguir entender um pouco melhor esse cara, deixa eu transformar isso aqui num MD rapidinho. Vou chamar ele aqui de prompt.md aqui pra mim e vou colar esse cara aqui tá esse meu prompt.md eu tô passando instruções aqui, é um prompt gigante que tem um monte de coisa repetitiva e tudo bem mas quando você olhar aqui você vai perceber que eu tenho, e estou falando para ele, criar um plano de ação também. Então, eu dou aqui para ele uma estratégia de desenvolvimento em alto nível, e em seguida, para cada estratégia em alto nível que eu acabo dando, eu dou estratégias menores, de mais baixo nível, em relação à alteração de código e como fazer o plano de ação. Então, por que que eu tô dizendo isso? Porque uma coisa é eu trabalhar deixa eu voltar aqui pro meu cara. Uma coisa é a IA criar o plano de ação pra ela trabalhar. Uma coisa é o meu plano de ação e outra coisa é o plano de ação que eu mando pro meu prompt pra ela desenvolver o software pra mim entendeu? isso aí muda completamente porque senão você começa a misturar os planos de ação e o porquê que eu tô dizendo isso se você começar, por exemplo, olhar o Jules, o próprio Codex que lançou agora, ou se você começar a olhar funcionalidades do Windsurf, que estão querendo botar tarefas, planos de ação, você vai começar a perceber que são planos de ação que são baseadas na sua IA, na sua ferramenta e etc. Isso é um plano de ação específico que o modelo vai usar, que a sua ideia vai usar para ela se sair melhor. específico que o modelo vai usar, que a sua ideia vai usar, pra ela se sair melhor. Mas, no final do dia, quem manda na ordem do desenvolvimento da minha aplicação, sou eu, tá? E, a partir do momento que não sou eu quem determina isso aqui, é o momento onde você perdeu o controle do seu projeto tá? simples assim, tá? no momento que a IA ela começa a fazer coisas na ordem que você não pediu é o momento onde você perdeu o controle do seu código e você tá ferrado simples assim, tá? então quem manda na ordem do desenvolv código e você tá ferrado. Simples assim, tá? Então, quem manda na ordem do desenvolvimento é você. Então, você tem que ter um plano de ação claro. Agora, novamente, nossa Wesley, mas que burocrático, eu tenho que ter plano de ação, eu tenho que ter tarefa, eu tenho que ter pesquisa. Cara, você tem que ter, tá? Mas, você tem que ter, se você estiver pensando no seu projeto, nesse aspecto. É que nem trabalhar com teste. Às vezes eu vou desenvolver uma funcionalidade, eu gasto mais tempo criando os testes do que desenvolvendo o software em si. Alguém já passou por isso? E mesmo assim, você faz o teste. Por quê? Porque você sabe que esse asset que você tem, que é o teste, ao longo do tempo, ele se paga fácil. Você economiza lá na frente. Então, na hora que eu estou falando disso aqui, galera, eu estou falando em economia ao longo do tempo. Se você olhar isso aqui para você criar um crude, cara, você está ferrado. Você está gastando o seu tempo, você está moendo o seu tempo. Mas se você está trabalhando em projeto que tende ao longo do tempo se comportar, que tende ao longo do tempo ter que se manter e a complexidade dele vai crescer, esses tipos de coisas são extremamente importantes. Está fazendo sentido isso que eu estou falando, galera? Então, isso aí é um ponto importantíssimo aqui para vocês conseguirem se ligar, tá? Então, está aqui planos de ação onde você cria e aí você vai novamente na parte de tarefa. A tarefa é um dos pontos principais para você controlar de forma granular o que a IA vai fazer na ordem que ela tem que fazer, tá? É basicamente isso que acontece aqui nas tarefas. Ontem, inclusive, eu estava fazendo as paradas aqui, mandei ela fazer, daí eu mudei um prompt e etc., nem pedi para ela marcar as minhas tarefas. Eu posso chegar aqui, deixa eu escrever aqui rapidinho aqui para ela, inclusive, tá? inclusive, baseado nas minhas tasks, analise o código do meu projeto de forma profunda e passo a passo e verifique, um, inconsistências do código e as tarefas realizadas. Dois, tarefas realizadas que não estão discrepantes aqui para mim. Não gere arquivos. Apenas me diga. Só para vocês entenderem o que eu estou colocando aqui. Basicamente, aqui é o plano dele a ação. Mas o que eu estou fazendo aqui é, ontem euicamente, ó, aqui é o plano dele e ação, tá? Mas o que eu estou fazendo aqui é, ontem eu mandei ele sair desenvolvendo software aqui para mim, né? E no final das contas eu acabei parando e tudo mais e aconteceu uma coisa, deixa eu diminuir aqui a minha fonte, que é, várias tarefas que ela acabou fazendo, eu não pedi para ela terminar de marcar. Então, eu perdi o controle do que foi desenvolvido então isso aqui é uma das coisas que você pode utilizar como estratégia pra te ajudar quando esses tipos de coisas acontecem, você pode pedir pra ela bater as tarefas com aquilo que tá feito no código e verificar a inconsistência vocês experimentem vocês fazerem isso vocês vão perceber que o jogo muda completamente aqui pra você, tá? Agora, uma das coisas que você vai perceber é que vocês concordam comigo que parece meio que óbvio, tá? Vocês concordam comigo que pode parecer meio óbvio que a IA tem que marcar isso aqui com um x Quando ela termina Tá? Vocês concordam aqui comigo? Então nesse ponto aqui O que que acontece? Teria que ser feito Eu não teria que ficar reforçando muito pra IA Que ela tem que ir fazendo isso o tempo inteiro. Então, nesse meu caso, o que acontece aqui? Eu posso chegar, e aí que a gente começa a entrar tentando ter um pouco mais de controle no que a IA acaba fazendo, que é a parte de rules. Quem aqui conhece a parte de regras? O Windsurf tem isso, o Cursor tem isso também, o GitHub Copilot também tem, que é a parte de rules. São regras específicas que você cria que a IA vai se comportar daquela forma. Isso não significa que vai funcionar todas as vezes, porque não funciona, mas já é um guideline. Então, o que acontece? Você pode começar a melhorar essas rules aqui. Porque não funciona, mas já é um guideline, tá? Então, o que acontece? Você pode começar a melhorar essas rules aqui, olha. Ele trouxe aqui para mim, olha. O que está faltando, o que não está faltando, as inconsciências, resumo executivo, pontos positivos, pontos de atenção e as minhas recomendações. Depois a gente volta aqui, tá? Mas o fato aqui é que toda vez que eu tenho termina alguma coisa, eu quero que ela marque com X, eu não quero ficar pedindo isso toda hora, tá? E você concorda com isso, que isso acaba virando, faz parte de um workflow? Vocês concordam comigo? Que faz parte de um workflow? Então, o que que acontece aqui nesse caso, tá? Você pode chegar, eu vou abrir uma nova, vou abrir uma nova aba aqui. Carambola, vai, ajuda eu a abrir a aba, cursor. NewTab, aqui. Bom, independente, não abriu o tab, eu dei em vez de dar ctrl-t, eu dei outra coisa. Vamos lá. O que acontece é o seguinte. Se isso é algo importante aqui para mim, o que eu posso fazer? Isso é um recurso que o cursor tem agora, tá? Que eu posso colocar um generate cursor rules, mas eu especifico aqui para ele, tá? Crie uma regra de um workflow, claro, que sempre que... de um workflow claro, que sempre que uma determinada tarefa for finalizada, necessário marcar com um x na to do list da tarefa. Eu posso colocar normalmente essas tarefas podem se encontrar em arroba docs. Tem que tomar cuidado com arroba docs porque é outra parada. Arroba docs e a aqui pra mim. Quando eu estou fazendo isso aqui com o arroba docs porque é outra parada, arroba docs e a, aqui pra mim quando eu tô fazendo isso aqui com o cursor ele tem esse comando que acaba virando quase com que uma macro aqui pra mim, pra ele conseguir girar regras pra mim, isso aqui é interessante porque antigamente até pra criar rules dava trabalho porque você tinha que fazer na mão o tempo todo aqui pra mim, então se você perceber agora aqui, ele está criando uma rule aqui para mim, chamada Task Completion Workflow. Nessa Task Completion, deixa eu abrir esse cara aqui. Eu vou dar um aceitar, vai, de qualquer forma. O que acontece? Ele criou aqui para mim um workflow, que é localização da tarefa. As tarefas podem ser localizadas aqui dentro. Formato dos checkbox. Procedimento obrigatório. Identificar a tarefa correspondente. Localizar o checkbox da tarefa. Alterar para concluída. Verificar se há subtarefas. Exemplo de marcação. Aí ele coloca o depois. Importante, sempre marque as tarefas imediatamente após a conclusão. Não deixe tarefas concluídas sem marcação. Verifique dependências, mantenha consistência, revise periodicamente. Arquivos de tarefas comuns. Responsabilidade. Então, se você perceber aqui, o que acontece? Ele criou para mim uma rule. E esse tipo de rule é interessante aqui. O grande ponto é que você tem que se ligar em qual tipo de rule, e aqui falando em cursor, tá? Depende muito da IDE. Qual tipo de rule que você se... que acaba sendo necessário. Por quê? O que que acontece? Existem, isso aí o cursor ele muda toda hora, tá? Mas hoje em dia a gente tem quatro tipos de rule aqui pra gente, tá? Uma, manual, da forma como tá aqui, tá? O que isso significa? Que toda vez que eu for pedir pra ele, eu vou ter que marcar essa minha rule aqui pra mim, tá? E eu vou falar qual rule que eu quero trabalhar. Basicamente é isso que eu vou ter que fazer. Ou seja, não é algo que ele vai utilizar o tempo todo. Existe um outro tipo de rule, que nesse caso aqui, eu utilizaria nesse caso sempre. Que é o quê? Toda hora... Bom, vamos lá. Deixa eu explicar, inclusive, isso aqui para vocês. Todas as vezes que eu for utilizar esse cara dando uma nova requisição, essa rule vai ser enviada junto com o cara. Eu tenho rules que são auto-atachadas. O que significa? Elas são baseadas nos tipos de arquivo que eu estou trabalhando. Então eu quero que essas rules se apliquem somente se eu mexer em arquivos .go. Se não for nos arquivos .go, para mim, essa rule nem precisa ficar atachada. E eu posso criar rule baseada na solicitação do agente. O que isso significa? Muitas vezes, você pede coisas para o agente na hora que ele está desenvolvendo ali com a gente. O que acontece é o seguinte, que de acordo com como ele pede, ele fala, opa, o cara está falando em tarefas, em checkbox do workflow dele. Eu acredito que tem uma regra de workflow. Ele vai lá e carrega. E para ele carregar, isso aqui já fiquem ligados, galera. Para ele carregar, é muito importante essa descrição. Essa descrição vai ser a porta de entrada para a gente saber que essa rule, no final das contas, é importante para o contexto que ele está buscando, tá? Se essa descrição estiver mal feita, é capaz de ele nunca utilizar essa rule aí para a gente, tá? Então, isso aí acaba sendo trabalhado. Maravilha? Então, isso aí é um ponto importante. O Antônio fez uma pergunta interessante, o quanto que isso impacta nos tokens, tá? Galera, o lance é o seguinte. Essas ferramentas como o Cursor e etc, eles trabalham de uma forma muito inteligente em relação à utilização de tokens. Por quê? Eles trabalham com um algoritmo que eles geram hashes no formato de uma árvore, tá? E... E esses hashes, eles conseguem ver quais pedaços e momentos de código que foram mudados. Porque ele pega todo o nosso código e ele indexa essa parada e joga na nuvem dele. Então, o que acontece? Como ele indexa essas paradas o tempo todo, ele não necessariamente tem que ficar grudando tudo nos tokens e jogando. Ele trabalha como se fosse em formatos de subcaches, vamos dizer assim, tá? Então, isso afeta? Quanto mais instrução você der para a sua IA, obviamente que afeta, tá? Mas, com certeza, mais instrução você der para a sua IA, obviamente que afeta, tá? Mas, com certeza, isso vai afetar muito menos você ter rules e pontos específicos do que afetar a qualidade daquilo que você está desenvolvendo, tá? Então, isso é um ponto importante. Então, você quer que o agente pegue essa rule, você vai ter que colocar uma descrição muito clara para que essa rule serve. Porque a partir daí, ele pode utilizar isso ou não. Então, isso é importante. Quando são rules, galera, que são de workflow, rules bem gerais ali, o que acontece? Eu super recomendo que você deixe ali em always. Agora, quando são rules bem específicas, por exemplo, eu quero que todos os meus arquivos em Go, eles tenham uma documentação nos métodos públicos dele. Então, quando eu fizer isso, eu posso criar uma rule, aqui no meu caso, auto-atachada, que isso vai bater somente nos arquivos .go e aí eu começo a fazer com que menos coisa vá pro meu agente e que obviamente a minha janela de contexto fique menor, o quanto melhor eu trabalhar e mandando menos informação, é ótimo, porque se não, eu criaria um milhão de rules e colocaria todas always aqui pra aparecer sempre, pra todo mundo. Aí, cara, começa a não fazer sentido. Entendeu? Então, entenda essas rules, tá? Como caminhos básicos pra você começar a trabalhar, tá? Eu tenho comigo, tá? Bibliotecas de rules que eu fui criando ao longo do tempo, pra linguagens de programação, para projetos grandes, para projetos pequenos, porque isso vai me ajudando no workflow que ele vai trabalhar. Então, isso aí acaba ajudando bastante. Algumas rules que são importantes vocês fazerem, galera, é convenções de código. E isso aí vai ajudar ela a criar nome de arquivos corretos, fazer as importações corretas, trabalhar de forma correta a árvore de arquivos e coisas desse tipo, tá? Então, convenções de código são rules extremamente importantes que você vai ter que fazer. O workflow, como que você quer que a IA trabalhe com você, também é importante. Agora, uma das coisas que você tem que se ligar é que quanto mais você for trabalhar em modo agente, ou seja, no modo que a IA vai programando pra você, no modo vibe coding, e daqui a pouco eu quero falar pra vocês sobre vibe coding e trabalhar de modo agente. O que acontece? Toda vez que você vai pensar nesse formato, você quer um comportamento diferente. Então, preste bem atenção de como que você quer trabalhar, tá? No meu caso, faz uma tarefa e marca uma tarefa. Fiz um workflow extremamente básico que pode me ajudar aqui para mim. Uma outra coisa que é muito importante agora, tá? Para falar de projetos existentes, tá? Projetos existentes. O lance é o seguinte, galera. Quando eu estou com o meu projeto vazio, tá? Quando eu estou com o meu projeto vazio, a vida é fácil. Até para a gente, tá? Até para a gente, até para nós, desenvolvedores que estamos em projetos começando do zero, é mais fácil desenvolver, mesmo manualmente. Não é? Criar um projeto do zero, com os arquivos do zero, é rápido, cara. Porque eu tenho muito menos arquivo, muito menos dependência, muito menos complexidade. Mas conforme o projeto vai aumentando, a complexidade acaba aumentando. Então, o que eu recomendo que vocês façam aqui sempre, tá? Depois eu posso até mandar o prompt em relação aí pra vocês, tá? Mas você pode fazer algo parecido com isso, tá? Vou escrever de forma bem grosseira aqui pra vocês, tá? Façam um estudo profundo no... na base de código atual. E aí, galera, sempre seja bem claro com o que você quer. Bem claro com o que você quer. Crie uma árvore da estrutura de pastas. Explique. deixa eu colocar aqui explique cada seção dessas pastas aqui pra mim entenda os principais pontos de acoplamento. Acoplamento. Os principais pontos de acoplamento. Traga também uma lista dos acoplamentos eferentes e aferentes. E se você não sabe o que é acoplamento aferente e eferente, você tem que fazer o nosso MB, mas tirando sarro, tá? Os principais tipos de acoplamento. Então, assim, gere um resumo de toda a estrutura, do que o projeto faz, suas restrições, principais riscos, problemas de segurança, escalabilidade. Aí você pode ir longe na forma que você quiser. Escalabilidade e etc. organize em um documento markdown e gere o arquivo state.md dentro da pasta docs e vou pedir pra ele fazer isso quando isso acontece e galera, você vai perceber que quando você começa a ter que fazer muito isso, tá? Você vai perceber que você vai querer ter os seus prompts prontos pra você não ter que ficar escrevendo que nem eu tô fazendo aqui o tempo todo aqui com vocês, tá? Aí, o que que acontece? A gente, ele vai analisar os arquivos, vai fazer tudo isso, e etc, etc. Aí o Felipe veio com a primeira pergunta que eu já imaginava que ia ter. Não vai estourar o limite de contexto? Cara, na maioria das vezes, está bem longe de estourar seu limite de contexto. Mas você pode fazer de duas formas, tá? Uma forma, e eu já vou mostrar a segunda forma aqui, inclusive, para vocês, é a seguinte. É você separar o codebase em seções. E depois você gera os dois resumos e manda ele grudar. Isso é uma forma que você pode fazer. A outra forma, e é a forma com que eu trabalho, é a seguinte. Esse aí é o ponto um ponto que e você pode combinar essas formas, que é você pegar um modelo que tenha uma janela de contexto gigante. Por exemplo, se você pegar o Gemini, você vai ver que ele tem um milhão de tokens na janela de contexto. E aí, pra esse tipo de situação, você usa esse cara. Então perceba que, ao invés de você ficar o tempo inteiro documentando para IA, explicando, ou por mais inteligente que o cursor seja, porque ele faz a indexação, tá? Daqui a pouco a gente vai falar sobre algumas funcionalidades que o cursor traz aqui para a gente, tá? Deixa eu colocar aqui, cursor settings. Se eu for aqui em indexing, você vai perceber que ele gera uma indexação do meu projeto e a cada tanto tempo ele reatualiza esse cara aí pra mim, aí ele gera os embeddings dele, ele organiza tudo isso, como que ele gera os hashes das minhas árvores, se alguma coisa alterou ele sabe o que ele tem que recalcular e tudo mais, então cada vez as minhas IDEs, os meus modelos vão ficando mais inteligentes. Mas, novamente, uma coisa é feito para a sua IA, para a sua IDE e etc. Outra coisa é feita para mim, para o meu projeto, para eu utilizar de uma forma que vai virar um asset para mim. Tudo que é para a IA, tudo que é feito pela IA, que é feito pela sua IDE, isso aí é efêmero, que ela está usando apenas naquele momento. Esses documentos e essas técnicas que eu estou passando para vocês são coisas que são usadas ao longo do tempo. Por isso que elas têm que ficar documentadas, ok? Então, esse aí é o ponto importante aqui para vocês, tá? Aqui, ele está mandando quantidade de chamadas de ferramenta e eu posso inclusive depois gerar algum controle de que ele não precisa ler 100% dos arquivos, porque nem sempre é necessário a leitura de 100% dos arquivos. Depende muito do seu objetivo daquele momento, tá? Então, esse tipo de coisa é importante aí pra gente se ligar, tá? Então, ó, ele tá fazendo algumas leituras aqui e ele vai ficar trabalhando, galera. Eu vou pegar um outro exemplo de algo que... Aqui ele tá gerando o documento. Eu vou pegar um outro exemplo de algo que eu fiz, tá? Porque o que acontece aqui é o seguinte, galera. Vai chegar um momento em que o projeto que você está trabalhando inclusive, ele não tem documentação. Mas eu tenho uma outra situação. Que é quando os frameworks, as libs que você trabalha também estão sem documentação, ou que não fique muito fácil dela conseguir encontrar essa documentação. Então, o que acontece aqui nesse caso? Ele está gerando o meu state, deixa ele terminar que eu quero mostrar isso aqui para vocês. Espera aí um pouquinho. Vamos lá. Bom, está demorando pra gerar aqui pra mim porque provavelmente vai ser um arquivo meio que grande baseado nesse arquivo que ele vai gerar ainda mais com árvores e coisas desse tipo o que que você pode fazer? você pode pegar partes desse documento e pedir pra o cursor gerar uma rule pra ele, pra ele seguir uma determinada convenção. Uma determinada estrutura de pastas, tá? Esse é uma das coisas mais legais que podem acontecer. Por quê? Porque ele vai gerar aqui pra mim um documento gigante. Tá? Ele vai gerar aqui pra mim, cara, olha o documento aqui que ele gerou aqui pra mim de state, tá? É um documento gigante, deixa eu ver se ele consegue melhorar aqui a visualização. Caraca, cara, deixa eu... Deixa eu fechar aqui meu state, minha convenção. Vou colocar aqui não salvar. Aqui. Meu state aqui para mim. Deixa eu abaixar. Cara, ele criou uma árvore da estrutura de pastas. Ele explicou as minhas sessões. Ele trouxe os principais pontos de acoplamento. Ele fez a minha matriz de dependências. Ele gerou a estrutura do projeto. Entendeu as características principais. Aí pegou a parte de riscos. Aí ele começou a trabalhar aqui, daí provavelmente ele está trazendo, essa matriz inclusive aqui, tá, é em relação de dependências controle aferente aferente e eferente, coisas desse tipo são coisas bem focadas na parte de arquitetura de software e conseguir entender sua linha de acoplamento o acoplamento é o que mais mata o software no dia de hoje, você tem que fazer ele da melhor forma possível, sem deixar o software complexo, mas também muito acoplado. Então, entender acoplamento eferente e aferente é muito importante. Você consegue ver para onde as coisas estão apontando. Mas o que acontece? Vamos imaginar que eu entendi essa minha estrutura de pastas agora aqui. Então, o que eu posso chegar aqui nesse caso aqui para o cursor e fazer aqui para mim? Generate rules, e eu posso falar, baseado no meu state, gere uma rule apresentando como a estrutura de pastas do projeto deve ser. Não foque apenas no nome dos arquivos. Essa estrutura precisa ser genérica para que eu, para que novos arquivos sejam criados no futuro, reconhecendo o local correto. Sei lá, mandei ele criar essa rule aqui. Agora já vai ficar um pouco mais fácil de eu conseguir criar as minhas regras, entendeu? Então, se você começar a perceber aqui, eu consigo pegar estudos que eu fiz do meu codebase, baseado nesses estudos, eu consigo criar regras. E essas regras que eu vou criando, vai fazendo com que a IA faça menos besteira. Quem aqui já fez em algum momento e pediu para a IA fazer algo e ela criou o arquivo no lugar errado? Cara, certo? então isso aí é algo extremamente animal, tá? porque atrapalha demais, as vezes ela sai no script, criando scripts bobo ela cria testes sem ser na pasta de teste ela cria arquivo na raiz, ela faz um monte de coisa, cara, quando você começa a dar esses tipos de coisa pra ela, a sua vida começa a melhorar um pouco, tá? A sua vida começa a melhorar um pouco. Aqui, ó. Ele explicou CMD, o app, o demo, as guidelines, a configuração, o internal, e etc, e etc, e etc. Cara, ele criou toda aqui a minha especificação baseada no meu projeto atual. Então, o que acontece? Você está começando um projeto que já existe e vai trabalhar com IA, primeira coisa que você tem que mostrar para IA é contexto, ela tem que entender de cara também ter a documentação básica do projeto, ela tem que ter um sumário do que tem no seu código fonte, ela tem que ter um sumário do que tem no seu código-fonte, ela tem que entender a estrutura do seu código-fonte. Se ela tiver essas coisas, a sua vida vai ficar mais fácil. Uma vez que ela tem e você trouxe essa informação para ela, você cria as regras. E o interessante é que você vai perceber que existem regras que são genéricas, por exemplo, a CodeConventions em Go. Tem muita coisa aqui que é genérico. Se você começar a olhar, tem convenções de código de Go, tem convenções de código de Python e tudo isso. Eu, por exemplo, criei muitas das convenções de código que eu trabalho em Go de duas formas. Uma forma seguindo o padrão que o Kubernetes usa e outra forma usando o que tem um repositório da comunidade que utiliza. Entendeu? Então, o que pode acontecer? Você tem que pegar a realidade do projeto que você tá e mostrar pra IA. Porque se você não fizer isso, ela vai sair criando arquivos loucamente em lugares que você nem imagina que existia no seu código. Entendeu? Então, isso aí é algo, assim, extremamente importante pra vocês conseguirem também trabalhar. Mas aqui, eu quero dar pra vocês o exemplo mais extremo. Tá? E o exemplo mais extremo é o seguinte. Deixa eu ver se eu acho o meu projeto aqui. Esse aqui é um projeto que eu vou mostrar pra vocês amanhã os detalhes tá? vou mostrar os detalhes desse projeto pra vocês amanhã, tá? esse projeto é um projeto usando, tá? o Google ADK, tá? pra criação de agentes de IA, onde ele tem agentes, subagentes e uma pancada de coisa aqui para você, que você pode trabalhar e etc. Qual que é o grande problema que começou a acontecer comigo? O lance é o seguinte, eu preciso e eu tenho situações em que a IA não foi treinada naquele framework ou naquela ferramenta. Quem aqui usa alguma ferramenta ou algum framework que você percebe que a IA não manja direito? Ou se ela manja, ela manja numa versão anterior, tá? Tá? Então, o que que acontece? tá? sempre tem coisas, se eu mostrar aqui pra vocês eu tenho o ADK opa, deixa eu abrir aqui no meu coisa aqui, melhor ADK, Agent Development Toolkit esse aqui é o site do ADK, da Google tá? a gente vai ver esse cara, inclusive, amanhã um pouco. E o que que acontece? Esse cara é novo. Quando esse ADK saiu, tá? Provavelmente as IAs não tinham sido treinadas com ele. E quando IAs que foram, tá? Provavelmente pegaram versões um pouco antigas. Então, o que acontece aqui? É o seguinte, olha só que interessante. Primeira coisa que você pode fazer na sua IDE, na sua ferramenta, é chegar nisso aqui. Você vai no seu cursor, vai em Settings, Cursor Settings. Estou falando de cursor, mas pode ser outra ideia que provavelmente vai ter isso aqui também, tá? E aqui, deixa eu tirar esse cara, deixa eu tirar esse cara. E aqui, o que que acontece? Você tem indexing e docs. O que que você faz aqui com indexing e docs? Às vezes, né, a sua IA, ela já tem, né, o sua IDE, ela já tem diversas documentações. Vou dar um exemplo aqui para vocês. Se eu colocar docs aqui e colocar PHP, eu tenho documentação do PHP, do PHP Unity, do Cake PHP, eu tenho um monte de documentação aqui para mim. Então, o que eu posso fazer é o seguinte, eu posso chegar para a IA e falar assim, cara, o lance é o seguinte, você está errando isso, use a documentação tal para resolver esse problema. E essas documentações que ele tem, ele já tem indexado. Não é que necessariamente ele vai sair navegando no site. Ele tem indexado essa documentação para ele. Então, rapidamente ele vai conseguir navegando no site. Ele tem indexado essa documentação para ele. Então, rapidamente, ele vai conseguir encontrar e resolver os problemas. O ponto importante aqui é que nem tudo está indexado. Então, quando eu cheguei aqui e falei para ele usar a documentação do ADK, o que aconteceu? Não existia o ADK aqui. Então, o que eu fiz? Eu fui aqui adicionar novo documento, mandei ele adicionar o ADK aqui. Então, o que eu fiz? Eu fui aqui adicionar novo documento, mandei ele adicionar o ADK, colei o endereço da documentação e ele foi e indexou a documentação. E aí eu percebi que algumas coisas começaram a melhorar porque ele começou a seguir um pouco a documentação de como o ADK funcionava. Porém, eu comecei a ter um outro problema. Qual que era o outro problema, galera? Mesmo com a documentação, ele errava. E quando eu fui olhar na documentação, a documentação estava desatualizada do próprio ADK. E ela falava, de acordo com a documentação é assim, mas não funciona. Mas eu falo, olha a documentação. E daí fala, de acordo com a documentação é assim, mas não funciona. Mas eu falo, olha a documentação. E daí fala, estou olhando a documentação e não funciona. Me parece que é de uma versão mais antiga. E daí eu falei, caraca. E daí eu tive uma seguinte ideia, porque eu estava muito determinado a resolver aquele meu problema específico que eu estava trabalhando com ADK. E eu percebi que o ADK saiu a versão 1.0 e que foi uma breaking change. E aí, o que eu fiz? Eu fui no github.com, deixa eu colocar aqui, github.adk. Vou pegar aqui para mim GitHub ADK Python esse cara aqui eu vim nesse cara e fui realmente olhar as tags que esse cara tinha e aqui versão 1.2 versão 0.5 começou a ter essas paradas de versão começou a mudar as versões e daí o que aconteceu? Eu come, começou a mudar as versões. E daí o que aconteceu? Eu comecei a olhar as releases e falei, cara, está aqui nessa versão 1.21. Então, o que eu fiz aqui? Eu cheguei aqui para a minha IA, linda, maravilhosa, e fiz algo que eu não sei se algum dia vocês já pensaram em fazer, mas funciona galera e aí vai depender do que você está disposto a fazer, de quantos tokens você quer mas eu queria muito e hoje em dia eu não economizo com cursor e ontem eu mostrei pra vocês quanto que eu gastei com cursor, não foi nem muito dinheiro, penso que eu fico usando isso o dia inteiro, testando ao máximo, tá? O que que eu fiz aqui? Eu criei uma pasta chamada de ADK repo. Entrei nesse ADK repo e dei um git clone nesse meu repositório. Aqui pra mim. E depois que eu dei um git clone nesse meu repositório, eu enfiei um trilhão de arquivos aqui dentro. E daí eu tô em qual versão? Eu não vou nem mudar o branch desse cara aqui, tá? Deixa eu voltar aqui nesse meu cara. Aí eu tenho meu Git clone do meu ADK Python. E aí, adivinha o que eu fiz? Eu criei, eu fiz duas coisas. Uma das coisas que eu fiz, deixa eu fechar esses montes de arquivos aqui, que estão me incomodando. Peraí. Tem arquivo, hein, galera? Caraca. Ah, não acredito que eu fechei o projeto. Peraí. Vamos lá. Onde que eu fechei o projeto pera aí vamos lá onde que eu fui? bug finder agents, deixa eu olhar aqui nesse cara voltando, então o que que eu fiz galera, eu cheguei nesse cara e simplesmente fiz o seguinte fui no modelo que eu queria, botei GPT 2.5 PRO com uma janela de contexto gigante, com Max Mode, entendeu? E eu comecei a fazer o seguinte. Eu pedi para ele analisar de forma profunda o repositório. E depois disso, pedi para ele gerar uma documentação com os pontos mais importantes que tinha que acontecer. Beleza? E aí ele gerou a minha própria documentação com os pontos mais importantes que tinha que acontecer. Beleza? E aí ele gerou a minha própria documentação e eu comecei a usar a documentação do meu repositório. Mas no ADK eu tinha um problema e depois eu falo pra vocês qual que é o problema, tá? Mas só pra vocês entenderem o problema de forma bem básica, só pra vocês entenderem o contexto, tá? No ADK eu tenhoerem o contexto, tá? No ADK, eu tenho um agente, tá? E esse agente, ele pode ter outros agentes embaixo dele. Tá? E o que que acontece? Eu posso pedir pra esse agente aqui, por exemplo, gerar um artefato pra mim. Imagina que eu peço pra esse agente aqui, gerar pra mim uma imagem. Tá? E esse artefato é uma entidade no ADK. Então, o ADK, eu posso pedir para um agente mudar um state, por exemplo, mudar o estado, e eu posso pedir para um agente gerar um artefato. Então, o que acontece? Ele gera um artefato, e baseado nesse artefato que ele gerava, eu queria que esse agente aqui acessasse esse artefato. E o que que acontecia? Eu não conseguia. Ficava dando erro o tempo todo. Por que que ficava dando erro o tempo todo? Porque isso não é possível no ADK. Eu consigo fazer isso fazendo um agente consultar o state compartilhado entre eles. Mas quando eu crio um artefato, esse artefato fica apenas no contexto desse agente. E eu comecei a fazer o quê no final das contas? Eu não me conformava com isso. E daí, o que aconteceu? Eu comecei a mostrar o meu código, explicar para o problema que eu tinha e falei o seguinte, o repositório do projeto está aqui. Você já tem um sumário de tudo que tem nesse repositório. Eu fiz mais ou menos para o repositório esse documento de state que eu fiz agora para vocês entenderem. E aí o que aconteceu? Quando eu fiz isso, eu pedi, olhe como está a implementação do projeto e baseado nisso, veja quais são as opções que eu tenho. Baseada nessas opções, alinhe qual é melhor, nesse critério, nesse e nesse, tá? E o que eu estou querendo dizer com isso, tá, galera? Eu estou dizendo isso porque já foi um prompt tree of thoughts, só para vocês saberem. E daí, o que acontece ali para mim? Eu pedi para ele fazer isso e ele começou a navegar no código, navegar no meu código, até ele chegar na seguinte conclusão. De acordo com a implementação aqui, baseado nisso, nisso, nisso no framework, isso não é possível. Qual é a única opção que eu tenho? É eu fazer alteração no framework pra fazer isso possível. Você gostaria de fazer um fork? Entendeu? E daí eu falei que não, tá? Não criei o fork, me conformei e usei outra estratégia. Ah, tá? Botei o fork, me conformei e usei outra estratégia. Botei o meu rabinho entre as pernas. Mas qual que é o ponto aqui, galera? O ponto é que agora a gente acabou o sofrimento. Você entendeu? Se você está apanhando com o seu framework, você tem a possibilidade de clonar o seu framework dentro do seu repositório, pegar um Gemini com um milhão de tokens, com dois milhões de janelas de contexto, analisar os arquivos, criar a documentação para você, e toda vez que você não está conseguindo fazer isso, você fale, analise o repositório e veja a melhor forma de fazer. Ele analisa o repositório e implementa da melhor forma pra você. Tá? É basicamente isso que acaba dando pra gente o poder da IA. Tá? E fala a verdade, galera, se essa dica não valeu a noite aí pra vocês. Fala a verdade. Mas, de forma geral, em tese, só com as docs já vai te ajudar bastante mas quando o bicho apertar pense que você tem um repositório porque se você pensar, o que acontecia antes comigo, quando eu tinha exatamente esse problema, eu fazia isso eu ia no código do framework pra entender como ele tava fazendo vocês não fazem isso? Quando está dando pau? Você vai clicando, entrando, entrando, até no código fonte, até entender onde está o problema? Exatamente isso, mas agora eu consigo fazer isso com um milhão de arquivos. Ter o resumo. E na hora da IA programar, ela olhar e verificar isso em tempo de execução. Então, esse tipo de coisa muda o jogo, tá? Você vai usar o modelo certo na hora que você precisa. Eu usei o Gemini 2.5. Muito obrigado, Google, por gerar esse modelo fantástico, cara. O Gemini 2.5 está muito, muito bom para desenvolver. O GPT 4.1 que saiu está muito bom também, mas eu estou tendo ótimos resultados com o Gemini 2.5, principalmente para esses tipos de exploração. Então, isso aí acaba sendo bem interessante para a gente conseguir olhar. Ok? Fez sentido sentido galera? então mais uma dica pra vocês vocês precisam de documentação tá ali uma forma de você conseguir explorar diversos diversas maneiras pra resolver aí o seu problema pra você fazer debugging e tudo mais mas, novamente né, quando você pede para a IA fazer um debugging para você, o que ela vai começar a fazer ali para vocês? O que ela vai começar a fazer para vocês? Ela vai sair criando arquivos de M soltos na sua pasta. Ela vai sair criando esses montes de arquivos soltos na sua pasta. Tá? Ela vai sair criando esses montes de arquivos soltos. E na hora que ela criar esses arquivos soltos, você vai começar a ficar bravo. Aí na hora que você interrompe ela, ela ok, e depois manteve um monte de outros arquivos pela metade. Então, novamente, criem regras claras. Na hora que você precisar fazer debugging, faça dentro da pasta tal, hora que você precisar fazer debugging, faça dentro da pasta tal, nesse padrão, nesse jeito. Após identificar o problema, gere um report e apague o arquivo. Entendeu? Então, esse é um ponto importante. O Thiago perguntou, o que achou do SONET 4? Cara, muito bom também. Hoje eu programei o dia inteiro com o SONET 4. E foi muito bom também. Eu estou utilizando bastante o Gemini quando a minha base é muito grande de código, tá? Cara, se eu não me engano, eu acho que a Anthropic ela não falou o total, mas eu acho que a janela de contexto do Cloud tá em 100 mil tokens, se eu não me engano, tá? E com o Max, talvez vá pra 200, eu não tenho muita certeza, tá Gemini é gigante então você consegue deixar ele programando por horas se você tiver o prompt correto você consegue deixar o IA programando por horas para você com o prompt correto você programa por horas só para vocês terem uma ideia, hoje eu estava desenvolvendo uma parada e eu tinha agora o nosso bate-papo. Mas o meu filho, ele está fazendo aula de bateria junto comigo. E ele tinha que treinar a bateria. E ele não ia poder treinar a bateria agora. E eu precisava ajudar ele. E eu precisava terminar uma implementação. O que que eu fiz? Peguei o meu prompt bem decente, passei o problema que eu tinha que resolver e adivinha o que eu fiz? mandei a IA fazer a parada pra mim ensinei a parada lá da bateria pro meu filho demorou uns 20 minutos, quando eu voltei a parada ainda tava programando nos últimos testes e quando eu voltei, funcionou só pra dizer, não revisei 100% do código ainda, mas funcionou. Então, com o prompt correto, com o workflow correto, com a documentação correta, com o processo de debugging correto, você consegue deixar o IA programando por um bom tempo para você e ainda você se aproveitar disso aí. Então, isso aí é um ponto importantíss, importantíssimo aí pra vocês, tá? Aí o Tarsio colocou, você acha isso produtivo? Pois ele gera um milhão de arquivos e você perde nessa imersão de arquivos. Vocês mandariam isso pra um pull request? Tarsísio, cara, se você tem regras certas, se você tem metodologia, se você tem workflow, primeira coisa, sabe quantos arquivos a IA criou para mim? Três. Ela ficou mexendo em três arquivos, fazendo os meus testes passarem, consultando o banco de dados, fazendo debugging, um monte de coisa. Então, se a sua IA está saindo gerando um monte de arquivo e você perdeu o controle, é porque você não conseguiu estabelecer regras, não conseguiu colocar um prompt decente, você não conseguiu gerar o contexto que ela precisa pra ela não sair trabalhando que nem louca, entendeu? Então, o que que acontece? Você se você percebe que a sua IA tá saindo aqui no arquivo que nem louco e você começa a perder o controle do seu software, cara assim entre aspas, parte da culpa é sua, tá? Esse é o ponto importante. Parte da culpa é sua. Por que que eu digo parte? Porque a IA tá longe de ser perfeita. Às vezes ela começa a chutar o pau da barraca e fazendo um monte de coisa, mesmo com regra e tudo mais. Ela ignora suas regras, você pede pra ela fazer uma coisa, ela continua fazendo e acontece entendeu? Mas se você se organizar criar regras, workflow, contexto saber especificar a tarefa e falar você só termine de fazer a iteração, depois que você terminar a tarefa, depois que você rodar todos os testes, depois que você revisar tudo e rodar os testes novamente, onde o resultado dos testes tem que ser exatamente esse tipo de saída, você dê a tarefa como terminada. E aí ela fica ali ruminando. E só para vocês saberem o problema que eu tinha, é que ele trabalhava muito com dois tipos de bancos de dados e dependia de muitos testes de integração para conseguir pegar o resultado do debug. Então, o problema ali não era tanto o código, mas sim conseguir entender o que estava vindo do banco de dados para conseguir ajustar o código. E aí, essa parada acaba ajudando bastante. Então, ela consegue consultar o banco, consegue cruzar os dados do banco e daí consegue juntar os dados e fazer todo esse debugging aí pra você, tá? Então, isso aí é interessante aí pra vocês conseguirem trabalhar. Maravilha? Galera, dito isso, quero mostrar aqui pra vocês um outro conceito aqui que é importante, tá? Tem a ver com workflow, mas ele acaba entrando numa outra seara, tá? E é o ponto de integrar aplicações utilizando IA, tá? Tem gente que fez um textão aqui, cara, Antônio, Maria, cara, eu não consigo ler seu texto gigante, tá? Depois levanta a mão, a gente bate um papo. Ou se você puder botar no GPT e fazer um sumário do seu texto só para eu ler rápido, aí eu consigo conversar, tá? Maravilha? Show? Então, sumarize aí o seu texto e daí a gente conversa, cara. Realmente, eu vou ter que parar muito tempo para olhar o texto, tá? Galera, lance o seguinte. O que acontece é o seguinte. Nós temos, hoje em dia, um problema. O problema é o seguinte. Eu tenho... o banco de dados da minha empresa. Tá? o banco de dados da minha empresa. Tenho o banco de dados da minha empresa. Eu tenho aqui PDFs da minha empresa. Eu tenho o site da minha empresa. Eu tenho os Google Docs da empresa. Eu tenho o Notion da empresa. Aqui na empresa a gente usa Notion para tudo. A gente tem um plano empresarial do Notion. Todas as áreas da empresa têm um namespace específico deles e tudo mais. E cada área se organiza aqui. E o que acontece é o seguinte. Às vezes eu preciso fazer com que esses caras aqui consigam, na ponta, falar com a minha IA. Independente do que eu vá fazer com essa IA, tá? Independente se ela vai ser um agente de IA. Tá? O ponto principal é que eu preciso fazer com que a IA acesse esses documentos, tá? E o que que acontece? Muitos desses documentos. Tá? E o que que acontece? Muitos desses documentos aqui, eles não são necessariamente estruturados. Eu não tenho API pra PDF. Eu não tenho uma API pro meu Google Docs de forma geral. E o meu problema aqui no caso é quando alguém fizer uma pergunta, e eu tô dando pergunta como exemplo, mas o que eu tô querendo dizer é que quando alguém precisa fazer uma solicitação pro meu LLM atrás de alguma informação que exista aqui, o que que vai acontecer? LLM atrás de alguma informação que exista aqui o que vai acontecer? como que a IA vai chegar e olhar pra esses caras aqui dentro, tá? esse aí é um ponto importante pra vocês conseguirem se ligar então eu preciso fazer uma forma que fique muito mais fácil para entender essas coisas. Então, hoje em dia, nós temos uma parada que funciona da seguinte forma. Vamos imaginar que eu tenho um documento do Google Docs aqui para mim. do Google Docs aqui pra mim. Nesse documento do meu Google Docs, eu tenho as informações gerais do meu MBA em Engenharia de Software com IA. Nesse documento, eu tenho essa informação. Na real, eu tenho esse documento no Google Docs e tenho no Notion, quando a gente planejou o curso. O Leonan não deixa eu mentir. E a gente tem esses documentos de todos os nossos cursos aqui. Imagina que eu quero treinar os meus vendedores e fazer com que a própria IA treine os meus vendedores. Ou seja, o vendedor simula que ele é um possível cliente, começa a fazer perguntas e o meu vendedor, ele vai respondendo. E no final, eu tenho um resultado para o meu vendedor falando o que ele falou de besteira, o que ele não falou de besteira. Mas ao mesmo tempo, eu quero que vocês possam entrar no meu site e tirar as dúvidas com o chatbot, por exemplo. E vocês vão tirar dúvidas dos meus cursos. Vamos imaginar também que no financeiro os caras querem saber qual é a política de preços que eu estou trabalhando. Então, se você começa a perceber, eu começo a ter diversos documentos que eu tenho na minha empresa e que eu quero fazer com que a IA tenha acesso a esses caras. O problema é que quando eu faço uma pergunta, quais são as disciplinas do MBA em Engenharia de Software com IA, como que a IA vai descobrir isso aí? Como que a IA vai descobrir isso aí? É muito difícil ela descobrir. Então, a gente entra num conceito, tá? Que a gente chama de indexação. O que essa indexação faz? A gente vai pegar esses documentos, tá? E na hora que a gente pegar esses documentos, nós vamos criar duas coisas. Uma coisa são metadados tá e outra coisa é o conteúdo do documento ok então pra que que isso serve vai seguir da seguinte forma. O conteúdo é o texto que a gente vai colocar no prompt para IA. Então, eu posso escrever um prompt o seguinte. Você tira dúvidas de possíveis alunos. Baseado no... E aqui eu posso colocar o conteúdo. Responda a pergunta. E eu coloco a pergunta aqui da pessoa. Beleza? Então, o que que acontece aqui pra mim, tá? O que que acontece? Estão xingando, falando pra eu fazer minha alfabetização. Puts, cara. Então, o que que acontece é o seguinte. Quando eu faço isso, o que que acontece? Eu preciso embedar o conteúdo desse meu Google Docs aqui dentro. Porque a IA vai ter o conteúdo, e aí ela tem a pergunta, e baseado nesse conteúdo ela vai saber a pergunta. Fez sentido isso que eu falei para vocês, galera? Fez sentido? A ideia, o conceito é bem simples, vocês concordam comigo? O conceito é bem simples vocês concordam comigo? o conceito é muito simples disso aqui a gente só tem um problema imagina que esse conteúdo aqui é uma bíblia e daí o que eu vou fazer? eu vou pegar esse conteúdo e vou colocar aqui dentro e daí o que vai acontecer? às vezes eu posso mais atrapalhar do que ajudar. E, às vezes, e na maioria das vezes, eu vou gastar muito dinheiro com tokens para mandar tudo isso para retornar a minha pergunta. Ou seja, eu vou gastar dinheiro de forma desnecessária. Então, o que eu posso fazer aqui para me ajudar com isso eu posso pegar esse meu conteúdo e eu posso dividir ele em subpartes parte 1, parte 2 parte 3 e assim por diante ok? quando alguém fizer uma pergunta, eu vou buscar no banco de dados e vou trazer apenas as partes que fazem sentido para aquela pergunta. Aí eu sou muito mais preciso, respondo a pergunta e fico muito feliz e economizo com o token. Beleza? Fez sentido isso para vocês, a linha de raciocínio? Maravilha. Aí, o que acontece? O que acontece é o seguinte. Uma vez que eu consigo usar essa lógica, eu preciso resolver dois problemas. O primeiro problema é, como que eu vou consultar esse meu conteúdo? Consultar esse conteúdo aqui, ele é muito trabalhoso. Eu vou botar isso num Elastic Search? Como é que eu vou fazer essas buscas? E como que eu sei qual parte do conteúdo tem a ver com isso aqui? Então, o que é feito aqui nessa indexação? A gente coloca aqui no final das contas, também, além das partes do meu conteúdo, eu coloco aqui o meu embedding. O que é isso aqui? É um vetor multidimensional que vai ter no final das contas, as informações que tem aqui no meu conteúdo. Aí o que acontece? Quando o usuário perguntar qual o conteúdo programático do MBA e do Wesley, o que eu vou fazer? Eu vou pegar essa pergunta, eu vou transformar isso em vetor também, e vou fazer a busca aqui, nesse meu banco de dados, falando, baseado nessa pergunta aqui, nessa busca semântica que eu estou fazendo, quais são os documentos que mais tem match com essa pergunta? E ele vai falar, ah, tá, esse documento tem o documento da parte 3 e o da parte 1. Beleza, então bota esse cara aqui dentro. Fez sentido isso aí para vocês? Então, de uma forma bem grosseira falando, é basicamente isso que acontece. A gente pega os nossos conteúdos e a gente coloca esses conteúdos no formato de vetor. Quando a gente faz uma busca, o que acontece nessa busca? A gente compara um vetor com o outro e ele vai trazer os vizinhos mais próximos que façam mais sentido ali para a gente. Beleza? Entenderam essa ideia básica, galera? Fez sentido? O que que acontece? A gente tem um problema, às vezes. Às vezes o problema é que se eu colocar aqui a parte 2 do jeito que ela é, e depois cair uma parte 4 ou cair uma parte 3 numa ordem um pouco diferente, tá? O que pode acontecer? Pode ser que eu perca um pouco o contexto dessa parada, tá? E se eu começo a perder o contexto, eu acabo truncando informação pela metade, tá? Como assim? Eu vou dar um exemplo aqui pra vocês. Deixa eu pegar aqui esse arquivo. Tá? Esse arquivo aqui, basicamente, é a descrição da contextualização do que tem no nosso site do MBA. Se você entrar no site do MBA, você vai ver que a gente tem exatamente esse cara aqui é uma parte que tem na página é o overview nosso, tá o que que acontece quando eu vou separar esse meu conteúdo em partes pode ser que eu perca que uma das partes seja isso aqui. Entendeu qual é o meu problema? Talvez na hora de eu cortar esse cara, eu pegue partes descontextualizadas, no meio da história. Então, o que acontece nesse caso? Para evitar esse tipo de problema, eu trabalho com uma parada chamada de overlap. O que o overlap fala? Eu falo o seguinte, eu vou pegar um conteúdo, que eu vou separar ele em pedaços, ou seja, fazer o meu chunking, tá? De 500 tokens, tá? Então, o que vai acontecer? Ele vai pegar todo aquele meu conteúdo, vai pegar ali aproximadamente 500 tokens e vai gravar aquela parte no banco de dados. Mas, eu tenho o risco de acontecer isso aqui. Então, o que eu posso fazer no final das contas? Eu posso chegar e falar, eu quero um overlap aqui de 100. Então, o que ele vai fazer? Ele vai pegar esse cara aqui, por exemplo, e vai mandar junto. Mesmo que fique parte repetida, tá? Mesmo que a parte 2 tivesse isso aqui inteiro. Mas a parte 3 eu tenho risco de não ter. Então o que eu faço? Eu peço pra ele pegar um pouquinho do dado anterior. Fez sentido isso aí pra gente? Fez sentido pra vocês, galera? Assim eu corro menos risco de perder informação de uma parte para a outra. Então, a gente tem esse conceito de overlapping. Então, quando eu trabalho dessa forma, eu tenho metadados que são importantes, eu tenho o meu conteúdo vetorizado, eu tenho o meu conteúdo com texto, e esse meu conteúdo pode ser feito com chunkings aí para a gente. Corre o risco de ter informação duplicada? Corre o risco, vai ter eventualmente. Mas a IA, na hora que ela vai processar esses dados, ela consegue perceber isso. Entendeu? Então, não tem problema em relação a isso. Então, o que acontece aqui, no final das contas, é o seguinte. Então, o que acontece aqui, no final das contas, é o seguinte. Uma vez que eu tenho essa ideia, eu consigo fazer essa coleta dessas informações em todo local. Eu consigo coletar dados do Google Docs, eu consigo pegar PDFs, eu consigo pegar tabela de preços, eu consigo pegar as documentações, eu consigo pegar o Notion, o Pesbo, todas as documentações que a minha empresa precisa. E eu vou jogar tudo isso em um banco de dados. E, obviamente, nesse caso, existem bancos de dados feitos para trabalhar dessa forma, com vetorização. Um dos bancos de dados mais famosos que existem hoje em dia, bem estável, inclusive, muito utilizado, é um cara chamado Pinecon. Ele é um banco de dados focado em indexação vetorial para fazer buscas vetoriais, exatamente nesse contexto que eu estou falando para vocês. Existem outras opções, existem o EVH, e tem, inclusive, o Postgres com o PG Vector, tá? E as variações de Supabase e coisas desse tipo, tá? E etc. Quando que eu uso um, quando que eu uso o outro, tá? O Pynicon, ele foi feito pra isso, tá? Então, quando que eu uso o outro? O Pynicon foi feito para isso. Então, quando você trabalha com uma quantidade muito grande de vetores, uma quantidade muito grande de dados, ele tende a ser muito mais performático. Mas eu não quero falar isso de forma grosseira. Por quê? Porque você consegue tunar o Postgres e você consegue fazer com que o Postgres consiga ter uma alta performance em relação a isso. O ponto é que quando você começa a ter o Postgres e tendo que ter muitos shardings, você começa a entrar em níveis maiores de complexidade. Você tem que trabalhar com sites, eu nem sei como é que fala, para você conseguir fazer todo esse gerenciamento dos seus clusters e tudo mais. Ou seja, você tem que ter, na realidade, para trabalhar com muito dado, inclusive a forma de você indexar, de você criar os índices, os tipos de índices aqui no Postgres, você sofre mais pra tunar esse cara aqui, tá? De forma geral, com um banco de dados, se você não tem muitos, uma quantidade muito gigante de vetores, você consegue rodar o Postgres com o PG Vector, tá? Mas falando em mercado, de forma geral, hoje em dia Pinecon é o hype, por isso que eu tô falando desse cara aqui, tá? Basicamente isso. A gente tem que entender coisas também um pouco diferentes. Tem gente que está falando do Redis com Vector Search. Cara, lembra? O ponto principal do Redis é cache, tá? E você consegue cachear, inclusive, os seus vetores, tá? Mas não necessariamente o Redis é uma ferramenta ideal para a persistência de dados em vetores, tá? Mas não necessariamente o Redis é uma ferramenta ideal pra persistência de dados em vetores, tá? Então, somente pra gente conseguir se ligar e tomar cuidado. Não que você não possa usar o Redis pra isso, você pode, tá? Mas, aquela parada. O Pinecon, nesse caso, é uma ferramenta que foi feita exatamente pra isso aqui, tá? E o que é uma quantidade muito grande? Você vai começar a perceber que acima de um milhão de vetores, a performance cai drasticamente. E daí você sempre vai ter que fazer um trade-off entre velocidade e performance e qualidade. Quanto maior o índice de qualidade que eu dou, tá? Mais lento é a minha consulta. Quanto menor é a qualidade que eu coloco, mais rápida é a minha consulta. Então, acaba tendo um trade-off aqui para a gente, tá? Então, esse é um ponto importante. Tem gente perguntando, temos riscos em manipular e disponibilizar os dados da empresa com o IA? Cara, isso você tem em qualquer banco de dados, em qualquer local que você vai mexer com dados, você tem risco de expor dados da empresa. Então, isso aí, novamente, são coisas, são informações confidenciais e etc. que você tem que saber lidar com isso, tá? Então, esse é o ponto importante, tá? saber lidar com isso, tá? Então, esse é o ponto importante, tá? Tem gente falando que PG Vector com PG Vector Scale, cara, é uma outra opção, sim, que dá para trabalhar, é maior que o Pinecon. Lembrando sempre, galera, uma coisa é você sempre ter uma solução específica para uma coisa, tá? E uma solução que ela não é específica para isso, tá? Eu vi vários estudos do PG Vector e, inclusive, o PG Vector com o PG Vector Scale com uma performance absurdamente fantástica. Eu acho que teve, inclusive, galera do Supabase fazendo benchmarks em relação a esses tipos de coisa. E eles conseguiram resultados fantásticos. A única coisa que a gente sempre tem que lembrar é o quanto você quer de comodidade versus preço versus entender profundamente um banco de dados e etc. Então, tem muitas opções de banco de dados e eu não estou aqui para dizer o que é melhor e o que é o pior, mas o exemplo que eu quero trazer aqui para vocês é o exemplo com o Pinecon, porque é uma solução bem de mercado, é interessante vocês conseguirem trabalhar, tá? E lembre-se, tá? Busca de Elasticsearch é diferente de busca semântica da forma como a gente está falando com o IA. Então, isso aí é importante você conseguir se ligar. Então, uma vez que você entendeu essa ideia, eu criei algo aqui para exemplificar para vocês algo interessante. Mas eu quero trazer algumas regras aqui que vocês podem levar para casa para facilitar a vida na hora que vocês forem estruturar os dados. Porque não adianta pegar só o conteúdo da sua empresa e botar no banco de dados. Isso aí tem que ter uma estrutura. E essa estrutura, normalmente, ela vem baseada em metadados. Então, por que eu estou dizendo isso? Porque é o seguinte, vamos entrar aqui na página do MBA. Aproveito e faço o jabá pra você fazer o MBA em engenharia de software com o IA. Mas se você perceber aqui na página, eu tenho os dados aqui do curso, eu tenho uma contextualização, duração, início de aulas, o perfil de desenvolvedor, pilares do MBA, aulas ao vivo, ou seja, eu tenho um monte de informação. Inclusive, tem informações aqui das disciplinas mas olha só que interessante cara, disciplina, cada disciplina tem ao finalizar a descrição da disciplina o conteúdo programático da disciplina então se você perceber eu poderia ter um documento por disciplina então vamos imaginar que eu posso ter um documento por disciplina, tá? Então, vamos imaginar que eu posso ter um documento de disciplinas. Certo? Eu posso ter um documento com disciplinas. Eu posso ter um documento que é um overview do curso, que tem as disciplinas, mas não com os detalhes da disciplina, tá? Beleza? Aí, o que que acontece aqui? Um outro ponto importante aqui nesse caso, é o seguinte, fora a parte de overview e a parte de disciplina, imagina que o cara quer perguntar a precificação. E no site tem preço pra aluno, preço pra quem não é aluno, tem preço à vista, tem preço na recorrência, tem preço no cartão de crédito em 12 parcelas. Ou seja, o que acaba acontecendo aqui para a gente é o seguinte. Na hora que alguém pergunta sobre o que tem na disciplina onde fala reg, eu não preciso pegar todos os detalhes do meu curso, eu posso pegar só a parte que faz sentido onde fala de reg, então eu posso ter um overview do curso eu posso ter disciplina, eu posso ter a parte de precificação, eu posso ter a parte de professores, eu posso ter diversas, diversos pontos aqui onde eu acabo trabalhando com esses metadados. Ou seja, eu tenho tipos de documento. E esses tipos de documento, eles vão fazer o quê? Cada um tem um foco diferente. Então, o overview vai falar de forma geral do curso. A disciplina vai focar em disciplina. O preço vai focar em preço. Então, na hora que eu vou falar, por exemplo, em overview, olha só que interessante. Aqui nesse arquivo, eu fiz para exemplificar, tá? Mas aqui no início desse documento, eu coloquei metadados, só para ficar mais claro aqui, para vocês entenderem. Eu criei um curso ID, um tipo é o overview, eu estou falando que ele é uma pós-graduação, eu estou falando que ele tem certificado do MEC, eu estou falando que ele tem 12 meses de duração. O que significa? Quando eu for baixar esse documento, e for fazer o chunking, tudo isso, eu vou pegar essas informações e vou colocar isso como metadado. E o porquê que eu vou colocar isso como metadado? Porque quando alguém perguntar algo pra mim do curso, eu sei que eu vou buscar no overview. Quando alguém perguntar de preço, eu vou buscar onde o tipo é preço. Quando alguém perguntar de preço, eu vou buscar onde o tipo é preço. Quando alguém perguntar algo específico de uma disciplina, eu vou colocar em documentos onde o tipo tal é a disciplina. Entendeu? E isso fica muito mais fácil para eu conseguir indexar essas informações. Então, é basicamente essa pegada que acontece. Então, toda vez que você quiser fazer essa busca, tá? E você conseguir se organizar, é importantíssimo você entender quais tipos de documento, vocês têm que entender os metadados que cada tipo de documento precisa pra você conseguir fazer filtros na hora que você precisar, tá? Outra coisa que você vai precisar é algo como um hash. Por quê? Porque vamos imaginar que eu vim aqui e atualizei esse documento. Na hora que eu for indexar, como que eu sei se esse documento foi indexado ou não? Então, o que acontece aqui nesse nosso caso? Eu tenho o hash daquele meu documento. Se eu alterar, quando eu pedir pra reindexar, ele vai ver que o hash não bate e vai reindexar aquele conteúdo. Tá? E obviamente eu posso ter o update de ads. Se eu quiser, eu não preciso apagar a versão anterior. Eu crio versões e falo qual é a versão atual. Tem diversas estratégias pra você trabalhar. Mas a ideia que eu quero que vocês entendam é, você tem tipos de documento, os tipos de documentos têm metadados, os documentos têm metadados, tem hash para você saber se esse cara foi atualizado. Então, isso aí é algo interessante para você se ligar, porque tem gente que fala, fazer reg, né? O que a gente tá falando aqui é algo chamado de reg, significa retrieval augmented deixa eu pegar aqui, vou até copiar reg no Google reg significado, e eu vou copiar e colar aqui pra mim, retrieval augmented generation deixa eu copiar e colar aqui pra mim. Retrieve augmented generation. Deixa eu copiar, colar, e eu vou colocar aqui em cima, tá? Reg. Basicamente, é você conseguir pegar informações e jogar num lugar de uma forma estruturada. O maior problema que eu vejo hoje em dia é um monte de desenvolvedor que não entendeu estruturada. O maior problema que eu vejo hoje em dia é um monte de desenvolvedor que não entendeu essa parada. Então o cara vetoriza todo o conteúdo, quebra em partes e busca, mas não trabalha com metadado, não consegue reindexar e a coisa começa a ficar uma bagunça. Uma outra coisa que você pode ter aqui também é o sort. De onde esse documento veio? ter aqui também, tá? É o sort, da onde que esse documento veio, né? É um Google Docs? É o URL? Você tem que identificar para você saber. E no final das contas, você vai ter o índice, tá? Que vai ter que ser o único, é a nossa chave primária, que tem que ser fácil de a gente, inclusive, conseguir trabalhar. Então, pensando dessa forma, o que acontece aqui? Eu acredito que você, como no Reds, você pode pedir para o banco de dados gerar o índice para você ou você cria suas regras. E o mais interessante é você criar suas regras para ficar mais fácil de você localizar e entender esses arquivos. Então, deixa eu mostrar aqui para vocês, eu estou com o Pinecon aberto aqui na minha frente. Deixa eu aumentar aqui a minha tela, para ficar mais fácil para vocês verem. Então, o que acontece? Eu criei um banco de dados. Esse meu banco de dados, no final das contas, ele tem um índice chamado full cycle courses aqui está o tipo de como que ele vai indexar então tem algoritmos de aproximação por cosseno euclidiana, tem diversas formas a dimensão do meu vetor porque eu uso um modelo de embedding cada modelo tem dimensões diferentes do meu vetor mas, aqui eu estou mostrando o modelo que eu estou usando de embedding, cada modelo tem dimensões diferentes do meu vetor tá, mas aqui eu estou mostrando o modelo que eu estou usando tá, que é um modelo small aqui da OpenAI e que eu tenho 23 dados gravados aqui se você olhar aqui pra mim tá, olha só que interessante eu tenho o ID que aqui nesse meu caso é um ID do documento do MBA em A, da disciplina Fundamento de A Generativa, parte 1. Onde, provavelmente, esse documento tem mais partes. E quando eu olho aqui, eu tenho o hash do documento, o Google Doc ID, quando ele foi modificado, a disciplina ID, porque eu posso ter algo só da disciplina, e eu posso ter as outras, o tipo dele, que é disciplina, o title desse cara, a quantidade de partes que ele tem. Então eu consigo pegar essas informações aqui para mim. E aqui, esse chunk text é o que foi armazenado no banco. E caso a gente receba essa informação, vai ser essa informação que vai ser passada para IA. Entendeu? Então, é basicamente isso aqui para a gente. Maravilha? Então, é esse dado que foi gravado aqui pra gente. Então, essa que é a ideia principal que nós conseguimos ter quando a gente acaba trabalhando. Uma vez eu tendo esses documentos dessa forma, eu consigo fazer e chegar exatamente, deixa eu pegar aqui, chegar exatamente em fazer a busca, colocar, injetar no prompt o que veio de resultado, botar a pergunta da pessoa e a minha IA responder, tá? Nesse caso aqui, eu criei dois documentos só, tá? Eu criei um documento sobre o curso, tá? E eu criei um outro documento sobre uma disciplina que é a de fundamento de A generativa. Onde eu tenho a disciplina, a contextualização, ao final da disciplina, e o conteúdo programático aqui pra mim. E aí, baseado nisso, tá? Eu tenho o meu programa aqui. Deixa eu pegar esse cara que eu acho que aqui está como RAG. E eu quero mostrar aqui rapidamente, eu não quero chegar nos detalhes dos detalhes, mas basicamente a ideia principal está aqui. Deixa eu pegar aqui que eu pedi para a IA gerar várias formas de eu testar aqui para mim. Deixa eu fechar aqui esse monte de arquivo. Tá? Então, basicamente, tá? Uma das coisas que eu tenho aqui como script, deixa eu colocar aqui como script, deixa eu colocar aqui um Python, scripts, como que era o nome do script? Pra indexar. Cadê meu... Ingest documents. Ingest documents. Ingest documents. Eu vou executar esse cara. E o que está acontecendo aqui agora? Ele está lendo todos os arquivos que estão no folder do meu Google Docs. Tá? Vendo isso recursivamente. Verificando se esses documentos já estão indexados. Se estiver indexado, ele indexa. Se, se estiver indexado, ele indexa, se ele não estiver indexado, ele fala que ele deu um skip. E aqui ele gerou o meu report. Ou seja, eu tenho dois documentos, nenhum foi processado, os dois foram skipped, porque não tinha nenhuma alteração nesses caras, não foi criado nenhum chunk aqui para mim. Baseado foi nisso, eu tenho 23 vetores aqui. Se eu chegar agora nesse documento aqui contextualização, tá? E eu vou ver se eu dou tiro um espaço, isso em tese já tem que ser o suficiente tá? Pra mudar o hash do meu documento. Então nesse momento quando eu rodar esse mesmo cara novamente, o que que vai acontecer? Ele tem que perceber que um documento foi mudado e ele vai ter que reindexar esse documento. Então, ele vai deletar os chunks anteriores daquele documento e reprocessar esse cara aqui pra mim. Então, eu consegui reprocessar esse documento com a atualização que eu acabei fazendo aqui pra mim. Tá? Então, isso aí é um ponto importante. Tem gente falando sobre fine-tuning. Galera, eu não vou entrar no assunto de fine-tuning, mas fine-tuning é uma das formas mais caras que você pode ter pra você conseguir fazer com que o seu agente ou a sua IA, o seu modelo, responda as perguntas corretamente. A não ser que você tenha muito dado. Mas fine-tuning é algo muito caro, porque você tem que retreinar, vamos dizer, o seu modelo colocando aquelas informações e ainda assim você não consegue ter garantia, tá? Então isso é um ponto importante aí pra vocês conseguirem se ligar. Aí, o que que acontece aqui, pessoal? Entendido essa parada, eu posso agora fazer a minha pergunta. Eu peguei aqui, como que é o meu script de pergunta? E eu já vou mostrar um pouco de código aqui para vocês, tá? Só para vocês saberem que eu não vou ficar aqui só no terminal, tá? Eu acho que eu criei aqui o demo ask question eu acho acho que é esse cara então ele carrega e fala qual a sua pergunta eu posso perguntar sei lá quais as disciplinas do MBA tá e em tese ele tem que trazer aqui pra mim a lista das minhas disciplinas e aqui ele trouxe, olha só, as disciplinas do MBA em Engenharia de Software com IA são essas aqui, ele trouxe todas. Daí eu posso perguntar, dê mais detalhes da disciplina de fundamentos de IA generativa. E agora, o que vai acontecer? Ele vai fazer a busca. O que vai acontecer? Ele vai fazer a busca. E ele trouxe aqui para mim as informações. A disciplina é isso, os conceitos são esses, aqui que vai ter etc, etc. Eu posso, obviamente, ajustar o meu prompt para ele falar de uma outra forma, etc. Mas o único ponto que eu estou querendo trazer aqui é que, em um momento, ele usou o overview. Tá? Onde tem todas as disciplinas listadas. E quando eu pedi detalhes de uma disciplina, ele trouxe dados específicos de uma disciplina que está diretamente em um documento da disciplina. Então, esse aí é o ponto importante. Tem gente que perguntou, pode perguntar algo fora do contexto? Pode, à vontade. Eu não travei nada, tá? Ou seja, eu só fiz esse exemplo para buscar essa ideia, tá? Mas eu não criei guardrails, eu não falei não mostre os preços, eu não coloquei não dê desconto, não responda de forma mal educada. Eu não fiz absolutamente nada de segurança em relação aqui. Meu grande ponto é mostrar para vocês de como que você consegue fazer com que a IA pegue dados de fontes de dados e conseguir buscar de forma inteligente sem precisar fazer um full scan no seu documento, trazendo apenas as partes que interessam ali para aquele prompt. Essa busca que a gente está fazendo, eu estou usando o GPT 4.1, se não me engano, o mini. Então, eu estou usando esse modelo e ele faz essa consulta. Então, no final das contas, é isso que acaba acontecendo. Como que isso aqui foi desenvolvido? Pode ver que eu criei plano, refatoração, criei coisas aqui para trabalhar. Mas eu acho que o ponto principal está aqui no código, somente para vocês entenderem mais ou menos a ideia. Eu tenho um cara aqui chamado de Drive Manager. O Drive Manager é do Google Drive. Então, basicamente, deixa eu tirar aqui a minha... Basicamente, é uma classe onde eu faço o setup das minhas credenciais para eu conseguir acessar um folder do Google Drive, tá? Aí, eu tenho um método que vai extrair metadados, tá? Ou seja, ele vai ler isso aqui e vai extrair esses metadados, tá? Então, aqui tem um monte de rejects aqui, eu nem revisei, dá para melhorar isso aqui, mas? Então, aqui tem um monte de rejects aqui, eu nem revisei, dá para melhorar isso aqui. Mas, basicamente, ele reorganiza esses metadados para eu poder trabalhar e retorna o meu metadado aqui para mim, tá? Outra coisa que ele faz aqui é validar se os metadados que são obrigatórios estão lá. Nesse caso, é o curso ID e o tipo são obrigatórios como metadados. Calcular o hash do documento, porque eu preciso saber o hash do documento. E eu tenho um método para buscar recursivamente na busca. Inclusive, existe um método de busca com o recursive true, que funciona, e estava dando um pau, e eu pedi para ela fazer na mão, só para vocês saberem. Mas, basicamente, ele vai buscar os documentos lá, de forma recursiva, e eu tenho um discover documents aqui para mim, que eu vou pegar o conteúdo, basicamente, do documento, vou extrair os metadados desse documento e vou retornar esses metadados aqui para mim, com as informações que eu quero e que já foram processadas no meu Google Drive. Ou seja, um arquivo normal que entra, lê os dados do Google Drive, extrai aqueles metadados e retorna um resultado para mim. É basicamente isso que esse cara faz. Um outro cara que eu tenho aqui, e esse cara que, vamos dizer, é um interessante no final das contas, é o seguinte, é o Vector Manager. Ou seja, o cara que gerencia a minha parte de vetores para eu conseguir trabalhar. E nesse caso, eu estou trabalhando acopladamente aqui já diretamente com o Pinecon. Então, se você olhar, eu estou até importando aqui o SDK dele. Então, o que acontece? Basicamente, eu levanto variáveis de ambiente, embeddings, etc. Basicamente é, falo qual o modelo de embedding que eu vou usar, e aqui eu faço o setup do Pinecon. Basicamente, eu estou falando qual o índice que eu vou utilizar, qual a métrica que eu vou utilizar de busca, qual a dimensão do meu vetor, e as especificações para eu fazer a conexão lá nesse cara. E aqui eu tô falando qual o index que eu vou utilizar. E agora que fica interessante pra vocês entenderem algumas coisas, tá? Separar esses documentos em chunks ali não é algo trivial, tá? E pelo fato de não ser trivial, hoje em dia tem uma biblioteca, um framework o nome que vocês querem chamar, chama Langchain eu acho que muitos de vocês já ouviram falar em Langchain correto? muitos de vocês já ouviram falar em Langchain o Langchain, cara, é é uma biblioteca fantástica inclusive vocês vão aprender isso no MBA onde você consegue pegar dados conectar um pipe num outro, tá? Para fazer execuções. Ou seja, eu consigo usar vários modelos num chain, ou seja, numa conexão de dados que vão entrando em outros e ela foi evoluindo onde você consegue criar agentes com ela e diversas coisas, tá? E a Langchain, ela tem uma parte que é só para Document Retriever e também para Text Splitter. O que é o Text Splitter, no final das contas? É você conseguir splitar o texto em diversos chunks. Então, eu fiz um Text Splitter aqui da seguinte forma. Eu falei que o chunk é de 750. Eu recomendo que vocês trabalhem em torno de 500, de forma geral, de tokens. O chunk em overlap, eu trabalhei com 100. O tamanho da função. E aqui os separadores que podem ajudar forma geral, de tokens. O chunking overlap, eu trabalhei com 100, né? O tamanho da função e aqui os separadores que podem ajudar pra ele fazer o chunking aqui pra mim. Outra coisa que eu fiz aqui nesse caso, é verificar o hash do documento que já existe, né? Porque isso aí acaba ajudando bastante, né? Porque eu preciso saber qual o hash atual de um documento existente. Então aqui, galera, é muito suave, né? Você faz um filter no Pinecon e faz uma query. Basicamente é isso. O top key é a quantidade de resultados que você quer, tá? Aqui é a quantidade, o tamanho do vetor, o filtro que você quer utilizar e se você quer que traga metadados ou não. E daí ele faz o match ali pra você. Um outro método que eu tenho é deletar chunks existentes, porque quando eu vou reindexar, eu acabo deletando os arquivos. Então eu faço busca nos arquivos de acordo com a reindexação que eu preciso, né? Fa faço o meu match e removo os arquivos. O upsert document é basicamente você inserir um documento ou inserir e alterar aquele documento aqui para a gente. Então, aqui eu estou botando o curso ID, o tipo, o hash do documento. Aí eu tenho a extração para ver se o tipo é disciplina e etc. Óbvio que dá para fazer de uma forma muito mais elegante. E depois disso, eu verifico se existe um hash nesse documento existente. Se existir, ele vai provavelmente identificar, vai deletar. E caso não, ele vai usar o text splitter e vai simplesmente inserir todos esses caras aqui. Então, ele vai deletar o existente, vai inserir o novo, ele vai fazer o upsert aqui para a gente, gerar os IDs desses caras, criar o metadata que eu estou precisando aqui também. Então, isso aqui, galera, é uma forma de você subir documentos, verificar hash, deletar documentos, fazer busca, então aqui é como que eu estou fazendo buscas, eu falo quantos documentos eu quero, quais são os filtros que eu utilizo, e por isso que os metadados são importantes, galera. Você pensa toda vez que você vai colocar um metadado, você vai pensar no que no final das contas, em quais filtros você vai fazer, para ele conseguir trazer os dados importantes aí para vocês. Então, é para eu fazer busca aqui no final das contas. E aqui para pegar as estatísticas de como é que está meu banco de dados. Mas, a gente tem um problema aqui para a gente, tá? O lance é o seguinte, a gente tem um problema o problema aqui é assim vamos imaginar que eu pergunte quais as disciplinas do MBA na hora que eu for fazer uma busca no vetor, provavelmente ele vai trazer pra mim alguns chunks referentes ao tipo da disciplina. Tá? Mas se eu perguntar qual o preço, provavelmente ele vai trazer documentos que tenham a ver com preço. Mas às vezes eu quero ser mais específico, né? Se eu sei que o cara tá perguntando por preço, eu posso fazer um filtro onde o tipo é igual a preço. Concordam comigo? Eu vou ter uma precisão muito maior na hora de fazer essa filtragem da parada. Se o cara perguntar algo de uma disciplina, eu posso fazer o filtro pelo tipo de disciplina. Concordam comigo, galera? Faz sentido isso que eu estou falando? Faz sentido, é óbvio, ok? Agora, a grande questão aí que fica é o seguinte. Como o cara está perguntando para mim, em linguagem natural, como eu sei qual é o filtro que eu vou aplicar? Tá? Então, esse aí é o filtro que eu vou aplicar? Tá? Então, esse aí é o grande ponto. E aí tem duas formas que são comuns de você fazer. Tá? Uma forma é você realmente analisar string que o cara mandar, buscar por rejects mesmo e coisas desse tipo. Palavras chave pra você inserir como filtro, tipo, colocou preço, quanto custa, valor, coisas desse tipo, bota automaticamente o filtro tipo, tá? Essa é uma forma de você fazer e, cara, funciona pra muitas coisas. Existe uma outra forma de você fazer, tá? Que é o seguinte, outra forma de a gente fazer é o seguinte, simplesmente nós vamos trabalhar perguntando para IA. Então, eu posso perguntar para IA, baseado nessa pergunta e nessas possibilidades de filtros, quais filtros eu devo utilizar? E aí ele vai falar disciplina e preço. E aí eu sei o que eu vou colocar como preço ali para a gente. Então esse aí que é o grande ponto para a gente conseguir trabalhar. Entende? Então você tem essas duas formas que são muito comuns de ser utilizadas. Então quando você faz esse filtro, você tem essas duas formas que são muito comuns de ser utilizadas. Então, quando você faz esse filtro, você simplesmente acaba conseguindo diminuir a quantidade de possibilidades e ter uma resposta muito mais expressiva em relação a tudo isso. Então, essas são duas estratégias pra gente trabalhar aqui no código que eu acabei criando eu tô utilizando essa estratégia de perguntar pro LLM em relação ao tipo de filtro, tá? E depois amanhã, com calma, eu vou mais a fundo pra dar mais exemplos aqui pra vocês porque eu criei prompts específicos aqui pra ele conseguir por exemplo, entender qual é o filtro que ele vai utilizar, como é que funcionam esses tipos de coisa, tá? O maior ponto que eu quero trazer aqui pra vocês, pessoal, é que vocês não podem sair de um evento como hoje de IA sem vocês entenderem esse conceito básico aqui do famoso, vamos dizer, RAG. Porque você fazendo isso é a porta de entrada para que você consiga criar qualquer agente de IA que vai precisar trabalhar com dados da sua empresa. No final das contas, é exatamente isso. Então, uma coisa é a gente fazer a busca via API. Outra coisa é você pegar a base de conhecimento da sua empresa, normalizar e botar isso no banco de dados vetor para a sua IA poder acessar e conseguir fazer as tarefas, desenvolver automações, fazer o que for preciso, atender cliente, mas automatizar processo, fazer cálculo de preços, conseguir gerar descontos, fazer criação de links, conseguir treinar vendedor, conseguir fazer, as possibilidades com IA são infinitas, cara. Mas pra IA funcionar, você precisa de dados. Pra você precisar de dados, você precisa, hoje em dia, pelo menos, entender essa parada aqui de RAG. Que é você conseguir pegar o seu conteúdo, esplitar, guardar no banco, fazer a parte de re-arrange. Cara, tem muitos detalhes, tá? O que eu passei aqui pra vocês é arranhar a ponta do iceberg no mundo do reg. Tem muita gente que pensa que, ah, reg é só pegar e vetorizar. Cara, é muito detalhe. É muito detalhe e você tem que fazer isso de forma correta, porque gasta dinheiro da empresa você embedar, gasta dinheiro você fazer um monte de coisa reindexar, tá? então você tem que fazer isso da forma mais precisa do mundo aí pra vocês, não é simples existem ferramentas de reg se você for usar o Vertex AI da Google, ele tem banco de dados de search, ele tem já bibliotecas que fazem reg automático, mas você não consegue estruturar da forma como você gostaria muitas vezes os metadados. Então, novamente, é você tendo conhecimento, fundação, pra você saber o que você precisa fazer. E isso é uma das coisas importantes, galera, porque a IA vai programar por você. Eu não digitei nenhuma linha desse código que eu tô mostrando aqui pra vocês. Mas eu sabia o que era o reg, o que era overlap, eu sabia, eu entendia do pinecone, eu entendia das partes de embedding, eu sabia qual é o tipo de algoritmo que eu queria utilizar, eu sabia como que eu queria utilizar o padrão de indexação, eu que organizei a forma de metadados, ou seja, eu tinha que entender de reg para fazer uma aplicação de reg. O maior problema de hoje em dia é que os desenvolvedores estão pedindo para ir a fazer programas que nem eles entendem do que eles querem fazer. E aí a gente cai em situações onde as empresas estão ferradas e muitos desenvolvedores vão ser muito... Eles estão acabando com a carreira deles. Ou seja, é muito importante, galera, vocês entenderem essas paradas. Fechou? Galera, ponto principal que eu quero que vocês levem como lição de casa, tá? Deem uma estudada de forma geral em reggae, tente fazer alguma coisa, tente criar uma conta lá no Pinecon, faz um teste de um embedding, coloquem isso, estudem um pouco mais sobre isso, caras. Porque assim, se você não entende disso, cara, você basicamente não vai conseguir fazer nada com o IA daqui pra frente, tá? e somente pra deixar entre aspas, em aberto hoje em dia a gente também tem outras formas de pegar essas informações que são via MCP e amanhã a gente vai aprofundar em MCP e também em aplicações de desenvolvimento de agentes de IA e aplicações de desenvolvimento de agentes de A e aplicações multiagentes de A, eu vou passar pra vocês bastante o conceito de agente, bastante o conceito de subagente, de tools, de function call, de utilização de MCP de como, qual que é a diferença de um agente, de um microserviço, de um agente, de um software a gente vai falar sobre frameworks, eu vou falar pra vocês do ADK, que eu tava mostrando os exemplos aqui pra vocês. Vai ter muita coisa interessante pra você que quer saber, quer saber não, que quer pelo menos ter uma noção dos tipos de aplicação que vocês vão desenvolver daqui pra frente, galera. Porque daqui pra frente, essas coisas que eu tô falando pra vocês vão ser pontos básicos que todo desenvolvedor vai ter que saber. Porque todo desenvolvedor vai ter que saber integrar aplicação com IA e saber desenvolver agentes de IA, tá? Pessoal pedindo gravação, galera, a gente vai deixar gravação apenas para os nossos alunos do nosso MBA em arquitetura full cycle e o nosso MBA em engenharia de software com IA. Eu acho que é algo, vamos dizer, bem honesto de fazer. A gente está realizando esse evento de forma gratuita. Então, estou tentando honrar bastante para quem já é aluno nosso. Quem não é aluno, participa e boas, está aí. Mas a gente está honrando bastante os nossos alun, participa, né, e boas, tá aí, tá? Mas a gente tá honrando bastante os nossos alunos, tá? Então, ah, pro Full Cycle 4 também vou disponibilizar, tá? Pra todo mundo que é aluno nosso a gente vai disponibilizar. Melhor, deixa eu reformular aí pra vocês, tá? Então, somente pra vocês saberem. Maravilha? Agora, quem não é aluno, cara, tá tendo uma oportunidade desse dia ao vivo, né? E tudo mais, tá? E se você tá pensando em ser aluno, caras, eu recomendo, recomendo demais, tá? Que você participe ou considere em fazer o nosso MBA em arquitetura de software, em arquitetura de software, não. Em engenharia de software com o IA. Arquitetura de software, em arquitetura de software não, em engenharia de software com o IA. Arquitetura de software, engenharia de software são coisas bem diferentes na realidade, tá? Então, tô colando o link aí pra vocês. Quem é aluno tem desconto, quem não é aluno não tem desconto. No final da semana que vem, no final dessa semana, a gente vai subir o preço novamente, tá? Então, recom subir o preço novamente, tá? Então, recomendo que você olhe com carinho, clica no link, se tiver dúvida, clica nesse banner aqui, você vai falar com a nossa equipe, a gente vai tirar todas as dúvidas de você, você vai ver se esse MBA é para você, mas o foco dele está em fazer você ser produtivo com o IA, e fazer você conseguir desenvolver software com o IA, tá? E fazer você conseguir desenvolver software com o IA, fazendo com que você entenda arquitetar aplicações, e onde que a IA entra no mundo da arquitetura de software, e também como que você entrega aplicações, né? Utilizando as técnicas de DevOps e SRE orientadas pra IA, tá? Então, galera, essa aqui é a pegada, eu recomendo demais que vocês façam, sabe? Cara, eu estou muito orgulhoso do que a gente conseguiu construir em relação a esse curso, porque qualquer lugar que vocês vão hoje na internet buscar sobre coisas de IA, você vai ver que é machine learning, deep learning, treinamento de modelos e não sei o que, e não sei o que, e que não faz parte da nossa bolha. Esse curso, esse MBA é focado para desenvolvimento de software. É para engenharia de software, não é para ciência de dados. Então, o nosso grande diferencial é algo de dev para dev. De arquiteto para arquiteto, tá? Basicamente é isso. Então o foco aqui é desenvolvimento. Você não vai ter aula pra ensinar você treinar modelo. Você não vai ter. Simples assim. Mas você vai ter aula como você consegue ser cinco vezes mais produtivo com o IA. E é óbvio, né galera? A gente tá falando de uma formação de 12 meses. A gente tá aqui há dois dias, né? E se você acha que você aprendeu comigo bastante aqui em dois dias, imagina você tá comigo e com um monte de outros caras feras, né? Durante 12 meses, com aula ao vivo e aula gravada, tá? Então, eu acho que essa que é a grande pegada aí pra vocês, beleza? Tem gente perguntando sobre se o MBA pega a conceito de A do zero ou precisa ter o contexto. Do zero. Você é desenvolvedor. Não sabe nada de A. Pode fazer esse curso. A única coisa que eu não recomendo você fazer esse curso é se você não souber desenvolver software. Se você não sabe desenvolver, tá começando a programar ainda, cara, o curso não é para você. Mas se você já desenvolve, já tem uma base de programação e tudo mais, pode fazer esse curso. Fechou? Maravilha, galera. Então amanhã é o dia que a gente vai falar de MCP, a gente vai falar de agentes de A, o que são agentes, o que não são agentes, o que são aplicações, qual a diferença de agentes e microserviços, quais são as arquiteturas de agentes, quais são os frameworks de agentes. Vocês vão ver agentes funcionando na prática para vocês sacarem o que está esperando para vocês aí no seu futuro próximo, que você sem dúvida vai ter que sair criando agentes de A. Não tenho a menor dúvida aí para vocês. Beleza? Então, esse é o ponto principal. O MBA de arquitetura elimina a matéria do MBA em A? Não elimina, tá? A gente não elimina matérias. Uma coisa totalmente diferente da outra. E o que tem em comum, não elimina. Você precisa fazer, meu amigo. Ok? Legal? Agora um não elimina, você precisa fazer, meu amigo. Ok? Legal? Agora tem gente que falou, mesmo tendo uma base ruim em desenvolvimento, cara, eu digo o seguinte, se você tiver uns dois anos, três anos de experiência com desenvolvimento, você faz, assim, tranquilamente o MBA. Agora, você tá aprendendo lógica de programação, orientação a objetos, tá aprendendo a trabalhar com banco de dados, aí, cara, eu não recomendo, você não vai aproveitar segura um pouco um pouco a onda, tá? e depois faz o curso Full Cycle 4.0 tá? porque ele vai te dar uma base pra daí você acompanhar esse MBA, fechou? maravilha? show de bola galera, e pra quem falou que está inclinado a fazer o MBA eu falo pra vocês ficarem inclinados e fazerem a matrícula, inclusive até o final dessa semana, porque vocês vão ter desconto. Digo desconto porque o valor vai subir na próxima semana, tá? Então a gente tá em lotes, tá? E a gente vai ter o valor do terceiro lote, foi prorregado até dia 15, depois disso o valor do curso sobe, tá? Então, aproveitem, galera, espero que vocês façam, aproveitem, mas independente de qualquer coisa, vou estar aqui amanhã com o maior prazer do mundo pra que vocês consigam aprender mais aí nesse universo de A, tá? Deu pra vocês aprenderem alguma coisa hoje, galera? Deu pra aprender alguma coisa? O que vocês acharam? Deu o feedback? Tem bastante coisa, né, galera? Cara, é muita informação. É muita informação, eu sei que é muita coisa. Workflow, desenvolvimento. Cara, eu tentei mostrar o máximo com pouco tempo que eu tinha e mesmo assim, olha, essa sessão tá longa, né? A gente vai estar indo pra três horas, é isso? Três horas de sessão? É, sete, oito, nove. A gente tá indo pra três horas de bate-papo. Ontem foi quatro, amanhã eu quero que seja duas, tá? Mas, assim, eu preciso prefiro fazer sessão longa mas sair com a sensação de dever cumprido do que você ficar uma horinha comigo achou que não aprendeu nada e gastou seu tempo, tá? Então, quem participa comigo das Full Cycle Tech Week sabe que a parada é meio longa, é densa mesmo é uma forma que eu tenho de tentar dar o melhor de mim, tá? E eu espero que tenha ajudado vocês de uma forma geral. Maravilha? Fechou, galera? Então, eu acho que é isso, tá? Espero que vocês tenham curtido. O link do MBA tá aí com vocês no chat, cliquem, tirem dúvidas com a nossa equipe, entrem em contato com o nosso chat, ou clica aqui, ó, se barca um bate-papo, a gente fala aí com vocês, é só preencher esse formulário, rapidão, e você pode bater esse papo com a gente, e a gente tira todas as suas dúvidas aí maravilha? galera, muito boa noite, fiquem com Deus que vocês tenham uma noite de sono abençoada e que amanhã seja um dia maravilhoso pra todo mundo no trabalho fechou? abraço aí pra vocês, espero que vocês tenham curtido e amanhã a gente tá aí de volta galera, até mais