Un client nous a demandé un assistant WhatsApp capable de lire des PDF, analyser des photos et répondre en langage naturel. Contrainte non négociable : toutes les données devaient rester sur son propre compte AWS, sans transiter par un service tiers. On a déployé une architecture serverless basée sur Amazon Bedrock, et le résultat gère aujourd'hui plusieurs centaines de conversations par mois.
L'architecture s'appuie sur le projet open-source building-gen-ai-whatsapp-assistant-with-amazon-bedrock-and-python publié par AWS. Elle combine Amazon Bedrock, Lambda, DynamoDB et l'intégration native WhatsApp d'AWS pour créer un assistant IA multimodal 100% serverless.
Dans cet article, je détaillé cette architecture telle qu'on l'a déployée, j'explique comment chaque brique s'assemble, et je vous donne les clés pour lancer votre propre assistant IA WhatsApp privé en quelques commandes CDK.
Pourquoi un assistant WhatsApp privé sur AWS ?
Les solutions SaaS de chatbot WhatsApp ne manquent pas (on détaillé les cas d'usage métier dans notre article sur l'automatisation de la relation client par WhatsApp et IA). Mais elles posent un problème majeur : vos données transitent par des serveurs tiers. Messages clients, documents sensibles, informations métier... tout est stocké chez un fournisseur que vous ne contrôlez pas.
Avec une architecture hébergée sur votre propre compte AWS :
- Souveraineté des données : tout reste dans votre compte AWS, dans la région de votre choix (eu-west-1 pour la France). Amazon Bedrock ne stocke pas et n'utilise pas vos données pour entraîner ses modèles.
- Coût maîtrisé : architecture serverless = vous ne payez que ce que vous consommez. Pas de serveur qui tourne à vide, pas d'abonnement mensuel fixe.
- Personnalisation totale : vous contrôlez le modèle IA, les instructions de l'agent, le traitement des médias et la logique métier. Aucune limitation imposée par un SaaS.
- Multimodal natif : texte, images, vidéos, documents et notes vocales. Le modèle Amazon Nova comprend tous ces formats.
Architecture serverless : comment ça marche
L'architecture repose sur 7 services AWS qui s'enchaînent de manière event-driven. Aucun serveur à gérer, tout scale automatiquement.
Flux de traitement des messages
whatsapp_in
Les 7 services AWS au cœur de l'architecture
AWS Lambda : 3 fonctions spécialisées
- whatsapp_in : point d'entrée. Reçoit le message via SNS, identifie le type (texte, image, audio, vidéo, document), télécharge les médias dans S3, et route vers le bon traitement.
- bedrock_agent : invoque l'agent Bedrock avec le message et le contexte de conversation. Pour les médias, utilise d'abord l'API Converse pour analyser le contenu avant de le passer à l'agent.
- transcriber_done : déclenchée à la fin d'une transcription audio. Récupère le texte transcrit et le transmet à l'agent Bedrock.
Amazon Bedrock : le cerveau de l'assistant
Le projet utilise le modèle Amazon Nova via Bedrock, le service d'IA générative managée d'AWS. Deux APIs sont utilisées :
- Bedrock Agents : gère les conversations textuelles avec mémoire et instructions personnalisées. L'agent maintient le contexte sur plusieurs échanges grâce à un session ID stocké dans DynamoDB.
- Bedrock Converse API : analyse les contenus multimodaux (images, vidéos, documents). Le résultat de l'analyse est injecté dans la conversation de l'agent comme contexte supplémentaire.
DynamoDB : mémoire de conversation
Deux tables DynamoDB stockent respectivement l'historique des messages (type, contenu, horodatage, numéro de téléphone) et le contexte de session de l'agent Bedrock (session ID par utilisateur). C'est ce qui permet à l'assistant de se souvenir des échanges précédents et de fournir des réponses contextuelles. Le tout avec une latence inférieure à 10 ms.
Amazon S3 : stockage des médias
Les fichiers multimedia (images, vidéos, documents, notes vocales) sont téléchargés depuis WhatsApp et stockés dans S3 avant traitement. S3 sert aussi de destination pour les résultats de transcription d'Amazon Transcribe. Chiffrement SSE activé par défaut.
Amazon Transcribe : speech-to-text
Les notes vocales WhatsApp sont transcrites automatiquement en texte. Le service détecte la langue automatiquement (pas besoin de la spécifier) et supporte plus de 100 langues. Une fois la transcription terminée, un événement déclenche la Lambda transcriber_done qui transmet le texte à l'agent.
SNS + AWS End User Messaging : intégration WhatsApp native
AWS End User Messaging fournit une intégration WhatsApp Business native, sans passer par Twilio ou un autre intermédiaire. Les messages entrants sont publiés sur un topic SNS, qui déclenche la Lambda de traitement. Les réponses sont envoyées directement via l'API End User Messaging. Moins de latence, moins de coûts, moins de dépendances externes.
Déployer en 5 étapes avec AWS CDK
L'ensemble de l'infrastructure est définie en Python avec AWS CDK (Cloud Development Kit). Un seul cdk deploy crée toutes les ressources.
Pré-requis
- • Compte AWS avec CLI configurée
- • Python 3.8+
- • AWS CDK v2.172.0+
- • Meta Business Account (pour WhatsApp)
cd private-assistant-v2
source .venv/bin/activate
Le cdk deploy crée automatiquement : les 3 fonctions Lambda, le bucket S3, les 2 tables DynamoDB, l'agent Bedrock, le topic SNS, les rôles IAM et la configuration End User Messaging. Comptez environ 5 minutes pour le déploiement complet.
En production, on a constaté que le point qui prend le plus de temps n'est pas le déploiement AWS mais la vérification du Meta Business Account (comptez 2 à 5 jours ouvrés). Notre conseil : lancez cette étape en parallele du développement pour ne pas bloquer la mise en service.
Sous le capot : comment le code traite chaque message
La Lambda whatsapp_in est le point d'entrée. Elle reçoit les événements SNS et orchestre le traitement selon le type de message :
Message texte
Le texte est extrait du payload WhatsApp et transmis directement à la Lambda bedrock_agent via un appel Lambda asynchrone (InvocationType: Event). L'agent Bedrock génère la réponse en s'appuyant sur ses instructions et l'historique de conversation.
Image, vidéo ou document
Le média est télécharge depuis WhatsApp et stocké dans S3. Le chemin S3 est transmis à la Lambda bedrock_agent, qui utilise l'API Bedrock Converse pour analyser visuellement le contenu (description d'image, extraction de texte d'un PDF, analyse de video). Le résultat est ensuite injecté dans la conversation de l'agent comme contexte.
Note vocale
L'audio est stocké dans S3, puis un job Amazon Transcribe est lancé avec détection automatique de la langue. Une fois la transcription terminée, un événement déclenche la Lambda transcriber_done qui récupère le texte et le transmet à l'agent Bedrock. Le client peut donc parler à l'assistant comme il parlerait à un humain.
Gestion de la mémoire
Chaque message est sauvegardé dans DynamoDB avec le numéro de téléphone comme clé de partition. L'agent Bedrock utilise un session ID unique par utilisateur, stocké également dans DynamoDB, pour maintenir le contexte de conversation. Résultat : l'assistant se souvient de tout ce que le client a dit précédemment, même si la conversation s'étale sur plusieurs jours.
Estimation des coûts : combien ça coûte vraiment ?
L'avantage d'une architecture serverless : pas de coût fixe. Vous payez à l'usage. Voici une estimation pour 1 000 messages par mois :
| Service | Coût estimé / mois | Détails |
|---|---|---|
| AWS Lambda | ~ 0.50 USD | 3 fonctions, 256 MB, ~15s/invocation |
| Amazon Bedrock (Nova Lite) | ~ 3-10 USD | ~0.003 USD/requête (input + output tokens) |
| Amazon S3 | < 1 USD | Stockage médias + transcriptions |
| DynamoDB | < 1 USD | On-demand, faible volume |
| Amazon Transcribe | ~ 2-5 USD | 0.024 USD/min (si notes vocales) |
| SNS + End User Messaging | < 1 USD | + frais WhatsApp Business par conversation |
| Total estimé | 20 - 50 USD | Pour 1 000 messages/mois |
Comparaison : les solutions SaaS de chatbot WhatsApp coûtent entre 100 et 500 USD/mois avec des limites de messages. Ici, pour un volume comparable, vous êtes 3 à 10 fois moins cher, avec un contrôle total sur vos données et votre infrastructure.
Cas d'usage concrets
Cette architecture ouvre la porte à de nombreux cas d'usage grâce à sa capacité multimodale. Si vous cherchez une vision plus large de l'intégration de l'IA en entreprise, consultez notre guide pratique pour intégrer l'IA générative en PME.
Support client intelligent
Le client envoie une photo de son produit défectueux, l'IA diagnostique le problème et propose une solution. Notes vocales supportées pour les clients qui préfèrent parler.
Suivi médical
Un patient envoie une photo post-opératoire, l'IA analyse l'évolution et alerte le praticien si nécessaire. Les documents médicaux (PDF) sont analysés automatiquement. C'est exactement ce que propose PostCare.net, une solution de suivi patient par WhatsApp et IA.
Assistant formation
Les apprenants envoient leurs exercices (photos ou documents), l'IA corrige et fournit un feedback personnalisé. Support multilingue grâce à la détection automatique.
Assistant immobilier
Un prospect envoie des photos de son bien, l'IA fournit une estimation et des recommandations. Les documents (diagnostics, plans) sont analysés automatiquement.
Questions fréquentes
Combien coûte un assistant IA WhatsApp sur AWS ?
Grâce à l'architecture serverless, les coûts sont proportionnels à l'usage. Pour 1 000 messages par mois, comptez environ 20 à 50 USD tout compris. Le coût augmenté linéairement avec le volume, sans palier ni abonnement fixe.
Quels types de fichiers l'assistant peut-il traiter ?
Texte, images (JPEG, PNG), vidéos (MP4), documents (PDF, Word) et notes vocales. Les médias sont analysés par Amazon Nova via l'API Bedrock Converse. Les notes vocales sont transcrites par Amazon Transcribe avec détection automatique de la langue.
Les données sont-elles sécurisées ?
Oui. Toutes les données restent dans votre compte AWS. Bedrock ne stocke pas vos données et ne les utilise pas pour l'entraînement. S3 chiffre les fichiers avec SSE, DynamoDB chiffre au repos. Cependant, les messages transitent par WhatsApp qui à ses propres politiques de confidentialité.
Peut-on personnaliser les réponses de l'agent ?
Absolument. L'agent Bedrock accepte des instructions personnalisées qui définissent son comportement, son ton, son périmètre et ses limites. Vous pouvez lui donner une personnalité spécifique, limiter les sujets abordés et définir des règles de réponse. L'historique DynamoDB permet des réponses contextuelles.
Faut-il un Meta Business Account ?
Oui. L'intégration WhatsApp via AWS End User Messaging nécessite un Meta Business Account vérifié. La création est gratuite mais la vérification prend quelques jours. C'est le même compte que pour Facebook Ads ou Instagram Business.
Comment supprimer l'infrastructure ?
Videz le bucket S3, puis lancez cdk destroy. Toutes les ressources sont supprimées en quelques minutes. C'est l'avantage de l'Infrastructure as Code : déploiement et nettoyage en une seule commande.
Lire aussi
Envie de déployer votre assistant IA WhatsApp ?
Je vous accompagne dans le déploiement, la personnalisation et l'intégration de votre assistant IA WhatsApp sur AWS. Architecture serverless, sécurisée et optimisée en coûts.
Discutons de votre projetRéponse sous 24h - Premier échange gratuit et sans engagement