Posted July 27, 2024Jul 27 [ATTACH=full]61469[/ATTACH] No último encontro da Comunidade Azure Static Web Apps através do Canal do Youtube - Microsoft Azure Developers, foi demonstrado como se pode criar uma aplicação de Geração Aumentada por Recuperação (RAG) utilizando o Azure Static Web Apps e o App Spaces. O evento foi conduzido pelo Dheeraj Bandaru, que é Product Manager do Azure Static Web Apps na Microsoft. Dheeraj contou com a participação do Skyler Hardle, que é Senior Manager do Apps Spaces na Microsoft. Skyler, apresentou um guia prático sobre a integração entre esses serviços e a implementação de uma aplicação RAG (Retrieval Augmented Generation). A seguir, compartilharei com vocês o que foi abordado durante o evento, detalhando a arquitetura da aplicação e as etapas de desenvolvimento. Mas, antes precisamos entender esse novo serviço e como ele pode ser útil para a criação de aplicações modernas. Inclusive, se você deseja assistir ao evento na íntegra, poderá acessar o link abaixo: [HEADING=1]O que é o App Spaces?[/HEADING] App Spaces é um serviço inteligente para desenvolvedores que reduz a complexidade de criar e gerenciar aplicações web. Ele ajuda a identificar os serviços corretos para suas aplicações no Azure e proporciona uma experiência de gerenciamento simplificada para o processo de desenvolvimento. App Spaces também oferece os benefícios de implantar uma aplicação através dos serviços existentes do Azure, como Azure Container Apps e Azure Static Web Apps, com uma experiência focada no desenvolvimento e implantação de forma simplificada e rápida. Resumindo.... [ATTACH=full]61470[/ATTACH] App Spaces é a maneira mais rápida de implantar e gerenciar suas cargas de trabalho de aplicativos inteligentes, sem ser um especialista em nuvem. [HEADING=1]O que é Geraçaõ Aumentada por Recuperação (RAG)?[/HEADING] Geração Aumentada por Recuperação (RAG) é uma técnica que combina a recuperação de informações externas com a geração de respostas por modelos de linguagem (LLMs). Essa abordagem permite enriquecer o contexto dos modelos de IA, proporcionando respostas mais precisas e relevantes. No caso do nosso aplicativo, utilizamos bancos de dados vetoriais para armazenar documentos e embeddings, permitindo uma recuperação eficiente e contextualizada de informações. [HEADING=1]Primeiro, alguns conceitos básicos sobre RAG[/HEADING] Os grandes modelos de linguagem (LLMs) como o ChatGPT são treinados com dados públicos disponíveis na internet no momento do treinamento. Eles podem responder a perguntas relacionadas aos dados nos quais foram treinados. No entanto, esses dados públicos podem não ser suficientes para atender a todas as suas necessidades. Você pode querer respostas baseadas em seus dados privados ou os dados públicos podem simplesmente estar desatualizados. A solução para esse problema é a Geração Aumentada por Recuperação (RAG), um padrão usado em IA que utiliza um LLM para gerar respostas com base em seus próprios dados. [HEADING=1]Como o RAG Funciona?[/HEADING] RAG é um padrão que usa seus dados com um LLM para gerar respostas específicas aos seus dados. Quando um usuário faz uma pergunta, o armazenamento de dados é pesquisado com base na entrada do usuário. A pergunta do usuário é então combinada com os resultados correspondentes e enviada ao LLM usando um prompt (instruções explícitas para um modelo de IA ou aprendizado de máquina) para gerar a resposta desejada. Isso pode ser ilustrado da seguinte forma. A imagem abaixo representa o fluxo de trabalho do RAG: [ATTACH=full]61471[/ATTACH] Se você deseja saber mais sobre o RAG, recomendo a leitura do artigo Geração Aumentada por Recuperação (RAG). [HEADING=1]Arquitetura do Aplicativo RAG com App Spaces[/HEADING] No evento, Skyler apresentou a arquitetura do aplicativo RAG que seria desenvolvido durante a apresentação. um frontend em React, um backend em FastAPI e um banco de dados vetorial. Esses componentes trabalham juntos para fornecer uma solução completa e integrada. Abaixo, detalho o funcionamento de cada um desses componentes. A seguir, detalharei cada um desses componentes. [HEADING=2]Frontend com React[/HEADING] O frontend do aplicativo é desenvolvido em React e faz chamadas a um backend FastAPI para buscar e armazenar embeddings em um banco de dados vetorial (Quadrant). A interface do usuário permite inserir perguntas e visualizar as respostas geradas pelo sistema. [HEADING=2]Backend com FastAPI[/HEADING] O backend é responsável por duas funcionalidades principais: Gerar e armazenar embeddings: Utiliza a API de embeddings do OpenAI para gerar vetores a partir do texto fornecido e armazená-los no banco de dados vetorial. Recuperar e gerar respostas: Busca embeddings relevantes no banco de dados vetorial e utiliza o OpenAI GPT-4 para gerar respostas baseadas nesses embeddings. [ATTACH=full]61472[/ATTACH] [HEADING=2]Banco de Dados Vetorial[/HEADING] Para a aplicação foi utilizado o Quadrant, um banco de dados vetorial que permite armazenar e recuperar embeddings de forma eficiente. O Quadrant é uma solução escalável e de alto desempenho para aplicações que requerem a recuperação de informações relevantes com base em consultas feitas pelo usuário. [HEADING=1]Implementação da Aplicação RAG[/HEADING] [HEADING=2]Configuração Inicial[/HEADING] Para começar, acesse o App Spaces no portal Azure e selecione a opção para criar um novo 'space' de aplicação. Você pode escolher um repositório do GitHub ou utilizar um dos templates fornecidos, como o RAG App. Configure as variáveis de ambiente necessárias, incluindo as chaves da API do OpenAI. [ATTACH=full]61473[/ATTACH] [HEADING=2]Implantação do Frontend[/HEADING] O frontend da aplicação é uma aplicação React que pode ser implantado no Azure Static Web Apps. Para isso, basta configurar o repositório do GitHub e definir o diretório de saída da aplicação. O Azure Static Web Apps irá criar automaticamente um pipeline de CI/CD para implantar a aplicação. [ATTACH=full]61474[/ATTACH] [HEADING=2]Configuração e Implantação do Backend[/HEADING] O backend em FastAPI é implantado usando o Azure Container Apps no Azure. Ele manipula as requisições de geração e armazenamento de embeddings, bem como a recuperação e geração de respostas. [ATTACH=full]61475[/ATTACH] [HEADING=1]Demonstração da Aplicação RAG[/HEADING] Inserindo e Armazenando Texto: O usuário insere um texto no frontend, que é enviado ao backend para gerar e armazenar embeddings no banco de dados vetorial. Fazendo Perguntas e Recebendo Respostas: O usuário faz perguntas através do frontend, que são processadas pelo backend para buscar embeddings relevantes e gerar respostas utilizando o GPT-4 da OpenAI. [ATTACH=full]61476[/ATTACH] Se desejar saber mais da aplicação desenvolvida no evento, poderá acessar o repositório do GitHub app-spaces-rag-app Inclusive, Julia Muiruri, que é Developer Advocate na Microsoft, gravou um vídeo sobre a aplicação desenvolvida no evento. Você pode assistir o vídeo abaixo: [HEADING=1]Gerenciamento e Extensibilidade[/HEADING] App Spaces facilita a adição de novos componentes a sua aplicação, como novos frontends ou integrações com outros serviços. A interface de gerenciamento permite visualizar logs, métricas e configurar variáveis de ambiente de forma intuitiva. O mais interessante disso tudo é que independente da linguagem de programação no lado do Backend, você pode utilizar o App Spaces para gerenciar e implantar sua aplicação. Seja você um desenvolvedor Python, .NET, Node.js, Java, Go, etc., o App Spaces é uma excelente opção para gerenciar suas aplicações. Se desejar ver outros exemplos de aplicações em diferentes linguagens de programação, poderá acessar o repositório do GitHub app-spaces-samples. [ATTACH=full]61477[/ATTACH] E, já recomendo em você começar agora a testar o App Spaces! Você pode começar a testar de forma totalmente gratuita. Acesse agora: AQUI ou clicando na imagem abaixo: [ATTACH=full]61478[/ATTACH] [HEADING=1]Conclusão[/HEADING] No encontro da comunidade Azure Static Web Apps, aprendemos a criar uma aplicação de Geração Aumentada por Recuperação (RAG) utilizando Azure Static Web Apps e App Spaces. Exploramos a arquitetura da aplicação, configuramos os componentes necessários e implementamos uma solução prática que enriquece o contexto dos modelos de IA, proporcionando respostas mais precisas e relevantes. Lembrando que você poder rever o evento na íntegra, acessando o link abaixo: [HEADING=1]Microsoft Reactor YouTube Channel[/HEADING] Você sabia que temos uma das maiores comunidades com temas diversos sobre tecnologia, nuvem e desenvolvimento de software? Não! Então, você precisa conhecer o Microsoft Reactor. Além disso conta com inúmeros eventos online, presenciais, workshops, meetups e muito mais. Acesse o link da página oficial do Microsoft Reactor e inscreva-se no canal para ficar por dentro de tudo que acontece na comunidade. [ATTACH=full]61479[/ATTACH] [HEADING=1]Recursos Adicionais[/HEADING] Gostou do App Spaces? Quer saber mais sobre o serviço e como ele pode ajudar a simplificar o desenvolvimento de aplicações web? Ou melhor, quer aprender através de um tutorial prático como criar uma aplicação com App Spaces? Deixarei abaixo alguns links que poderão te ajudar a explorar mais sobre o App Spaces e como ele pode ser útil para o desenvolvimento de aplicações modernas. App Spaces - Documentação Oficial App Spaces: Building a full-stack app with Google Authentication Learn About Azure Static Web Apps Custom authentication in Azure Static Web Apps Learn more about Azure Container Apps App Spaces - Try it now! Quickstart: Deploy your app with App Spaces Espero que tenha gostado do artigo e que ele tenha sido útil para você. Se tiver alguma dúvida ou sugestão, não hesite em deixar um comentário abaixo. Até a próxima! [ATTACH=full]61480[/ATTACH] Continue reading...
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.