Categoria: IA & Cloud

Inteligência artificial generativa, Azure e arquitetura de soluções em nuvem.

  • Capacitação Microsoft AI — Aula 1: Fundamentos de IA e o ecossistema Microsoft

    Este é o primeiro de oito artigos que acompanham as aulas da Capacitação Microsoft AI 2026, que Otávio Lourenço da Silva e eu ministramos ao vivo entre agosto e setembro. As gravações continuam no ar; os artigos existem para quem prefere ler, revisar ou copiar o código com calma.

    O que a aula cobriu

    A primeira aula constrói a base que todas as outras usam: o que é IA generativa e onde ela se encaixa no ecossistema Microsoft (Copilot, Microsoft Foundry, Azure), e o caminho mínimo — e correto — entre uma aplicação e um modelo hospedado no Foundry. Saímos da aula com um chat de console funcionando, e com três decisões de arquitetura que se repetem em todo o curso.

    Três ideias para levar

    1. Autenticação sem segredo

    Não existe chave de API no código. O Foundry SDK autentica sempre por Entra ID: DefaultAzureCredential descobre quem você é a partir do ambiente (az login na sua máquina, identidade gerenciada em produção) e o mesmo código roda nos dois lugares sem alteração. Não há segredo para vazar em log, repositório ou print de tela.

    O tropeço clássico vem logo depois: ser Owner da subscription não basta. O Azure separa permissões de gerenciamento (criar e apagar recursos) de permissões de dados (conversar com o modelo). Owner tem as primeiras e nenhuma das segundas — você autentica com sucesso e recebe 403 Forbidden. O papel que resolve é o Foundry User, atribuído no recurso Foundry.

    2. Uma abstração entre você e o fornecedor

    Entramos pelo AIProjectClient (o Foundry SDK), pegamos um cliente de Responses para o deployment do modelo e o convertemos em um IChatClient de Microsoft.Extensions.AI. Daí para cima, o código não menciona mais nem Azure nem OpenAI. Trocar o modelo por um Ollama local é mexer nestas três linhas — e em nada mais.

    AIProjectClient projectClient = new(
    endpoint: new Uri(endpoint),
    tokenProvider: new DefaultAzureCredential());
    ProjectResponsesClient responseClient = projectClient.ProjectOpenAIClient
    .GetProjectResponsesClientForModel(model);
    IChatClient chatClient = responseClient.AsIChatClient(model);

    3. Contexto mantido pelo serviço

    O chat lembra o que foi dito antes, mas o programa não guarda histórico nenhum: ele guarda apenas um ChatOptions.ConversationId e o serviço cuida do resto. Na aula 2 fazemos o oposto — o histórico numa lista que cresce no cliente — com o mesmo IChatClient, justamente para comparar as duas estratégias.

    Antes de rodar

    • .NET SDK 10 e Azure CLI instalados, com az login feito no tenant certo.
    • Um recurso Foundry com um modelo implantado e o papel Foundry User atribuído à sua conta.
    • As variáveis FOUNDRY_ENDPOINT (endpoint do projeto) e FOUNDRY_MODEL (nome do deployment, não o nome comercial do modelo) no seu launchSettings.json.
    • Não altere as versões dos pacotes. O projeto converge para um pivô único (OpenAI 2.9.1); subir qualquer pacote compila e quebra em tempo de execução. O README da aula explica a matriz de versões.

    Se você está na trilha Python

    A mesma aula existe em Python 3.12+: AIProjectClient, cliente OpenAI e contexto no serviço via previous_response_id. Em Python não existe o problema do pivô de versões do .NET, e um único endpoint do projeto serve todas as aulas — mas a regra de fixar versões no requirements.txt continua valendo.

    Próximo passo

    Rode o chat, faça duas perguntas encadeadas e confirme que o modelo lembra a primeira. Depois abra o Program.cs e leia os comentários — eles foram escritos para serem lidos, não só para explicar o código. Na aula 2 entramos em LLMs e engenharia de prompts: contexto no cliente, few-shot e saída estruturada.

    Dúvidas ou algo que não funcionou? Deixe nos comentários ou abra uma issue no repositório.

  • A revolução dos dados

    Este artigo foi publicado em 2019. Ferramentas e versões citadas podem ter mudado desde então; a reflexão permanece.

    Fala galera! Como citei no artigo sobre DDD comecei a programar em Clipper no inicio dos anos 90. Lá eu guardava os dados dos meus sistemas em tabelas dBase, um arquivo por tabela, e seus respectivos índices, um arquivo por índice. Havia uma quantidade mínima de tipo de dados, e principalmente uma limitação no tamanho dos discos. Existia uma forma peculiar de relacionamento, que auxiliava apenas nas buscas de dados relacionados por um índice, mas nada de integridade referencial. E cometiamos um erro, que muitos sistemas cometem até hoje, de destuir a informação anterior em detrimento de mante-la atualizada. O que quero dizer com isto? No meu sistema de vendas o produto de código A00931 foi cadastrado inicialmente com a descrição de Pão de Forma sem casca. A tabela de vendas tinha apenas uma referencia a partir do código, o valor unitário, a quantidade. Um belo dia o produto deixava de ser vendido, e para reaproveitar o código ele era substituído por Suco de maracujá. O que acontecia se eu pedisse um relatório de vendas? Pareceria que eu havia vendido inúmeros sucos, sendo que o produto acabou de chegar. Muitossistemas fazem iso até hoje. Colocam que em segurança dos dados por guardar um log de auditoria com a data e hora do que foi alterado. Mas como eu consulto a informação dentro da linha do tempo? Como ei qual o produto mais vendido, independnete das atualizações que este cadastro sofreu? Justifiquei meu erro da época pela tecnologia e limite limitações da época, aliadas a minha pouca experiencia. Mas o que nos faz continuar errando até hoje? As pessoas não aprenderam nem a importancia dos dados, e levam as formas normais ao extremo. Bancos de dados ‘relacionais muito úteis, e que terão uma longa vida pela frente, é usado como um paradigma mais seguro. Mas como sempre não existe bala de prata. Quando comecie a ver bancos de dados NoSQL em um primeiro momento todas as preocupações e questionamentos me vieram a cabeça. Mas como? Mas e a chave estrangeira? Mas e a consistencia? Fui estudando cada vez mais e me apaixonando pelo que cada tipo de banco de dados faz de melhor, e como o ermo pesistencia poliglota faz sentido e que quem não entendeu isto ainda esta fadado a não só tr um produto de menor qualidade, mas de estar desperdiçando dados importantes para o negócio do seu cliente. E a persistencia poliglota eu extendo não só ao fato de usar diferentes tecnologias d bancos. Cada vez mais precisamos que nossos micro servi;ços, eles aqui novamente, tenham independencia, seus próprios dados, e mecanismos robustos de sincronização, mas com total entendimento e tolerancia a ocasionais inconsistencia. O resultado? Um mar de dados para ser navegado pelos analistas e cientistas, um emaranhado de bits e bytes que ‘Machine Learning transformam em decisões conscientes e negócios sendo mais acertivos e reduzino drasticamente seus custos. Se isto não é uma revolução, preciso de mais dados para descobrir oque é! Até amanhã!
  • Vídeo: Falando sobre Chatbots

    Este artigo foi publicado em 2017. Ferramentas e versões citadas podem ter mudado desde então; a reflexão permanece.

    Fala galera!

    Percebi que não havia publicado este vídeos aqui no blog e para começarmos bem o ano aqui estão eles.

    Como voces vão notar já haviamos dito que os bots eram uma tendencia e no fim do ano várias iniciativas foram divulgadas pelas empresas neste sentido.

    Acredito que este ano de 2017 veremos ainda mais evoluções nesta área e a forma como interagimos com as máquinas passará por uma grande revolução muito em breve.

    Aproveitem os vídeos:

    Até a próxima!

  • The Twelve-factor App na plataforma Microsoft – Code Base

    Este artigo foi publicado em 2016. Ferramentas e versões citadas podem ter mudado desde então; a reflexão permanece.

    Fala galera!

    Conforme falei no primeiro artigo da série vou falar como implementamos The Twelve-factor App na plataforma Microsoft.

    Se não se lembra apresentamos os fatores neste vídeo e neste vídeo então assiste lá para não ficar perdido.

    A importancia de se ter um repositório de código

    Acho que exploramos bem o tema nos vídeos mas em resumo ter uma baseline é indispensável para que possamos ter todo rastreamento de alterações em nosso produto de forma a saber por que, quando, como e por quem algo foi feito.

    Isto não é caça bruxas mas entender o porque de algo ter sido feito é importante para a melhoria contínua do processo.

    Além disto uma base de código confiável permite que o produto volte rapidamente a um determinado momento no tempo o que é indispensável para se recuperar de catástrofes bem como fazer depurações mais precisas já que a versão do código acaba sendo identica a que estava em produção no momento da. falha.

    Por último mas não menos importante dependendo do segmento de negócio regulamentações e processos de auditoria impedem que o software seja desenvolvido sem estas características.

    Dentro da plataforma Microsoft

    Originados do extinto Microsoft Source Safe a Microsoft oferece toda uma completa solução de ALM (Ciclo de Vida de Aplicação) em dois sabores:

    • VSTS ou Visual Studio Team Services uma solução em núvem oferecida como SAAS (Software como Serviço);

    • TFS ou Team Foundation Services uma solução para instalação on premise; Como é de se esperar o modelo em nuvem recebe atualizações cnstantes mais rapidamente, mas ambos oferecem praticamente os mesmos recursos quando em versões parelhas.

    • Gestão total de código-fonte das aplicações; Gestão de projetos de desenvolvimento de software utilizando-se de SCRUM, Agile ou CMMI com total possibilidade de personalização do processo; Processos automatizados de build e deploy; Gestão total de testes; E muito mais …;

    E quando falamos de gestão de códigos fontes também temos a disposição duas opções:

    • TFVC solução proprietária desenvolvida pela Microsoft e que se baseia no modelo centralizado;
    • git: sistema de controle de versão desenvolvido por Linus Torvalds criador do sistema operacional Linux e amplamente utilizado pelo mundo open source;

    Ambas as opções oferecem vantagens e desvantagens e não é objetivo deste artigo discutí-las mas deixo a seguir boas referencias de como trabalhar com cada um deles:

    Já em relação a separação dos projetos, módulos ou componentes seja lá como a tecnologia adotada e/ou sua empresa nomeie a componentização da aplicação a plataforma da Microsoft oferece um grande nível de personalização sendo o mais comum a utilização de Team Collections e Team Projects. Mais informações podem ser obtidas neste guia.

    Conclusão

    A plataforma Microsoft está totalmente preparada para atender ao primeiro fator sem o menor esforço e com amplas possibilidades de personalização dos fluxos de trabalho e alta conectividade com as mais diversas ferramentas de desenvolvimento não se limitando apenas aquelas desenvolvidas pela empresa.

    Existe conteúdo abundante na internet sobre como utilizar da melhor maneira estas ferramentas por isto deixarei aqui mais algumas referencias:

    Até a próxima!

  • Aplicando Twelve-factor App na plataforma Microsoft

    Este artigo foi publicado em 2016. Ferramentas e versões citadas podem ter mudado desde então; a reflexão permanece.

    Fala galera!

    Este é o índice de uma série de posts sobre o tema The Twelve-factor App os quais discutimos nos seguintes vídeos:

    Recomendo assisti-los caso não esteja familiarizado com o tema. As discussões são bem ricas e espero que lh tragam vários insights para o seu dia-a-dia.

    Objetivos

    Com estes artigos pretendo demonstrar quais produtos Microsoft atendem cada um dos fatores e como podemos aplica-los em nosso dia-a-dia.

    A intensão inicial não é ter demonstrações práticas, mas caso haja interesse deixe um comentário ou me chame nas redes sociais e quem sabe eu não me empolgo a fazer demos em vídeo?

    Tenho certeza que com o conteúdo aqui gerado voce conseguirá melhorar a qualidade de suas aplicações desde a sua arquitetura até mesmo a otimização dos recursos que ela utiliza. E isto se refletirá diretamente na satisfação dos seus clientes.

    Até a próxima!

  • eBook – Beyond the Twelve-factor App

    Este artigo foi publicado em 2016. Ferramentas e versões citadas podem ter mudado desde então; a reflexão permanece.

    Fala galera! Este’e um post bem rápido apenas para divulgar o download deste eBook que foi comentado no segundo episódio da série sobre Twelve-factor App. Boa leitura e até a próxima!
  • The Twelve-factor App – parte 2

    Este artigo foi publicado em 2016. Ferramentas e versões citadas podem ter mudado desde então; a reflexão permanece.

    Fala galera!

    Conforme prometemos no outro vídeo demos hoje continuidade ao papo sobre The Twelve-factor App contemplando os fatores que ainda não havíamos abordado.

    Por se tratarem de fatores mais técnicos e até mesmo bem conhecidos por nós a discussão acabou sendo mais enxuta, mas mesmo assim rica em detalhes. Está valendo muito a pena acompanhar.

    Em breve publicarei aqui uma série sobre como implementar estes fatores na plataforma Microsoft. Então fique ligado!

    Até a próxima!

  • The Twelve-factor App – parte 1

    Este artigo foi publicado em 2016. Ferramentas e versões citadas podem ter mudado desde então; a reflexão permanece.

    Fala galera! Na última semana participei de um papo muito bacana sobre o The Twelve-factor App que é uma metodologia/padrão/recomenação de desenvolvimento de aplicações para este novo paradigma que vivem o SAAS (Software as a Service) que se utiliza de computação de nuvem e tem por objetivo atender milhares, se não milhões, de usuários simultâneos. Nesta primeira parte abordamos os cinco primeiros fatores e continuaremos este papo na próxima quarta-feira, 19 de outubro, então nos acompanhe aqui. Até a próxima!
  • Big Data: Falando sobre arquitetura

    Este artigo foi publicado em 2016. Ferramentas e versões citadas podem ter mudado desde então; a reflexão permanece.

    Fala galera!

    Dando continuidade aos nossos hangouts sobre Big Data cumprimos a promessa de discutir a arquitetura por trás das soluções que encontramos no mercado.

    Para isto Jorge Fabre compartilhou conosco um material bem interessante com a big picture do que é, reforçou os conceitos e juntamente com Flavio Barros, estatístico e irmão do nosso amigo Fabio Margarito, explicou como funcionaria na prática uma solução utilizando algumas das tecnologias que já abordamos.

    Gostou? Quer ser um Data Scientist? compartilhe com a gente suas impressões e experiencias aqui nos comentários, lá no vídeo e nunca esqueça de curtir, compartilhar e assinar o canal.

    Até a próxima!

  • API First: Como aprendemos na prática

    Este artigo foi publicado em 2016. Ferramentas e versões citadas podem ter mudado desde então; a reflexão permanece.

    Fala galera!

    Hoje trago para discussão assunto que surgiu em uma retrospectiva do projeto que estamos concluindo.

    Por ter sido nosso primeiro grand projeto mobile fizemos o desenvolvimento de frontend e backend de forma paralela permitindo que ambos evoluissem de forma independente seguindo nossas especificações iniciais.

    Isto acelerou o desenvolvimento, mas causou um grande impacto nos testes integrados já que alguns aspectos técnicos da execução das APIs não haviam sido detectados.

    Outra constatação é que a própria interface do aplicativo poderia ter sido muito facilitada se a interação com o backend tivesse se iniciado mais cedo.

    Por isto comprovamos, infelimente da pior forma, que a abordagem de API First é extremamente importanteneste tipo de projeto.

    Para os novos desenvolvimento iremos tentar seguir o seguinte roteiro:

    • Fazer um planejamento inicial da aplicação utiliando o Storyboard;
    • Desenvolver as APIs já contemplando testes unitários e integrados;
    • Desenvolver as interfaces já apontando para os serviços, sejam eles mocks ou implementações finais;
    • Automatizar os testes de interface;

    E voces? Quais workflows tem utilizado no seu desenvolvimento móvel? Compartilhe com a gente aqui no comentários.

    Até a próxima!