Training Menu

 Agent WhatsApp IA avec Google ADK (Agent Development Kit)

Donald Porgrammeur
Donald Porgrammeur
April 22, 2025 · 5.00 min read
0
Data Science and AI
 Agent WhatsApp IA avec Google ADK (Agent Development Kit)

 

 Agent WhatsApp IA avec Google ADK (Agent Development Kit)

🎯 Objectif

  • Capturer un message WhatsApp (via Cloud API ou WhatsApp Web).

  • Le transmettre à un agent Google ADK.

  • Laisser l’agent analyser, planifier et répondre automatiquement.

  • Envoyer la réponse par WhatsApp.


📦 1. Installation des dépendances Python

On commence avec un environnement Python :

pip install flask openai google-agents python-dotenv requests

Crée un fichier .env :

OPENAI_API_KEY=sk-xxxxxxxx
WHATSAPP_TOKEN=EAAJ...
PHONE_NUMBER_ID=1234567890

🧠 2. Création de l’Agent Google ADK

agent_whatsapp.py

from google_agents import Agent, Tool

class WhatsAppResponseTool(Tool):
    def run(self, message: str) -> str:
        return f"Voici la réponse reçue : {message}"

def create_whatsapp_agent():
    tools = [WhatsAppResponseTool()]
    agent = Agent(
        tools=tools,
        llm="gpt-4",  # ou palm, gemini, etc.
        description="Agent WhatsApp qui répond de manière claire et concise"
    )
    return agent

Tu peux personnaliser WhatsAppResponseTool pour inclure une logique métier, du résumé, des analyses, etc.


🌐 3. Serveur Flask pour recevoir les messages WhatsApp

server.py

from flask import Flask, request
from agent_whatsapp import create_whatsapp_agent
import requests
import os
from dotenv import load_dotenv

load_dotenv()
app = Flask(__name__)

ACCESS_TOKEN = os.getenv("WHATSAPP_TOKEN")
PHONE_ID = os.getenv("PHONE_NUMBER_ID")
agent = create_whatsapp_agent()

def envoyer_reponse(numero, message):
    url = f"https://graph.facebook.com/v18.0/{PHONE_ID}/messages"
    headers = {
        "Authorization": f"Bearer {ACCESS_TOKEN}",
        "Content-Type": "application/json"
    }
    data = {
        "messaging_product": "whatsapp",
        "to": numero,
        "type": "text",
        "text": { "body": message }
    }
    requests.post(url, headers=headers, json=data)

@app.route("/webhook", methods=["GET", "POST"])
def webhook():
    if request.method == "GET":
        verify_token = "my_custom_verify_token"
        if request.args.get("hub.verify_token") == verify_token:
            return request.args.get("hub.challenge")
        return "Erreur de vérification", 403

    if request.method == "POST":
        data = request.get_json()
        try:
            message = data["entry"][0]["changes"][0]["value"]["messages"][0]
            numero = message["from"]
            texte = message["text"]["body"]

            print(f"[Message reçu] : {texte}")

            reponse = agent.run(texte)
            envoyer_reponse(numero, reponse)

        except Exception as e:
            print("Erreur:", e)
        return "OK", 200

if __name__ == "__main__":
    app.run(port=5000)

🧪 4. Tester avec Ngrok

Expose localement avec Ngrok :

ngrok http 5000

➡️ Copie l’URL Ngrok dans Meta > WhatsApp > Webhook Configuration.


📈 Fonctionnement Résumé

[Utilisateur WhatsApp] 
      ↓
 Message reçu par Webhook Flask
      ↓
 Transmis à Google ADK Agent
      ↓
 Génération d'une réponse claire et logique
      ↓
 Réponse envoyée automatiquement sur WhatsApp

💡 Personnalisation possible

  • Ajouter mémoire contextuelle pour suivre des conversations

  • Ajouter des outils métier (ex : API météo, BDD clients…)

  • Gérer des commandes spécifiques (ex : “!rdv” → fixer un rendez-vous)

  • Ajout de ton et style personnalisé (assistant pro, drôle, médical...)

 

0

Applaudissez pour montrer votre soutien

Donald Porgrammeur

Donald Porgrammeur

5 Followers · Writer for Data Science and AI

Tedom Noutchogouin Donald est Software Architect, DevOps Engineer et Machine Learning Engineer, fondateur de HooYia, une entreprise technologique spé… Read more