Construire un assistant IA WhatsApp prive avec Amazon Bedrock et AWS

4 mars 2026 10 min de lecture Alexandre Gillon

Imaginez un assistant qui repond a vos clients sur WhatsApp, analyse les photos qu'ils envoient, lit leurs documents PDF, ecoute leurs notes vocales et maintient le fil de la conversation. Le tout heberge sur votre propre compte AWS, sans que vos donnees ne quittent votre infrastructure.

C'est exactement ce que permet le projet open-source building-gen-ai-whatsapp-assistant-with-amazon-bedrock-and-python publie par AWS. Une architecture 100% serverless qui combine Amazon Bedrock, Lambda, DynamoDB et l'integration native WhatsApp d'AWS pour creer un assistant IA multimodal.

Dans cet article, je decortique cette architecture, j'explique comment chaque brique s'assemble, et je vous donne les cles pour deployer votre propre assistant IA WhatsApp prive en quelques commandes CDK.

Pourquoi un assistant WhatsApp prive sur AWS ?

Les solutions SaaS de chatbot WhatsApp ne manquent pas. Mais elles posent un probleme majeur : vos donnees transitent par des serveurs tiers. Messages clients, documents sensibles, informations metier... tout est stocke chez un fournisseur que vous ne controlez pas.

Avec une architecture hebergee sur votre propre compte AWS :

  • Souverainete des donnees : tout reste dans votre compte AWS, dans la region de votre choix (eu-west-1 pour la France). Amazon Bedrock ne stocke pas et n'utilise pas vos donnees pour entrainer ses modeles.
  • Cout maitrise : architecture serverless = vous ne payez que ce que vous consommez. Pas de serveur qui tourne a vide, pas d'abonnement mensuel fixe.
  • Personnalisation totale : vous controlez le modele IA, les instructions de l'agent, le traitement des medias et la logique metier. Aucune limitation imposee par un SaaS.
  • Multimodal natif : texte, images, videos, documents et notes vocales. Le modele Amazon Nova comprend tous ces formats.

Architecture serverless : comment ca marche

L'architecture repose sur 7 services AWS qui s'enchainent de maniere event-driven. Aucun serveur a gerer, tout scale automatiquement.

Flux de traitement des messages

1
Message WhatsApp entrant
2
Amazon SNS → Lambda whatsapp_in
Texte
↓ Bedrock Agent
Image / Video / PDF
S3 → Bedrock Converse
Note vocale
S3 → Transcribe → Agent
4
Amazon Bedrock Agent (Nova) → generation de la reponse
5
Reponse envoyee via WhatsApp

Les 7 services AWS au coeur de l'architecture

AWS Lambda : 3 fonctions specialisees

  • whatsapp_in : point d'entree. Recoit le message via SNS, identifie le type (texte, image, audio, video, document), telecharge les medias dans S3, et route vers le bon traitement.
  • bedrock_agent : invoque l'agent Bedrock avec le message et le contexte de conversation. Pour les medias, utilise d'abord l'API Converse pour analyser le contenu avant de le passer a l'agent.
  • transcriber_done : declenchee a la fin d'une transcription audio. Recupere le texte transcrit et le transmet a l'agent Bedrock.

Amazon Bedrock : le cerveau de l'assistant

Le projet utilise le modele Amazon Nova via Bedrock, le service d'IA generative managee d'AWS. Deux APIs sont utilisees :

  • Bedrock Agents : gere les conversations textuelles avec memoire et instructions personnalisees. L'agent maintient le contexte sur plusieurs echanges grace a un session ID stocke dans DynamoDB.
  • Bedrock Converse API : analyse les contenus multimodaux (images, videos, documents). Le resultat de l'analyse est injecte dans la conversation de l'agent comme contexte supplementaire.

DynamoDB : memoire de conversation

Deux tables DynamoDB stockent respectivement l'historique des messages (type, contenu, horodatage, numero de telephone) et le contexte de session de l'agent Bedrock (session ID par utilisateur). C'est ce qui permet a l'assistant de se souvenir des echanges precedents et de fournir des reponses contextuelles. Le tout avec une latence inferieure a 10 ms.

Amazon S3 : stockage des medias

Les fichiers multimedia (images, videos, documents, notes vocales) sont telecharges depuis WhatsApp et stockes dans S3 avant traitement. S3 sert aussi de destination pour les resultats de transcription d'Amazon Transcribe. Chiffrement SSE active par defaut.

Amazon Transcribe : speech-to-text

Les notes vocales WhatsApp sont transcrites automatiquement en texte. Le service detecte la langue automatiquement (pas besoin de la specifier) et supporte plus de 100 langues. Une fois la transcription terminee, un evenement declenche la Lambda transcriber_done qui transmet le texte a l'agent.

SNS + AWS End User Messaging : integration WhatsApp native

AWS End User Messaging fournit une integration WhatsApp Business native, sans passer par Twilio ou un autre intermediaire. Les messages entrants sont publies sur un topic SNS, qui declenche la Lambda de traitement. Les reponses sont envoyees directement via l'API End User Messaging. Moins de latence, moins de couts, moins de dependances externes.

Deployer en 5 etapes avec AWS CDK

L'ensemble de l'infrastructure est definie en Python avec AWS CDK (Cloud Development Kit). Un seul cdk deploy cree toutes les ressources.

Pre-requis

  • • Compte AWS avec CLI configuree
  • • Python 3.8+
  • • AWS CDK v2.172.0+
  • • Meta Business Account (pour WhatsApp)
