Azure Static Web Apps Community: Criação de uma App (RAG) com App Spaces e Azure Static Web Apps
Published Jul 27 2024 02:31 AM 1,355 Views
Microsoft

thumb.jpg

 

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:

 

 

 

O que é o App Spaces?

 

 

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....

 

app-spaces-definition.png

 

App Spaces é a maneira mais rápida de implantar e gerenciar suas cargas de trabalho de aplicativos inteligentes, sem ser um especialista em nuvem.

 

 

O que é Geração Aumentada de Recuperação (RAG)?

 

Geração Aumentada de 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.

 

Primeiro, alguns conceitos básicos sobre RAG

 

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.

 

Como o RAG Funciona?

 

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:

 

rag-workflow.png

 

Se você deseja saber mais sobre o RAG, recomendo a leitura do artigo Geração Aumentada por Recuperação (RAG).

 

 

Arquitetura do Aplicativo RAG com App Spaces

 

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.

 

Frontend com React

 

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 (Qdrant). A interface do usuário permite inserir perguntas e visualizar as respostas geradas pelo sistema.

 

Backend com FastAPI

 

O backend é responsável por duas funcionalidades principais:

 

  1. 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.

  2. Recuperar e gerar respostas: Busca embeddings relevantes no banco de dados vetorial e utiliza o OpenAI GPT-4 para gerar respostas baseadas nesses embeddings.

 

app-running.png

 

Banco de Dados Vetorial

 

Para a aplicação foi utilizado o Qdrant, um banco de dados vetorial que permite armazenar e recuperar embeddings de forma eficiente. O Qdrant é 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.

 

Implementação da Aplicação RAG

 

Configuração Inicial

 

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.

 

rag-app-spaces.png

 

Implantação do Frontend

 

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.

 

aswa-app.png

 

Configuração e Implantação do Backend

 

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.

 

backend-app.png

 

Demonstração da Aplicação RAG

 

  • 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.

 

app-demo.png

 

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:

 

 

Gerenciamento e Extensibilidade

 

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.

 

repo-spaces-repo.png

 

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:

 

try-it-now.png

 

Conclusão

 

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:

 

 

Microsoft Reactor YouTube Channel

 

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.

 

reactor-page.png

 

Recursos Adicionais

 

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.

 

 

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! :cool:

1 Comment
Co-Authors
Version history
Last update:
‎Aug 19 2024 10:02 AM
Updated by: