Applications multimodales RAG avec Amazon Bedrock

De nos jours, les organisations doivent traiter des quantités massives de données non structurées qui existent sous divers formats, notamment des documents, des images, des fichiers audio et des fichiers vidéo. Historiquement, l’extraction d’informations significatives à partir de ces divers formats de données nécessitait des flux de travail de traitement complexes et un travail de développement important. Cependant, les technologies d’IA générative révolutionnent ce domaine en offrant de robustes capacités pour automatiser le traitement, l’analyse et l’extraction d’informations à partir de ces différents formats de documents, réduisant ainsi considérablement l’effort manuel tout en améliorant la précision et l’évolutivité.

Avec Amazon Bedrock Data Automation et Amazon Bedrock Knowledge Bases, vous pouvez désormais créer facilement de puissantes applications RAG multimodales. Ensemble, ils permettent aux organisations de traiter, d’organiser et de récupérer efficacement les informations de leur contenu multimodal, transformant ainsi la façon dont elles gèrent et utilisent les données non structurées.

Cet article vous guidera dans la création d’une application full-stack qui utilise Amazon Bedrock Data Automation pour traiter du contenu multimodal, stocke les informations extraites dans Amazon Bedrock Knowledge Bases et active des requêtes en langage naturel via une interface de questions-réponses basée sur RAG.

Cas d’utilisation pratiques

L’intégration d’Amazon Bedrock Data Automation et d’Amazon Bedrock Knowledge Bases fournit une puissante solution pour traiter de grands volumes de données non structurées dans divers secteurs, tels que :

  • Dans le secteur de la santé, les organisations doivent traiter de vastes quantités de dossiers de patients, y compris des formulaires médicaux, des images diagnostiques et des enregistrements de consultations. Amazon Bedrock Data Automation peut extraire et structurer automatiquement ces informations, tandis qu’Amazon Bedrock Knowledge Bases permet aux professionnels de la santé d’utiliser des requêtes en langage naturel telles que « Quelle était la dernière lecture de la tension artérielle du patient ? » ou « Afficher l’historique du traitement pour les patients diabétiques ».
  • Les institutions financières traitent quotidiennement des milliers de documents, des demandes de prêt aux états financiers. Amazon Bedrock Data Automation peut extraire des indicateurs financiers clés et des informations de conformité, tandis qu’Amazon Bedrock Knowledge Bases permet aux analystes de poser des questions telles que « Quels facteurs de risque ont été mentionnés dans le dernier rapport trimestriel ? » ou « Afficher toutes les demandes de prêt avec des cotes de crédit élevées ».
  • Les cabinets d’avocats doivent gérer de grandes quantités de documents relatifs aux affaires, contenant des dossiers judiciaires, des photos de preuves et des témoignages de témoins. Amazon Bedrock Data Automation peut traiter ces différentes sources, tandis qu’Amazon Bedrock Knowledge Bases permet aux avocats de s’enquérir de « Quelles preuves ont été présentées concernant les événements du 15 mars ? » ou « Trouver toutes lesdéclarations de témoins mentionnant l’accusé ».
  • Les entreprises de médias peuvent utiliser cette intégration pour une diffusion de publicités contextuelles intelligentes. Amazon Bedrock Data Automation traite le contenu vidéo, les sous-titres et l’audio pour comprendre le contexte de la scène, le dialogue et les émotions, tout en analysant les actifs publicitaires et les exigences de la campagne. Amazon Bedrock Knowledge Bases permet ensuite des requêtes complexes pour faire correspondre les publicités aux moments de contenu appropriés, telles que « Trouver des scènes d’activité de plein air positives qui incluent de la publicité pour du matériel de sport » ou « Identifier les segments publicitaires de voyage qui parlent de l’industrie du tourisme ». Cette correspondance contextuelle intelligente permet une diffusion de publicités plus pertinente et efficace, tout en maintenant la sécurité de la marque.

