Vai al contenuto

Sviluppo di Applicazioni RAG con App Spaces e Azure Static Web Apps

Scopri come creare applicazioni RAG utilizzando App Spaces e Azure Static Web Apps. Dettagli sull’architettura e le fasi di sviluppo.

thumb.jpg

Nel recente incontro della comunità Azure Static Web Apps, disponibile sul canale Microsoft Azure Developers su YouTube, è stato mostrato come creare una applicazione di Generazione Aumentata da Recupero (RAG) utilizzando Azure Static Web Apps e App Spaces.

L’evento è stato condotto da Dheeraj Bandaru, Product Manager di Azure Static Web Apps in Microsoft, insieme a Skyler Hardle, Senior Manager di App Spaces in Microsoft.

Durante l’evento, Skyler ha presentato una guida pratica sull’integrazione tra questi servizi e la realizzazione di una RAG (Retrieval Augmented Generation) app. Vediamo di seguito i dettagli dell’architettura dell’applicazione e le fasi di sviluppo esaminate.

Se desideri guardare l’evento completo, puoi accedervi tramite il seguente link:

Cos’è App Spaces?

app-spaces-definition.png

App Spaces è un servizio per sviluppatori che riduce la complessità della creazione e gestione di applicazioni web. Facilita l’identificazione dei servizi giusti per le applicazioni sul cloud Azure, semplificando il processo di sviluppo e gestione.

Il servizio permette di usufruire delle capacità di distribuzione di Azure, come Azure Container Apps e Azure Static Web Apps, fornendo un’esperienza ottimizzata per lo sviluppo e l’implementazione rapida delle applicazioni.

App Spaces è il metodo più rapido per distribuire e gestire carichi di lavoro intelligenti senza essere un esperto di cloud.

Cos’è la Generazione Aumentata da Recupero (RAG)?

La Generazione Aumentata da Recupero (RAG) è una tecnica che combina il recupero di informazioni esterne con la generazione di risposte tramite modelli di linguaggio (LLMs).

Questa metodologia arricchisce il contesto dei modelli di IA, fornendo risposte più accurate e contestuali. Per il nostro esempio, vengono utilizzati database vettoriali per memorizzare documenti ed embeddings, consentendo un recupero delle informazioni efficiente e contestuale.

Implementare un App RAG

Azure Static Web Apps e App Spaces possono essere utilizzati insieme per creare una RAG completa. Vediamo la configurazione e l’implementazione dell’applicazione

Frontend con React

Il frontend dell’applicazione è sviluppato in React e interagisce con un backend FastAPI per gestire e recuperare embeddings in un database vettoriale chiamato Quadrant. L’interfaccia utente permette di inserire domande e visualizzare le risposte generate dal sistema.

Backend con FastAPI

Il backend è responsabile di due funzioni principali:

  • Generare e memorizzare embeddings: Utilizza l’API di embeddings di OpenAI per generare vettori dal testo fornito e memorizzarli nel database vettoriale.
  • Recuperare e generare risposte: Recupera embeddings rilevanti dal database vettoriale e utilizza OpenAI GPT-4 per generare risposte basate su questi embeddings.

app-running.png

Database Vettoriale

L’applicazione utilizza Quadrant, un database vettoriale che consente di memorizzare e recuperare embeddings in modo efficiente. Quadrant è una soluzione scalabile e ad alte prestazioni per applicazioni che richiedono il recupero di informazioni pertinenti basate su query dell’utente.

Configurazione e Deployment

App Spaces facilita l’aggiunta di nuovi componenti all’applicazione, come i front-end o le integrazioni con altri servizi. Nell’evento, sono stati presentati i seguenti passi di sviluppo:

Configurazione Iniziale

Per iniziare, accedi a App Spaces nel portale Azure e scegli l’opzione per creare un nuovo ‘space’ di applicazione. Puoi selezionare un repository GitHub o usare uno dei template forniti. Configura le variabili d’ambiente necessarie, includendo le chiavi API di OpenAI.

rag-app-spaces.png

Deployment del Frontend

Il frontend, sviluppato in React, viene implementato attraverso Azure Static Web Apps. È sufficiente configurare il repository GitHub e definire la directory di output dell’applicazione. Azure Static Web Apps creerà automaticamente un pipeline CI/CD per il deployment.

aswa-app.png

Backend Deployment

Il backend in FastAPI viene distribuito utilizzando Azure Container Apps. Gestisce le richieste per la generazione e memorizzazione di embeddings, così come il recupero e la generazione di risposte.

backend-app.png

Demo dell’Applicazione RAG

Inserimento e Memorizzazione del Testo: L’utente inserisce un testo nel frontend, inviato al backend per generare e memorizzare embeddings nel database vettoriale.

Domande e Risposte: L’utente pone domande attraverso il frontend, elaborate dal backend per trovare embeddings rilevanti e generare risposte usando GPT-4 di OpenAI.

app-demo.png

Per approfondire la soluzione presentata, puoi consultare il repository GitHub app-spaces-rag-app. Inoltre, il developer advocate Julia Muiruri ha registrato un video sulla realizzazione dell’applicazione, disponibile qui di seguito:

Gestione ed Estendibilità

App Spaces facilita l’aggiunta di nuovi componenti all’applicazione e l’integrazione con altri servizi. La piattaforma fornisce un’interfaccia di gestione intuitiva per visualizzare log, metriche e configurare variabili d’ambiente.

Indipendentemente dalla linguaggio di programmazione del backend, App Spaces è un’ottima opzione per gestire le applicazioni. Sviluppatori di Python, .NET, Node.js, Java, o Go possono tutti utilizzare questa piattaforma per il deployment.

Per accedere ad esempi di applicazioni in diverse lingue di programmazione, visita il repository GitHub app-spaces-samples.

Risorse Addizionali

Ecco alcuni link utili per esplorare ulteriormente App Spaces e il suo impatto sullo sviluppo delle applicazioni moderne:

Spero che questa guida ti sia stata utile. Se hai domande o suggerimenti, lascia un commento qui sotto.

Alla prossima!