# 1. Cloner le repo
git clone https://github.com/build-on-aws/building-gen-ai-whatsapp-assistant-with-amazon-bedrock-and-python.git
cd private-assistant-v2
# 2. Creer l'environnement virtuel
python3 -m venv .venv
source .venv/bin/activate
# 3. Installer les dependances
pip install -r requirements.txt
# 4. Synthetiser le template CloudFormation
cdk synth
# 5. Deployer toute l'infrastructure
cdk deploy

Le cdk deploy cree automatiquement : les 3 fonctions Lambda, le bucket S3, les 2 tables DynamoDB, l'agent Bedrock, le topic SNS, les roles IAM et la configuration End User Messaging. Comptez environ 5 minutes pour le deploiement complet.

Sous le capot : comment le code traite chaque message

La Lambda whatsapp_in est le point d'entree. Elle recoit les evenements SNS et orchestre le traitement selon le type de message :

Message texte

Le texte est extrait du payload WhatsApp et transmis directement a la Lambda bedrock_agent via un appel Lambda asynchrone (InvocationType: Event). L'agent Bedrock genere la reponse en s'appuyant sur ses instructions et l'historique de conversation.

Image, video ou document

Le media est telecharge depuis WhatsApp et stocke dans S3. Le chemin S3 est transmis a 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 resultat est ensuite injecte dans la conversation de l'agent comme contexte.

Note vocale

L'audio est stocke dans S3, puis un job Amazon Transcribe est lance avec detection automatique de la langue. Une fois la transcription terminee, un evenement declenche la Lambda transcriber_done qui recupere le texte et le transmet a l'agent Bedrock. Le client peut donc parler a l'assistant comme il parlerait a un humain.

Gestion de la memoire

Chaque message est sauvegarde dans DynamoDB avec le numero de telephone comme cle de partition. L'agent Bedrock utilise un session ID unique par utilisateur, stocke egalement dans DynamoDB, pour maintenir le contexte de conversation. Resultat : l'assistant se souvient de tout ce que le client a dit precedemment, meme si la conversation s'etale sur plusieurs jours.

Estimation des couts : combien ca coute vraiment ?

L'avantage d'une architecture serverless : pas de cout fixe. Vous payez a l'usage. Voici une estimation pour 1 000 messages par mois :

Service Cout estime / mois Details
AWS Lambda ~ 0.50 USD 3 fonctions, 256 MB, ~15s/invocation
Amazon Bedrock (Nova Lite) ~ 3-10 USD ~0.003 USD/requete (input + output tokens)
Amazon S3 < 1 USD Stockage medias + 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 estime 20 - 50 USD Pour 1 000 messages/mois

Comparaison : les solutions SaaS de chatbot WhatsApp coutent entre 100 et 500 USD/mois avec des limites de messages. Ici, pour un volume comparable, vous etes 3 a 10 fois moins cher, avec un controle total sur vos donnees et votre infrastructure.

Cas d'usage concrets

Cette architecture ouvre la porte a de nombreux cas d'usage grace a sa capacite multimodale :

Support client intelligent

Le client envoie une photo de son produit defectueux, l'IA diagnostique le probleme et propose une solution. Notes vocales supportees pour les clients qui preferent parler.

Suivi medical

Un patient envoie une photo post-operatoire, l'IA analyse l'evolution et alerte le praticien si necessaire. Les documents medicaux (PDF) sont analyses 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 personnalise. Support multilingue grace a la detection automatique.

Assistant immobilier

Un prospect envoie des photos de son bien, l'IA fournit une estimation et des recommandations. Les documents (diagnostics, plans) sont analyses automatiquement.

Questions frequentes

Combien coute un assistant IA WhatsApp sur AWS ?

Grace a l'architecture serverless, les couts sont proportionnels a l'usage. Pour 1 000 messages par mois, comptez environ 20 a 50 USD tout compris. Le cout augmente lineairement avec le volume, sans palier ni abonnement fixe.

Quels types de fichiers l'assistant peut-il traiter ?

Texte, images (JPEG, PNG), videos (MP4), documents (PDF, Word) et notes vocales. Les medias sont analyses par Amazon Nova via l'API Bedrock Converse. Les notes vocales sont transcrites par Amazon Transcribe avec detection automatique de la langue.

Les donnees sont-elles securisees ?

Oui. Toutes les donnees restent dans votre compte AWS. Bedrock ne stocke pas vos donnees et ne les utilise pas pour l'entrainement. S3 chiffre les fichiers avec SSE, DynamoDB chiffre au repos. Cependant, les messages transitent par WhatsApp qui a ses propres politiques de confidentialite.

Peut-on personnaliser les reponses de l'agent ?

Absolument. L'agent Bedrock accepte des instructions personnalisees qui definissent son comportement, son ton, son perimetre et ses limites. Vous pouvez lui donner une personnalite specifique, limiter les sujets abordes et definir des regles de reponse. L'historique DynamoDB permet des reponses contextuelles.

Faut-il un Meta Business Account ?

Oui. L'integration WhatsApp via AWS End User Messaging necessite un Meta Business Account verifie. La creation est gratuite mais la verification prend quelques jours. C'est le meme compte que pour Facebook Ads ou Instagram Business.

Comment supprimer l'infrastructure ?

Videz le bucket S3, puis lancez cdk destroy. Toutes les ressources sont supprimees en quelques minutes. C'est l'avantage de l'Infrastructure as Code : deploiement et nettoyage en une seule commande.

Envie de deployer votre assistant IA WhatsApp ?

Je vous accompagne dans le deploiement, la personnalisation et l'integration de votre assistant IA WhatsApp sur AWS. Architecture serverless, securisee et optimisee en couts.

Discutons de votre projet

Reponse sous 24h - Premier echange gratuit et sans engagement