View a markdown version of this page

Déployez Multi-Agent une plateforme Meeting Intelligence à l'aide du SDK Strands Agents et d'AWS Fargate - Recommandations AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Déployez Multi-Agent une plateforme Meeting Intelligence à l'aide du SDK Strands Agents et d'AWS Fargate

Aishita Batra et Muskan., Amazon Web Services

Résumé

Ce modèle déploie une plateforme d'intelligence des réunions multi-agents AWS Fargate qui génère automatiquement des comptes rendus structurés, des résumés, des narrations audio et des rapports PDF formatés à partir des transcriptions de réunions. La solution utilise le SDK Strands Agents pour orchestrer quatre agents d'IA spécialisés, Amazon Bedrock pour l'inférence des modèles linguistiques et Amazon Polly pour la conversion du texte en parole.

Les utilisateurs téléchargent les transcriptions des réunions via une interface Web Streamlit, et le système les traite de manière asynchrone via un pipeline d'agents coordonné. L'infrastructure se déploie automatiquement via GitHub Actions with AWS AWS Cloud Development Kit (AWS CDK) et inclut des fonctionnalités intégrées de surveillance, d'auto-scaling et de haute disponibilité.

Conditions préalables et limitations

Conditions préalables

  • Un actif Compte AWS avec des autorisations administratives

  • AWS CDK version 2.114.1 ou ultérieure installée

  • AWS CLI installé et configuré avec les autorisations Gestion des identités et des accès AWS (IAM) appropriées

  • Node.js 18 ans ou version ultérieure

  • Python 3.12 ou version ultérieure

  • Git installé

  • Docker installé (facultatif, pour les tests locaux)

  • Un GitHub compte avec des secrets de dépôt configurés : AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY

  • Amazon Bedrock avec accès au modèle Anthropic Claude 3 Sonnet activé dans votre région

  • Accès Amazon Polly activé (activé par défaut dans la plupart des régions)

  • Autorisations IAM pour Amazon Simple Storage Service (Amazon S3), Amazon Elastic Container Service (Amazon ECS), Fargate, Elastic Load Balancing, Amazon Virtual Private Cloud (Amazon VPC)

  • Amazon VPC, IAM, Amazon CloudWatch et Amazon Simple Notification Service (Amazon SNS)

Limites

  • Le temps de traitement est de 2 à 7 minutes par réunion, selon la complexité de la transcription.

  • La longueur maximale de la transcription est de 50 000 caractères par demande.

  • Les résumés audio sont automatiquement condensés à 3 000 caractères (limite de caractères Amazon Polly).

  • La disponibilité du sonnet Amazon Bedrock Claude 3 varie selon. Région AWS

  • L'état du job est stocké en mémoire et n'est pas persistant au redémarrage du conteneur, sauf si vous configurez S3-based la persistance.

  • Le téléchargement direct ne prend en charge que .txt les fichiers.

  • L'Application Load Balancer impose un délai d'attente de 15 minutes pour le traitement des demandes.

  • Certains AWS services ne sont pas disponibles dans tous les cas Régions AWS. Pour connaître la disponibilité par région, consultez la section AWS Services par région. Pour des points de terminaison spécifiques, consultez la page Points de terminaison et quotas du service, puis choisissez le lien vers le service.

Architecture

Architecture cible

La solution déploie un système d'IA multi-agents à l'aide du SDK Strands Agents sur l' AWS Fargate architecture suivante :

  1. Les utilisateurs téléchargent les transcriptions des réunions via une application Web Streamlit hébergée localement ou sur un serveur distant.

  2. Un Application Load Balancer installé dans des sous-réseaux publics répartit le trafic vers le service Fargate sur deux zones de disponibilité.

  3. Les tâches Fargate s'exécutent dans des sous-réseaux privés avec accès à la passerelle NAT et hébergent le backend FastAPI et la logique d'orchestration de l'agent Strands.

  4. Le système multi-agents Strands traite les transcriptions via quatre agents séquentiels : génération de minutes structurées, génération de résumés concis, narration audio et création de rapports PDF.

  5. Amazon Bedrock fournit une inférence de modèles linguistiques (Claude 3 Sonnet) pour les agents de génération de comptes rendus et de résumés.

  6. Amazon Polly convertit le résumé concis en narration audio MP3.

  7. Amazon S3 stocke les transcriptions téléchargées, les fichiers de sortie générés et l'état des tâches conformément aux politiques de gestion du cycle de vie.

  8. Amazon CloudWatch fournit une journalisation centralisée, des alarmes relatives au processeur et à la mémoire, ainsi qu'une surveillance de l'état des services grâce aux notifications Amazon SNS.

  9. GitHub Actions permet un CI/CD déploiement automatisé AWS CDK grâce à des tests de validation de l'intégrité.