Ces exemples illustrent comment les capacités d’extraction d’Amazon Bedrock Data Automation, combinées aux requêtes en langage naturel d’Amazon Bedrock Knowledge Bases, transforment la façon dont les organisations interagissent avec leurs données non structurées.

Aperçu de la solution

Cette solution globale démontre les capacités avancées d’Amazon Bedrock dans le traitement et l’analyse de contenu multimodal (documents, images, fichiers audio et fichiers vidéo) en tirant parti de trois composants clés : Amazon Bedrock Data Automation, Amazon Bedrock Knowledge Bases et les modèles de base fournis via Amazon Bedrock. Les utilisateurs peuvent télécharger divers types de contenu, notamment des fichiers audio, des images, des vidéos ou des fichiers PDF, pour un traitement et une analyse automatisés.

Lorsque vous soumettez du contenu, Amazon Bedrock Data Automation le traite à l’aide de plans standard ou personnalisés pour extraire des informations précieuses. Les informations extraites sont stockées au format JSON dans un compartiment Amazon Simple Storage Service (Amazon S3), tandis que l’état du travail est suivi via Amazon EventBridge et stocké dans Amazon DynamoDB. La solution effectue une analyse personnalisée du JSON extrait pour créer des documents compatibles avec la base de connaissances, qui sont ensuite stockés et indexés dans Amazon Bedrock Knowledge Bases.

Grâce à une interface utilisateur intuitive, la solution affiche à la fois le contenu téléchargé et les informations qui en ont été extraites. Les utilisateurs peuvent interagir avec les données traitées via un système de questions-réponses basé sur la génération augmentée de récupération (RAG), alimenté par les modèles de base d’Amazon Bedrock. Cette approche intégrée permet aux organisations de traiter, d’analyser et d’obtenir efficacement des informations à partir de divers formats de contenu, tout en utilisant une infrastructure robuste et évolutive déployée à l’aide d’AWS Cloud Development Kit (AWS CDK).

Architecture

Le schéma d’architecture suivant illustre le flux de la solution :

  1. Les utilisateurs interagissent avec l’application frontale, authentifiée via Amazon Cognito.
  2. Les demandes d’API sont traitées par Amazon API Gateway et les fonctions AWS Lambda.
  3. Les fichiers sont chargés dans un compartiment S3 pour traitement.
  4. Amazon Bedrock Data Automation traite les fichiers et extrait les informations.
  5. EventBridge gère l’état du travail et déclenche le post-traitement.
  6. L’état du travail est stocké dans DynamoDB et le contenu traité est stocké dans Amazon S3.
  7. La fonction Lambda analyse le contenu traité et l’indexe dans Amazon Bedrock Knowledge Bases.
  8. Le système de questions-réponses basé sur RAG utilise les modèles de base d’Amazon Bedrock pour répondre aux requêtes des utilisateurs.

Prérequis

Backend

Pour le backend, vous devez avoir les prérequis suivants :

  • Un compte AWS.
  • Python 3.11 ou version ultérieure.
  • Docker.
  • GitHub (si vous utilisez le référentiel de code).
  • AWS CDK. Pour plus de détails et de prérequis, consultez la page Premiers pas avec AWS CDK.
  • L’accès aux modèles de base activé dans Amazon Bedrock :
    • Claude 3.5 Sonnet v2.0 d’Anthropic
    • Amazon Nova Pro v1.0
    • Claude 3.7 Sonnet v1.0 d’Anthropic

Frontend

Pour le frontend, vous devez avoir les prérequis suivants :

  • Node/npm: v18.12.1
  • Un backend déployé.
  • Au moins un utilisateur ajouté au groupe d’utilisateurs Amazon Cognito correspondant (requis pour les appels d’API d’authentification).

Tout ce dont vous avez besoin est disponible sous forme de code open source dans notre référentiel GitHub.

Guide de déploiement

Ce référentiel de code d’exemple d’application est organisé dans les dossiers clés suivants :

samples/bedrock-bda-media-solution