App multimodale RAG con Amazon Bedrock

Oggi, le organizzazioni devono gestire enormi quantità di dati non strutturati, che esistono in vari formati, tra cui documenti, immagini, file audio e file video. Storicamente, l’estrazione di informazioni utili da questi dati in diversi formati richiedeva complessi processi di elaborazione e un significativo sforzo di sviluppo. Tuttavia, le tecnologie di intelligenza artificiale generativa stanno rivoluzionando questo panorama, offrendo potenti funzionalità per automatizzare l’elaborazione, l’analisi e l’estrazione di informazioni da questi vari formati di documenti, riducendo drasticamente il lavoro manuale e migliorando al contempo l’accuratezza e la scalabilità.

Con Amazon Bedrock Data Automation e Amazon Bedrock Knowledge Bases, ora puoi costruire facilmente potenti applicazioni RAG multimodali. Insieme, consentono alle organizzazioni di elaborare, organizzare e recuperare in modo efficiente informazioni dai loro contenuti multimodali, trasformando il modo in cui gestiscono e utilizzano i dati non strutturati.

Questo articolo ti guiderà nella creazione di un’applicazione full-stack che utilizza Amazon Bedrock Data Automation per elaborare contenuti multimodali, archivia le informazioni estratte in Amazon Bedrock Knowledge Bases e abilita query in linguaggio naturale tramite un’interfaccia di domande e risposte basata su RAG.

Casi d’uso pratici

L’integrazione di Amazon Bedrock Data Automation e Amazon Bedrock Knowledge Bases offre una potente soluzione per gestire grandi quantità di dati non strutturati in vari settori, come ad esempio:

  • Nel settore sanitario, le organizzazioni devono elaborare grandi quantità di cartelle cliniche dei pazienti, inclusi moduli medici, immagini diagnostiche e registrazioni di consultazioni. Amazon Bedrock Data Automation può estrarre e strutturare automaticamente queste informazioni, mentre Amazon Bedrock Knowledge Bases consente agli operatori sanitari di utilizzare query in linguaggio naturale, come “Qual è stata l’ultima lettura della pressione sanguigna del paziente?” o “Mostra la storia del trattamento per i pazienti con diabete”.
  • Le istituzioni finanziarie elaborano migliaia di documenti ogni giorno, dalle domande di prestito ai rendiconti finanziari. Amazon Bedrock Data Automation può estrarre indicatori finanziari chiave e informazioni sulla conformità, mentre Amazon Bedrock Knowledge Bases consente agli analisti di porre domande come: “Quali fattori di rischio sono menzionati nell’ultimo rapporto trimestrale?” o “Mostra tutte le domande di prestito con un punteggio di credito elevato”.
  • Gli studi legali devono gestire grandi volumi di documenti di casi, tra cui documenti del tribunale, foto di prove e testimonianze di testimoni. Amazon Bedrock Data Automation può elaborare queste diverse fonti e Amazon Bedrock Knowledge Bases consente agli avvocati di interrogare “Quali prove sono state presentate sugli eventi del 15 marzo?” o “Trova tutte le dichiarazioni dei testimoni che menzionano l’imputato”.
  • Le società di media possono utilizzare questa integrazione per abilitare il targeting intelligente degli annunci contestuali. Amazon Bedrock Data Automation elabora contenuti video, didascalie e audio per comprendere il contesto della scena, i dialoghi e le emozioni, analizzando al contempo le risorse pubblicitarie e i requisiti della campagna. Quindi, Amazon Bedrock Knowledge Bases consente query complesse per abbinare gli annunci a momenti di contenuto appropriati, come “Trova scene di attività all’aperto positive contenenti pubblicità di attrezzature sportive” o “Identifica segmenti di annunci di viaggio che parlano di turismo”. Questo intelligente abbinamento contestuale offre una pubblicità più pertinente ed efficace mantenendo la sicurezza del marchio.