Automatisation et mise à l'échelle

  • Mise à l'échelle automatique d'ECS Fargate : dimensionnement automatique des conteneurs de 1 à 3 instances sur la base de seuils d'utilisation du processeur et de la mémoire de 70 %.

  • CloudWatchsurveillance : alarmes du processeur (65 %), de la mémoire (80 %) et de l'état du service intégrées aux notifications Amazon SNS.

  • Application Load Balancer : distribution du trafic avec des contrôles de santé toutes les 60 secondes et un délai d'inactivité de 15 minutes pour les tâches de traitement par IA de longue durée.

  • Traitement des tâches en arrière-plan — Analyse des réunions asynchrones à l'aide de FastAPI BackgroundTasks pour l'exécution simultanée de tâches.

  • S3-based persistance des tâches : stockage permanent de l'état des tâches dans Amazon S3 qui garantit la continuité des tâches lors des redémarrages de conteneurs et des événements de dimensionnement.

  • GitHub Actions CI/CD — Pipeline de déploiement automatisé avec provisionnement de l'infrastructure CDK et tests de validation de l'intégrité.

Outils

Services AWS

  • Amazon Bedrock — Fournit une inférence de modèles linguistiques (Claude 3 Sonnet) pour les agents d'analyse et de synthèse des réunions. Consultez la documentation Amazon Bedrock.

  • Amazon CloudWatch — Surveille les performances des conteneurs, capture les journaux des applications et déclenche des alarmes concernant les seuils de santé du processeur, de la mémoire et des services. Consultez la CloudWatch CloudWatch documentation Amazon.

  • Amazon Elastic Container Service (Amazon ECS) — Orchestre les tâches liées aux conteneurs Fargate à l'aide de contrôles de santé et de découverte de services. Consultez la documentation Amazon ECS.

  • Amazon Polly — Convertit les résumés concis des réunions en narrations audio MP3. Consultez la documentation Amazon Polly.

  • Amazon Simple Notification Service (Amazon SNS) : envoie des notifications d'alarme issues de la surveillance. CloudWatch Consultez la documentation Amazon SNS.

  • Amazon Simple Storage Service (Amazon S3) — Stocke les transcriptions téléchargées, les fichiers de sortie générés et le statut des tâches grâce à la gestion du cycle de vie. Consultez la documentation Amazon S3.

  • AWS CDK — Définit et déploie toute l'infrastructure sous forme de code. Consultez AWS CDK la documentation.

  • AWS Fargate — Exécute des charges de travail d'applications conteneurisées sans gérer de serveurs, grâce à l'auto-scaling de 1 à 3 instances. Consultez AWS Fargate la documentation.

  • Elastic Load Balancing : répartit le trafic entrant vers les tâches Fargate entre les zones de disponibilité. Consultez la documentation d'Elastic Load Balancing.

Autres outils

  • Docker — Construit des images de conteneurs pour les tests locaux. Consultez la documentation Docker.

  • FastAPI — Fournit le backend de l'API REST pour la soumission des tâches, la vérification du statut et les opérations sur les fichiers. Consultez la documentation de FastAPI.

  • GitHub Actions — Automatise le pipeline de CI/CD déploiement. Consultez la documentation sur GitHub les actions.

  • ReportLab— Génère des rapports PDF formatés à partir de comptes rendus de réunion structurés. Consultez ReportLab la documentation.

  • SDK Strands Agents — Orchestre les flux de travail multi-agents avec un minimum de code en utilisant le @tool modèle de décorateur. Consultez la documentation du SDK Strands.

  • Streamlit — Fournit l'interface utilisateur Web pour le téléchargement des transcriptions et des sorties. Consultez la documentation Streamlit.

Référentiel de code

Le code de ce modèle est disponible dans le référentiel GitHub sample-ai-meeting-minutes-generator.

Bonnes pratiques

  • Utilisez des instructions système claires et ciblées pour chaque agent afin de garantir un formatage de sortie cohérent et une documentation de réunion professionnelle.

  • Mettez en œuvre la gestion du cycle de vie Amazon S3 avec une rétention de 90 jours pour optimiser les coûts et automatiser le nettoyage des fichiers.

  • Utilisez le suivi des S3-based tâches Amazon pour maintenir l'état des conteneurs lors des redémarrages et des événements de dimensionnement afin de garantir un traitement fiable.

  • Configurez les CloudWatch alarmes relatives à l'état du processeur, de la mémoire et des services avec les notifications Amazon SNS pour une surveillance proactive.

  • Validez et nettoyez les téléchargements de fichiers et le format du contenu avant le traitement afin d'éviter les erreurs système et les problèmes de sécurité.

  • Respectez le principe du moindre privilège et accordez les autorisations minimales requises pour effectuer une tâche. Pour plus d'informations, consultez les sections Accorder le moindre privilège et Bonnes pratiques en matière de sécurité dans la documentation IAM.

  • Envisagez AWS AgentCore les déploiements de production qui nécessitent une orchestration gérée et des frais opérationnels simplifiés. Le SDK Strands est préférable lorsque vous avez besoin d'une plus grande personnalisation des interactions avec les agents et d'un contrôle spécialisé du flux de travail.

  • Mettez en œuvre une évaluation systématique des résultats des agents par rapport aux comptes rendus de réunion générés par l'homme afin d'améliorer en permanence les instructions du système et les performances des agents.

Épopées

Sous-tâcheDescriptionCompétences requises

Cloner le référentiel

  1. Pour cloner le dépôt du modèle, exécutez la commande suivante :

git clone https://github.com/aws-samples/sample-ai-meeting-minutes-generator.git
  1. Accédez au répertoire du projet :

cd meeting-minutes-app
AWS DevOps

Créez votre propre dépôt Git

  1. Créez un nouveau dépôt sur votre plateforme Git préférée (GitHub, GitLab, ou Bitbucket).

  2. Mettez à jour l'origine distante pour qu'elle pointe vers votre dépôt :

git remote set-url origin https://<your-git-platform>.com/<your-username>/<your-repo-name>.git
  1. Transférez le code vers votre dépôt :

git push -u origin main
Développeur d’applications

Configurez les secrets du référentiel pour CI/CD.

  1. Accédez à la page Paramètres de votre dépôt.

  2. Choisissez Secrets et variables, puis sélectionnez Actions (for GitHub) ou la section équivalente pour votre plateforme Git.

  3. Ajoutez les secrets de dépôt suivants :

    • Nom : AWS_ACCESS_KEY_ID, valeur : <your-aws-access-key-id>

    • Nom : AWS_SECRET_ACCESS_KEY, valeur : <your-aws-secret-access-key>

DevOps ingénieur

Déployez l'infrastructure à l'aide du CI/CD flux de travail.

  1. Déclenchez le déploiement en envoyant le code à votre branche principale :

git add . git commit -m "Deploy multi-agent meeting intelligence platform" git push origin main
  1. Le flux de travail GitHub Actions provisionne automatiquement l'infrastructure à l'aide d'AWS CDK.

DevOps ingénieur