Questi esempi dimostrano come le funzionalità di estrazione di Amazon Bedrock Data Automation combinate con le query in linguaggio naturale di Amazon Bedrock Knowledge Bases, trasformino il modo in cui le organizzazioni interagiscono con i loro dati non strutturati.

Panoramica della soluzione

Questa soluzione completa dimostra le funzionalità avanzate di Amazon Bedrock nell’elaborazione e nell’analisi di contenuti multimodali (documenti, immagini, file audio e file video), che si ottiene attraverso tre componenti chiave: Amazon Bedrock Data Automation, Amazon Bedrock Knowledge Bases e modelli di base forniti tramite Amazon Bedrock. Gli utenti possono caricare vari tipi di contenuti, inclusi file audio, immagini, video o PDF, per l’elaborazione e l’analisi automatizzate.

Quando carichi il contenuto, Amazon Bedrock Data Automation lo elabora utilizzando blueprint standard o personalizzati per estrarre preziose informazioni. Le informazioni estratte vengono memorizzate in formato JSON in un bucket Amazon Simple Storage Service (Amazon S3), mentre lo stato del lavoro viene tracciato tramite Amazon EventBridge e conservato in Amazon DynamoDB. La soluzione esegue l’analisi personalizzata del JSON estratto per creare documenti compatibili con la knowledge base, che vengono quindi archiviati e indicizzati in Amazon Bedrock Knowledge Bases.

Attraverso un’interfaccia utente intuitiva, la soluzione visualizza contemporaneamente il contenuto caricato e le informazioni estratte. Gli utenti possono interagire con i dati elaborati tramite un sistema di domande e risposte basato su Retrieval Augmented Generation (RAG) alimentato dai modelli di base di Amazon Bedrock. Questo approccio integrato consente alle organizzazioni di elaborare, analizzare ed estrarre in modo efficiente informazioni da vari formati di contenuti, sfruttando al contempo un’infrastruttura potente e scalabile distribuita utilizzando AWS Cloud Development Kit (AWS CDK).

Architettura

Il seguente diagramma dell’architettura illustra il flusso della soluzione:

  1. Gli utenti interagiscono con l’applicazione front-end, autenticandosi tramite Amazon Cognito.
  2. Le richieste API vengono gestite da Amazon API Gateway e dalle funzioni AWS Lambda.
  3. I file vengono caricati in un bucket S3 per l’elaborazione.
  4. Amazon Bedrock Data Automation elabora i file ed estrae le informazioni.
  5. EventBridge gestisce lo stato del lavoro e attiva la post-elaborazione.
  6. Lo stato del lavoro viene memorizzato in DynamoDB e il contenuto elaborato viene memorizzato in Amazon S3.
  7. Le funzioni Lambda analizzano il contenuto elaborato e lo indicizzano in Amazon Bedrock Knowledge Bases.
  8. Il sistema di domande e risposte basato su RAG utilizza i modelli di base di Amazon Bedrock per rispondere alle query degli utenti.

Prerequisiti

Back-end

Per il back-end, avrai bisogno dei seguenti prerequisiti:

  • Un account AWS.
  • Python 3.11 o versione successiva.
  • Docker.
  • GitHub (se si utilizza un repository di codice).
  • AWS CDK. Per ulteriori dettagli e prerequisiti, consulta la Guida introduttiva ad AWS CDK.
  • Accesso abilitato ai modelli di fondazione in Amazon Bedrock:
    • Claude 3.5 Sonnet v2.0 di Anthropic
    • Amazon Nova Pro v1.0
    • Claude 3.7 Sonnet v1.0 di Anthropic

Front-end

Per il front-end, avrai bisogno dei seguenti prerequisiti:

  • Node/npm: v18.12.1
  • Back-end distribuito.
  • Almeno un utente aggiunto al pool di utenti Amazon Cognito appropriato (richiesto per le chiamate API autenticate).

Tutto ciò di cui hai bisogno è disponibile in codice open source nel nostro repository GitHub.

Guida alla distribuzione

Questo repository di codice dell’applicazione di esempio è organizzato nelle seguenti cartelle chiave:

samples/bedrock-bda-media-solution