Vérifiez le déploiement de l'infrastructure.

  1. Accédez à la CI/CD section de votre dépôt (par exemple,https://github.com/<your-username>/<your-repo-name>/actions).

  2. Choisissez le flux de travail en cours pour consulter les journaux et les progrès en temps réel.

  3. Ouvrez le AWS Management Console et naviguez jusqu'au AWS CloudFormation service.

  4. Sélectionnez la MeetingMinutesFargateStackpile dans la liste.

  5. Vérifiez que l'état de la pile indique CREATE_COMPLETE.

  6. Choisissez l'onglet Outputs et notez la valeur ServiceURL à utiliser dans la prochaine épopée.

DevOps ingénieur, administrateur cloud
Sous-tâcheDescriptionCompétences requises

Mettre en place l'environnement de développement local

  1. Accédez au répertoire de l'application :

cd meeting_minutes_agent/app
  1. Créez et activez un environnement virtuel Python :

python -m venv venv source venv/bin/activate # Linux/Mac # Or on Windows: venv\Scripts\activate
  1. Installez les dépendances obligatoires :

pip install -r requirements.txt pip install streamlit
Développeur d’applications

Récupérez l'URL du service principal.

  1. Ouvrez le AWS Management Console et naviguez jusqu'au AWS CloudFormation service.

  2. Sélectionnez la pile MeetingMinutesFargateStack.

  3. Choisissez l'onglet Outputs.

  4. Localisez la clé ServiceURL et copiez la valeur d'URL correspondante.

Administrateur du cloud

Lancez l'application et vérifiez la connectivité.

  1. Démarrez l'application Streamlit avec l'URL du backend :

BACKEND_URL="http://<your-service-url>.us-east-1.elb.amazonaws.com" streamlit run meeting_minutes_agent/app/streamlit_app.py
  1. Ouvrez un navigateur Web et accédez àhttp://localhost:8501.

  2. Vérifiez que l'interface affiche l'état de connexion du backend dans la barre latérale.

Développeur d’applications
Sous-tâcheDescriptionCompétences requises

Traitez la transcription d'une réunion et vérifiez les résultats.

  1. Téléchargez une transcription de réunion en utilisant l'une des méthodes suivantes :

    • Utilisez le sample_meeting.txt fichier fourni dans le référentiel.

    • Téléchargez votre propre transcription de réunion (.txtfichier).

    • Collez le contenu de la transcription de la réunion directement dans la zone de saisie de texte.

  2. Choisissez Generate Minutes pour démarrer le flux de traitement multi-agents.

  3. Surveillez la progression du traitement en temps réel via l'interface.

  4. Téléchargez et vérifiez les sorties générées :

    • meeting_minutes_*.txt— Comptes rendus de réunion structurés

    • meeting_audio_*.mp3— Narration du résumé audio

    • meeting_report_*.pdf— Rapport PDF complet

  5. Vérifiez que les quatre fichiers de sortie sont présents et contiennent le contenu attendu.

Développeur d’applications

Résolution des problèmes

ProblèmeSolution

Erreur d'accès au modèle Amazon Bedrock

Vérifiez que le modèle Anthropic Claude 3 Sonnet est activé dans votre région. Ouvrez la console Amazon Bedrock, choisissez Model access et vérifiez que Claude 3 Sonnet indique que l'accès est accordé.

Le bootstrap du CDK échoue

Exécutez cdk bootstrap aws://<account-id>/<region> manuellement avant le déploiement. Vérifiez que vos AWS CLI informations d'identification sont autorisées pour CloudFormation Amazon S3 et IAM.

  • La tâche Fargate ne démarre pas

Consultez la console Amazon ECS pour obtenir des informations sur les tâches arrêtées. Les causes courantes incluent des autorisations de rôle IAM incorrectes, un accès manquant à Amazon Bedrock ou des problèmes de configuration VPC. Passez en revue les CloudWatch journaux de la tâche.

Délais de traitement (délai ALB de 15 minutes)

L'Application Load Balancer a un délai d'inactivité de 15 minutes. Pour les transcriptions très longues, réduisez la taille d'entrée à moins de 50 000 caractères ou augmentez le délai d'expiration de l'ALB dans la configuration du CDK.

La génération audio échoue

Amazon Polly est limité à 3 000 caractères. L'agent de synthèse concis condense automatiquement le contenu en dessous de cette limite. Si la génération audio échoue toujours, vérifiez que l'accès à Amazon Polly est activé dans votre région.

GitHub Le déploiement des actions échoue

Vérifiez que AWS_ACCESS_KEY_ID les secrets AWS_SECRET_ACCESS_KEY du référentiel sont correctement configurés. Vérifiez que l'utilisateur IAM dispose des autorisations nécessaires au déploiement du CDK (CloudFormation Amazon ECS, Amazon S3, IAM).

Backend non connecté (Streamlit indique qu'il est déconnecté)

Vérifiez que la variable d'BACKEND_URLenvironnement correspond à l'URL du service dans l'onglet Outputs. CloudFormation Vérifiez que le service Fargate fonctionne et fonctionne correctement dans la console Amazon ECS.

État du job perdu après le redémarrage du conteneur

Activez la persistance des S3-based tâches Amazon en configurant la variable d'S3_JOB_TRACKINGenvironnement. Sans cela, l'état de la tâche est stocké en mémoire uniquement et perdu au redémarrage du conteneur.

Ressources connexes

Références

Outils

Informations supplémentaires

Multi-agent flux de travail de traitement

La solution orchestre le traitement des réunions par le biais de quatre agents spécialisés qui s'exécutent de manière séquentielle dans le cadre des tâches Fargate. Chaque tâche se voit attribuer un identifiant de tâche unique et est exécutée de manière asynchrone pour des raisons d'évolutivité et d'isolation des pannes.

  1. Générateur de comptes rendus structurés (generate_structured_minutes) — Prend en entrée la transcription et le titre bruts de la réunion. Utilise Amazon Bedrock Claude 3 Sonnet pour produire des comptes rendus de réunion complets, y compris les informations sur les réunions, les points de l'ordre du jour, le résumé des discussions, les mesures à prendre avec les destinataires et les délais, ainsi que les prochaines étapes. Enregistre le résultat sous forme de fichier texte brut.

  2. Générateur de résumé concis (concise_minutes_agent) — Prend en entrée les minutes structurées complètes de l'agent 1. Utilise le sonnet Claude 3 d'Amazon Bedrock pour créer un résumé de moins de 3 000 caractères à des fins de génération audio et de lecture rapide.

  3. Générateur audio (audio_generator_agent) — Prend en entrée les minutes concises de l'Agent 2. Utilise l'speakoutil Strands avec Amazon Polly pour générer un fichier audio MP3 présentant un résumé concis.

  4. Générateur de rapports PDF (create_comprehensive_pdf) — Prend en entrée les minutes structurées complètes de l'Agent 1. Utilise la ReportLab bibliothèque pour produire un rapport PDF professionnel avec un style de titre personnalisé, des en-têtes de section, une mise en page de texte lisible et des métadonnées.

Flux de données

  1. Téléchargement par l'utilisateur : transcription de la réunion téléchargée via l'interface utilisateur Streamlit ou via un appel API direct.

  2. Initialisation de la tâche : FastAPI crée un identifiant de tâche unique et le renvoie immédiatement pour un traitement asynchrone.

  3. Traitement en arrière-plan — Le flux de travail de l'agent Strands en quatre étapes s'exécute de manière séquentielle.

  4. Gestion des fichiers — Les fichiers générés sont chargés sur Amazon S3 avec des URL de téléchargement présignées.

  5. Fin du travail : le statut est mis à jour avec des liens de téléchargement pour toutes les sorties générées.

Considérations relatives aux améliorations futures

  • Suivi permanent des tâches avec Amazon DynamoDB pour une fiabilité entre conteneurs

  • Multi-format support d'entrée (.docx.pdf, fichiers de transcription audio)

  • Real-time WebSocket mises à jour des progrès

End-to-End Flux de traitement

  • La solution orchestre le traitement des réunions par le biais d'une séquence coordonnée d'agents spécialisés exécutant les tâches de Fargate.

  • Chaque tâche se voit attribuer un identifiant de tâche unique et est exécutée de manière asynchrone pour garantir l'évolutivité et l'isolation des pannes.

  • Le flux de travail inclut l'ingestion des transcriptions → la génération de minutes structurées → le résumé exécutif → la narration audio → la création de rapports PDF, chaque étape étant validée et enregistrée en temps réel.

Four-Step Traitement des agents

  1. Générateur de comptes rendus structurés — produit des comptes rendus de réunion détaillés.

  2. Générateur de résumés concis : crée un résumé pour une révision rapide et une narration audio.

  3. Générateur audio — génère une narration MP3 du résumé.

  4. Générateur de rapports PDF : produit des rapports PDF raffinés et formatés.

Gestion automatisée des fichiers et intégration dans le cloud

  • Téléchargement automatique des résultats : les rapports texte, audio et PDF structurés sont automatiquement chargés sur Amazon S3 avec un partitionnement approprié par ID de tâche.

  • Contrôles d'intégrité et gestion du cycle de vie : les confirmations de téléchargement, la validation des fichiers et le nettoyage sont enregistrés pour garantir la transparence et la fiabilité opérationnelles.

  • Les tâches d'arrière-plan de FastAPI gèrent l'exécution asynchrone des tâches.

Intégration et sorties de l'interface utilisateur

  • L'interface utilisateur Streamlit affiche la connexion principale, la zone de saisie des transcriptions et Generate Minutes après le téléchargement de la transcription de la réunion via l'URL S3 Pre-signed pour lancer les tâches.

  • Une fois le traitement terminé, le texte structuré, les sorties audio et PDF peuvent être téléchargées via des URL Pre-signed S3, accessibles via des boutons cliquables dans l'interface utilisateur.