0% ont trouvé ce document utile (0 vote)
1 vues22 pages

BabyChat Guide Conception

Le document est un guide complet pour la conception de BabyChat, un assistant virtuel prénatal au Bénin, détaillant les étapes de développement, les outils à utiliser et les prompts pour l'IA. Il couvre l'environnement de développement, la base de données, le backend, l'installation de Llama 3, l'API WhatsApp Business, et l'interaction vocale. Chaque section fournit des instructions claires et des ressources pour faciliter le processus de création de l'application.

Transféré par

fh7rn66fp2
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
1 vues22 pages

BabyChat Guide Conception

Le document est un guide complet pour la conception de BabyChat, un assistant virtuel prénatal au Bénin, détaillant les étapes de développement, les outils à utiliser et les prompts pour l'IA. Il couvre l'environnement de développement, la base de données, le backend, l'installation de Llama 3, l'API WhatsApp Business, et l'interaction vocale. Chaque section fournit des instructions claires et des ressources pour faciliter le processus de création de l'application.

Transféré par

fh7rn66fp2
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

■ BabyChat

Guide de Conception Complet


Assistant Virtuel Prénatal · Bénin

HOUNKPE Narcisse & FADEGNON Marjus · GETECH / ESM-Bénin · 2025–2026

Ce document est ton guide de construction de BabyChat. Pour chaque partie du projet, tu
trouveras : un résumé bref, l'outil gratuit à utiliser, les actions manuelles, et le prompt exact à
donner à l'IA. Tout est gratuit.

Légende des icônes


■ GRATUIT Outil 100% gratuit, open source ou free tier

■ MANUEL Action à faire toi-même (pas d'IA)

■ IA Confie cette tâche à une IA via le prompt fourni

■■ OUTIL Outil ou plateforme à utiliser


PARTIE 1 Environnement de Développement

Configurer Windsurf (fork VS Code) + Python + Docker

Résumé
Tout le code de BabyChat sera écrit dans Windsurf, un éditeur de code gratuit basé sur VS Code, avec
des IA intégrées pour t'aider à coder. Tu dois installer Python, Docker, et Git sur ton ordinateur.

Actions manuelles (■ à faire toi-même)

■■ Win Télécharge et installe Windsurf (fork VS Code avec IA)


dsurf [Link] — clique sur Download, installe comme un programme normal

■■ Installe Python sur ton ordinateur


Python
[Link] — prends la version 3.12.x, coche 'Add to PATH' pendant l'installation
3.12

■■
Docker Installe Docker (pour faire tourner tous les services)
Deskto [Link] — version gratuite (Community Edition)
p

Installe Git (pour sauvegarder ton code)


■■ Git
[Link] — installation par défaut

■ Exte
nsions Dans Windsurf, installe : Python, Docker, GitLens, REST Client
Windsu Ctrl+Shift+X → cherche chaque extension → Install
rf

■ PROMPT À DONNER À L'IA

Je développe BabyChat, un chatbot prénatal pour les femmes enceintes au Bénin, via
WhatsApp Business API. Le backend est en Python 3.12 + FastAPI. Génère-moi la
structure complète du projet (dossiers et fichiers) ainsi que le fichier
[Link] avec toutes les dépendances : fastapi, uvicorn, python-dotenv,
httpx, ollama, sqlalchemy, asyncpg, redis, apscheduler, python-multipart. Explique
le rôle de chaque dossier.

■ LIENS UTILES

Windsurf (éditeur avec IA) → [Link]

Python 3.12 → [Link]

Docker Desktop (gratuit) → [Link]


PARTIE 2 Base de Données

PostgreSQL 16 + PostGIS + Redis — Schéma complet

Résumé
La base de données stocke tous les profils des femmes enceintes, leur historique de symptômes, les
alertes et les centres de santé géolocalisés. PostgreSQL avec PostGIS gère la géolocalisation (trouver le
centre le plus proche). Redis garde en mémoire les conversations en cours.

Ce que l'IA va faire pour toi (■)


Donne le prompt ci-dessous à l'IA dans Windsurf (ou Claude/ChatGPT). Elle va générer tout le code SQL
pour créer les tables, les index, et le fichier [Link].

■ PROMPT À DONNER À L'IA

Je construis BabyChat, un assistant prénatal WhatsApp pour le Bénin. Génère le


schéma SQL complet pour PostgreSQL 16 + PostGIS avec ces tables : 1. utilisatrices
(id, nom, prenom, telephone, ddr, semaine_grossesse, localisation PostGIS,
allergies[], sage_femme_id, personne_proche_id, centre_habituel_id,
date_inscription) 2. sage_femmes (id, nom, telephone) 3. personnes_proches (id, nom,
telephone, relation, utilisatrice_id) 4. consultations (id, utilisatrice_id,
type_cpn, date_prevue, date_confirmee, centre_id) 5. symptomes (id, utilisatrice_id,
description, niveau_alerte ENUM('VERT','ORANGE','ROUGE'), date_signalement, source
ENUM('texte','vocal','case')) 6. alertes (id, utilisatrice_id, niveau, message,
date, statut, destinataires JSONB) 7. centres_sante (id, nom, localisation PostGIS,
type, telephone, horaires) 8. questionnaires (id, utilisatrice_id, date_envoi,
reponses JSONB, niveau_alerte_resultat, complet) 9. conseils_nutritionnels (id,
semaine_min, semaine_max, besoin, contenu, aliments_locaux[], allergies_exclues[])
Inclus aussi le fichier [Link] complet avec PostgreSQL 16 + PostGIS,
Redis 7. Ajoute les index géospatiaux PostGIS et les index sur telephone et
niveau_alerte.

Actions manuelles (■)


• Dans Docker Desktop, lance le [Link] généré par l'IA : clic droit → Open Terminal →
tape : docker compose up -d
• Vérifie que PostgreSQL tourne : dans Docker Desktop, tu verras les containers en vert
• Pour explorer ta base de données, installe DBeaver (gratuit) : [Link] — c'est une interface
graphique pour voir tes tables
• Connecte DBeaver à ton PostgreSQL local : Host=localhost, Port=5432, Database=babychat,
User=postgres

■ LIENS UTILES

DBeaver (interface graphique base de données, gratuit) → [Link]


Documentation PostgreSQL + PostGIS → [Link]

Docker Compose — guide débutant → [Link]


PARTIE 3 Backend FastAPI

Le cerveau de BabyChat — Réception et traitement des messages

Résumé
Le backend est le cœur technique de BabyChat. Il reçoit les messages WhatsApp, les envoie à Llama 3
pour analyse, compare les symptômes aux seuils médicaux, déclenche les alertes, et répond à la femme
enceinte. Tout est en Python avec FastAPI.

Structure des fichiers à créer (■ → l'IA génère le code)


Fichier Rôle

[Link] Point d'entrée de l'application FastAPI

[Link] Reçoit les messages WhatsApp (endpoint /webhook)

message_processor.py Traite chaque message selon son type

llm_service.py Communication avec Ollama (Llama 3 NLP + LLM)

alert_service.py Système d'alerte en cascade 3 niveaux

[Link] APScheduler — rappels CPN, questionnaires hebdo

whatsapp_client.py Envoi de messages via WhatsApp Business API

[Link] Modèles de données SQLAlchemy

[Link] Connexion PostgreSQL asynchrone

■ PROMPT À DONNER À L'IA

Je construis BabyChat, assistant prénatal WhatsApp pour femmes enceintes au Bénin.


Backend Python 3.12 + FastAPI + PostgreSQL/PostGIS + Redis + Ollama (Llama 3).
Génère le fichier [Link] complet qui : 1. Reçoit les webhooks POST de WhatsApp
Business API 2. Vérifie la signature HMAC-SHA256 (sécurité) 3. Gère la vérification
GET du webhook (token) 4. Détecte le type de message : texte, vocal (audio),
interactif (cases cochées) 5. Route vers le bon handler asynchrone 6. Retourne
toujours HTTP 200 (obligatoire WhatsApp) Utilise FastAPI, httpx asynchrone,
python-dotenv pour les variables d'environnement. Ajoute les imports et la gestion
des erreurs complète.
PARTIE 4 Installation de Llama 3 via Ollama

Le modèle d'IA qui comprend et répond — 100% local, gratuit

Résumé
Llama 3 est le cerveau IA de BabyChat. Il joue deux rôles : analyser les messages des femmes (extraire
les symptômes) et générer des réponses bienveillantes. Ollama est l'outil gratuit qui fait tourner Llama 3
directement sur ton ordinateur ou ton serveur, sans payer aucun service cloud.

Installation (■ Manuel)

Va sur [Link] et clique Download. Installe pour ton système


Étape 1
(Windows/Linux/Mac).

Ouvre un terminal et tape : ollama pull llama3


Étape 2
(Ça télécharge le modèle Llama 3 — environ 4 GB, attends la fin)

Teste que ça marche : ollama run llama3


Étape 3
Tape un message test comme 'Bonjour' et attends la réponse.

Étape 4 Pour arrêter le mode interactif : tape /bye

Ollama tourne maintenant sur [Link] — BabyChat s'y connecte


Étape 5
automatiquement

Prompt pour générer le service LLM de BabyChat (■)


■ PROMPT À DONNER À L'IA

Génère le fichier llm_service.py pour BabyChat (assistant prénatal Bénin). Ce


fichier doit contenir : 1. FONCTION analyze_symptoms(message: str) -> dict - Envoie
le message à Ollama (Llama 3) avec ce prompt système : 'Extrais les symptômes
médicaux en JSON strict, sans markdown, sans explication.' - Retourne : {fievre:
bool, cephalee: bool, trouble_visuel: bool, saignement: bool, douleur_abdominale:
bool, oedeme: bool, mouvement_foetal_reduit: bool} 2. FONCTION
generate_response(message: str, user_context: dict) -> str - user_context contient :
semaine_grossesse, allergies, prenom - Utilise ce SYSTEM_PROMPT fixe : 'Tu es
l'assistant prénatal BabyChat, Bénin. Tu parles avec empathie et bienveillance. Tu
n'es PAS un médecin. Pour tout symptôme grave, tu orientes vers la sage-femme. Tu
adaptes tes conseils aux aliments béninois locaux (moringa, baobab, niébé). Réponds
en français simple, maximum 3 phrases.' 3. FONCTION determine_alert_level(symptoms:
dict) -> str - Retourne 'ROUGE' si : cephalee+trouble_visuel, ou saignement, ou
mouvement_foetal_reduit - Retourne 'ORANGE' si : fievre, ou oedeme, ou
douleur_abdominale - Retourne 'VERT' sinon Utilise httpx asynchrone pour appeler
[Link] Ajoute gestion des erreurs et timeout de 30
secondes.
■ LIENS UTILES

Ollama — téléchargement gratuit → [Link]

Documentation Ollama API → [Link]

Llama 3 — modèle Meta open source → [Link]


PARTIE 5 WhatsApp Business API

Connexion au canal de communication principal de BabyChat

Résumé
WhatsApp Business API est la porte d'entrée de BabyChat. C'est via cette API officielle de Meta que les
femmes enceintes envoient leurs messages et reçoivent les réponses. Elle est GRATUITE jusqu'à 1 000
conversations par mois — largement suffisant pour un projet pilote au Bénin.

Étapes d'activation (■ 100% Manuel — Très important)

Créer un compte Meta for Developers


1
Va sur [Link] → clique 'Get Started' → connecte-toi avec un compte Facebook

Créer une App Meta


2 Dans le tableau de bord → clic 'Create App' → choisis 'Business' → donne un nom à ton app (ex:
BabyChat-Benin)

Ajouter WhatsApp au produit


3
Dans ta nouvelle app → clique '+ Add Product' → cherche 'WhatsApp' → clique 'Set up'

Obtenir un numéro de test


4 Dans WhatsApp → API Setup → tu vois un numéro de test gratuit Meta → copie le Phone Number ID et
l'Access Token

Configurer le Webhook
5 Dans WhatsApp → Configuration → Webhook → entre l'URL de ton serveur + un Verify Token que tu
inventes → abonne-toi aux événements 'messages'

Obtenir un nom de domaine + SSL


6 Ton webhook DOIT être en HTTPS. Utilise Ngrok (gratuit) pendant les tests : [Link] → installe
et tape : ngrok http 8000 → il te donne une URL temporaire HTTPS

■ PROMPT À DONNER À L'IA


Génère le fichier whatsapp_client.py pour BabyChat (Bénin). Ce fichier doit contenir
ces fonctions asynchrones avec httpx : 1. send_text_message(to: str, text: str) —
envoie un message texte simple 2. send_interactive_checklist(to: str) — envoie le
questionnaire hebdomadaire avec ces cases : ['Maux de tête / tension',
'Saignements', 'Douleurs au ventre', 'Visage/mains/pieds gonflés', 'Fièvre', 'Bébé
bouge moins', 'Tout va bien ■'] 3. send_voice_message(to: str, audio_base64: str) —
envoie un message vocal 4. send_location(to: str, lat: float, lon: float, name: str)
— envoie une localisation 5. send_alert_message(to: str, level: str, message: str) —
alerte avec emoji selon niveau (■■■) Utilise les variables d'environnement :
WHATSAPP_TOKEN, PHONE_NUMBER_ID. URL de base :
[Link] Gestion des erreurs HTTP
complète.

■ LIENS UTILES

Meta for Developers — créer une app → [Link]

Ngrok — tunnel HTTPS gratuit pour tests → [Link]

WhatsApp Business API — documentation officielle → [Link]


PARTIE 6 Interaction Vocale

[Link] + Distil-Whisper (voix → texte) + Piper TTS (texte → voix)

Résumé
Cette partie permet aux femmes qui ne savent pas bien lire ou écrire d'utiliser BabyChat entièrement à
l'oral. [Link] transcrit les messages vocaux en texte (6x plus rapide que Whisper standard). Piper
TTS transforme les réponses texte en messages vocaux. Les deux sont gratuits et tournent en local.

Installation [Link] (■ Manuel)


→ Va sur [Link] → clique le bouton vert 'Code' → 'Download ZIP'
→ extrait le ZIP
→ Ouvre un terminal dans le dossier extrait et tape :
make (sur Linux/Mac) ou suis les instructions Windows dans le README
→ Télécharge le modèle Distil-Whisper French :
bash models/[Link] distil-large-v3
(environ 1.5 GB — attends la fin du téléchargement)
→ Teste la transcription : ./main -m models/[Link] -f mon_fichier.ogg

Installation Piper TTS (■ Manuel)


→ Va sur [Link] → Releases → télécharge la version pour ton OS
→ Télécharge la voix française : sur la même page Releases, cherche fr_FR-[Link] →
télécharge
→ Teste : echo 'Bonjour, je suis BabyChat' | ./piper --model fr_FR-[Link] --output_file
[Link]
→ Si tu entends la voix dans [Link], c'est installé !

■ PROMPT À DONNER À L'IA

Génère le fichier voice_service.py pour BabyChat (Bénin). Ce fichier doit contenir :


1. FONCTION transcribe_voice(audio_data: bytes) -> str - Reçoit les bytes audio
(format .ogg de WhatsApp) - Sauvegarde en fichier temporaire - Appelle [Link]
en subprocess : './[Link]/main -m models/[Link] -f {fichier} -oj'
- Parse le JSON de sortie et retourne le texte transcrit - Supprime le fichier
temporaire après transcription 2. FONCTION synthesize_speech(text: str) -> bytes -
Prend du texte en entrée - Appelle Piper TTS en subprocess : 'echo "{text}" |
./piper --model fr_FR-[Link] --output_file {tmp}.wav' - Lit les bytes du
fichier WAV généré - Retourne les bytes audio - Gestion des erreurs et timeout 15
secondes

■ LIENS UTILES

[Link] — transcription vocale locale → [Link]


Piper TTS — synthèse vocale française gratuite → [Link]

Modèles Distil-Whisper français → [Link]


PARTIE 7 Système d'Alertes en Cascade

3 niveaux : Sage-femme → Proche → Centre de santé

Résumé
C'est la fonctionnalité la plus critique de BabyChat : quand Llama 3 détecte un signe de danger (alerte
ROUGE), BabyChat envoie automatiquement des alertes en cascade : d'abord à la sage-femme, puis au
proche si pas de réponse en 10 minutes, puis au centre de santé le plus proche.

Niveau Condition Action BabyChat

■ VERT Tout va bien Réponse normale bienveillante

■ ORANGE Symptômes à surveiller Conseil + notification sage-femme (non urgente)

■ ROUGE Danger immédiat Alerte cascade immédiate 3 niveaux + géolocalisation urgence

■ PROMPT À DONNER À L'IA

Génère le fichier alert_service.py pour BabyChat (Bénin). Ce fichier gère le système


d'alerte en cascade à 3 niveaux. Contenu : 1. FONCTION
trigger_cascade_alert(utilisatrice: dict, level: str, symptoms: dict) - utilisatrice
contient : prenom, semaine_grossesse, sage_femme_tel, proche_tel, localisation
NIVEAU 1 (immédiat) : Envoie ce message WhatsApp à la sage-femme : '■ URGENT —
{prenom} (semaine {semaine}) — Symptômes détectés : {liste_symptomes} Suspicion :
{diagnostic} | Répondez OUI pour confirmer prise en charge' NIVEAU 2 (après 10 min
sans réponse sage-femme) : Message au proche : '■ {prenom} présente des symptômes
préoccupants. Accompagnez-la IMMÉDIATEMENT à la maternité la plus proche.' NIVEAU 3
(si proche ne répond pas) : Message à la patiente : '■ Tes symptômes nécessitent une
consultation urgente. ■ Centre de santé le plus proche : [calculé via PostGIS] ■
SAMU Bénin : 15 | Urgences : 112' 2. FONCTION
schedule_cascade_followup(utilisatrice_id, delay_minutes) - Planifie le niveau
suivant avec APScheduler si pas de réponse Utilise asyncio pour les délais et
APScheduler pour la planification.
PARTIE 8 Géolocalisation

OpenStreetMap + Nominatim + PostGIS — Trouver le centre le plus proche

Résumé
Quand une alerte ROUGE est déclenchée, BabyChat doit envoyer le lien vers le centre de santé le plus
proche. OpenStreetMap et Nominatim sont des alternatives gratuites à Google Maps. PostGIS calcule les
distances directement dans la base de données.

Actions manuelles importantes (■)


→ Tu dois créer un fichier CSV avec tous les centres de santé du Bénin (nom, adresse, latitude,
longitude, type, téléphone). Pour trouver les coordonnées GPS de chaque centre, utilise
[Link] — entre le nom du centre, copie la latitude et longitude.
→ Pour les maternités d'Abomey-Calavi et Cotonou en priorité (zone de déploiement pilote), collecte
au minimum : Maternité de Cotonou, CHU CNHU, Clinique St Luc, maternités de quartier connues.
→ Pour importer ton CSV dans PostgreSQL : utilise DBeaver → clic droit sur la table centres_sante →
Import Data → CSV

■ PROMPT À DONNER À L'IA

Génère le fichier geolocation_service.py pour BabyChat (Bénin). 1. FONCTION


find_nearest_center(user_lat: float, user_lon: float, preferred_id: int = None) ->
dict - Si preferred_id est fourni, retourne d'abord le centre habituel de la femme -
Sinon, requête PostgreSQL + PostGIS : SELECT id, nom, telephone,
ST_Distance(localisation::geography, ST_MakePoint({user_lon},
{user_lat})::geography) AS distance_metres FROM centres_sante ORDER BY
distance_metres LIMIT 1 - Retourne : {nom, telephone, distance_metres,
google_maps_link, osm_link} 2. FONCTION generate_maps_link(lat, lon, center_name) ->
str - Retourne un lien OpenStreetMap (gratuit) : '[Link]
ections?from={user_lat},{user_lon}&to;={lat},{lon}' 3. FONCTION
geocode_address(address: str) -> dict - Utilise l'API Nominatim gratuite pour
trouver les coordonnées d'une adresse : GET [Link]
rch?q={address}&format;=json&countrycodes;=bj - Retourne lat/lon Gestion des erreurs
et fallback si PostGIS indisponible.

■ LIENS UTILES

Nominatim — géocodage gratuit (Bénin : ?countrycodes=bj) → [Link]

OpenStreetMap — lien itinéraire gratuit → [Link]

PostGIS — fonctions de distance géographique → [Link]


PARTIE 9 Entraînement et Adaptation de BabyChat

Fine-tuning de Llama 3 sur données médicales béninoises

Résumé
BabyChat utilisera Llama 3 tel quel dans un premier temps. Mais pour de meilleures réponses adaptées
au contexte béninois, tu peux entraîner (fine-tuner) Llama 3 sur tes propres données. C'est un travail en
plusieurs étapes : collecter les données, les formater, entraîner, et tester.

Étape A — Collecter les données d'entraînement (■ + ■)


Extrait les informations clés : symptômes, seuils d'alerte, recommandations
■ Ton document médical
OMS, calendrier CPN. L'IA peut t'aider à formater ça.

Va sur [Link] et cherche : 'santé maternelle Bénin', 'maternité


■ [Link] Abomey-Calavi', 'complications grossesse Afrique de l'Ouest'. Copie les
articles pertinents.

■ OMS / Ministère Santé Documents officiels sur le suivi prénatal au Bénin, statistiques sanitaires
Bénin 2022 (déjà dans ta bibliographie).

■ Conversations L'IA peut générer des centaines de conversations réalistes femme-chatbot


simulées pour l'entraînement.

Tableau nutritionnel des aliments locaux (déjà dans ton document : moringa,
■ Aliments béninois
baobab, niébé, etc.)

Étape B — Générer les données d'entraînement avec l'IA (■)


■ PROMPT À DONNER À L'IA

Tu es un expert en santé maternelle et en Bénin. Génère 50 exemples de conversations


réalistes pour entraîner BabyChat, l'assistant prénatal béninois. Chaque exemple
doit suivre ce format JSON : { "instruction": "Tu es BabyChat, assistant prénatal
bienveillant pour femmes enceintes au Bénin.", "input": "[Message de la femme
enceinte]", "output": "[Réponse idéale de BabyChat en français simple, max 3
phrases]" } Couvre ces situations : - 15 cas de symptômes légers (réponse
rassurante) - 10 cas d'alertes ORANGE (conseils + suggestion de contacter la
sage-femme) - 10 cas d'alertes ROUGE (orientation urgente) - 10 cas de questions
nutritionnelles avec aliments béninois - 5 cas de tabous culturels alimentaires (ex:
interdiction des œufs) Les messages des femmes doivent être écrits simplement, comme
une béninoise utilisant WhatsApp (langage familier, mots locaux mélangés au
français).

Étape C — Entraîner Llama 3 (■ ou ■ selon ta machine)


Il y a deux options selon la puissance de ton ordinateur :

Option 1 : Google Colab (recommandée, gratuite)

Google Colab te donne accès à des GPU gratuitement. Tu peux entraîner Llama 3 avec unsloth
(bibliothèque de fine-tuning ultra-rapide). Va sur [Link] → crée un nouveau
notebook → donne le prompt suivant à l'IA pour générer le code d'entraînement.

Option 2 : Hugging Face AutoTrain (sans code, gratuit)

Va sur [Link] → Upload ton fichier JSON d'entraînement → choisis Llama 3 8B


→ lance le fine-tuning. C'est une interface graphique simple, pas besoin de coder. Le modèle entraîné
sera téléchargeable.

■ PROMPT À DONNER À L'IA

Je veux faire le fine-tuning de Llama 3 8B pour BabyChat, un assistant prénatal


béninois. Génère un notebook Google Colab complet qui : 1. Installe les
bibliothèques : unsloth, trl, transformers, datasets, bitsandbytes 2. Charge Llama 3
8B en 4-bit quantization (pour économiser la mémoire GPU) 3. Configure LoRA avec ces
paramètres : r=16, alpha=32, dropout=0.05, target_modules=['q_proj', 'v_proj',
'k_proj', 'o_proj'] 4. Charge mon dataset JSON (format {instruction, input, output})
5. Lance l'entraînement avec SFTTrainer : 3 epochs, batch_size=4, learning_rate=2e-4
6. Sauvegarde le modèle fine-tuné en format GGUF pour Ollama 7. Teste le modèle avec
un message de test béninois Explique chaque cellule du notebook en commentaires
français.

■ LIENS UTILES

Google Colab — GPU gratuit → [Link]

Hugging Face AutoTrain — fine-tuning sans code → [Link]

Unsloth — fine-tuning rapide Llama 3 → [Link]

[Link] — recherche articles maternité Bénin → [Link]


PARTIE
10 Questionnaire Hebdomadaire + Rappels CPN

APScheduler — Messages automatiques programmés

Résumé
Chaque semaine, BabyChat envoie automatiquement un questionnaire à chaque femme inscrite. Il envoie
aussi des rappels avant les CPN (J-7, J-3, Jour J). APScheduler est la bibliothèque Python gratuite qui
gère tous ces envois automatiques.

■ PROMPT À DONNER À L'IA

Génère le fichier [Link] pour BabyChat (Bénin). Utilise APScheduler


(AsyncIOScheduler) pour planifier ces tâches : 1. QUESTIONNAIRE HEBDOMADAIRE — Tous
les lundis à 8h00 (heure Bénin, UTC+1) : - Récupère toutes les utilisatrices actives
dans PostgreSQL - Pour chaque femme, envoie le questionnaire interactif WhatsApp
avec cases à cocher - Met à jour le champ 'semaine_grossesse' calculé depuis la DDR
2. RAPPELS CPN — Vérification quotidienne à 9h00 : - Pour chaque consultation à
venir dans 7 jours : envoie 'Votre CPN {numéro} est dans 7 jours le {date}' - Pour
chaque consultation dans 3 jours : rappel + conseils de préparation - Le jour J :
rappel matin + localisation du centre 3. SUIVI HEBDOMADAIRE — Mercredi à 10h00 : -
Envoie un message d'information sur le développement du bébé selon la semaine de
grossesse - Inclut un conseil nutritionnel adapté (exclut les aliments allergènes de
chaque femme) 4. ALERTE SILENCE — Détection quotidienne : - Si une femme n'a pas
répondu depuis 3 jours : message doux de vérification - 5 jours : notification à la
sage-femme - 7 jours : alerte cascade Gestion async complète, logs des envois dans
PostgreSQL.
PARTIE
11 Sécurité et Déploiement en Production

Docker Compose + VPS + SSL + Nginx

Résumé
Une fois BabyChat développé et testé en local, tu le déploies sur un VPS (serveur en ligne). Le coût est
d'environ 40 USD/mois pour un serveur suffisant. Docker Compose regroupe tous les services (FastAPI,
PostgreSQL, Redis, Ollama) en un seul fichier.

VPS recommandés (gratuits 1ère période / peu chers)


Fournisseur Prix Specs recommandées Lien

Oracle Cloud GRATUIT 4 CPU, 24 GB RAM (Always Free) [Link]

Hetzner ~5 EUR/mois 2 CPU, 4 GB RAM — suffisant test [Link]

Contabo ~8 EUR/mois 4 CPU, 8 GB RAM — idéal [Link]

DigitalOcean ~12 USD/mois 2 CPU, 4 GB RAM [Link]

■ PROMPT À DONNER À L'IA

Génère le fichier [Link] COMPLET pour BabyChat en production (Bénin).


Services à inclure : 1. babychat-api : image Python 3.12, monte le code source,
expose port 8000, dépend de db et redis 2. db : image postgres:16 + postgis, volume
persistant pour les données, variables d'env 3. redis : image redis:7-alpine, volume
persistant 4. ollama : image ollama/ollama, monte un volume pour les modèles, expose
port 11434 5. nginx : image nginx:alpine, proxy vers babychat-api sur port 80/443,
monte les certificats SSL Ajoute aussi : - Un fichier .[Link] avec toutes les
variables nécessaires - Un fichier [Link] configuré pour le proxy HTTPS avec
Let's Encrypt - Un Dockerfile pour l'image babychat-api - Des healthchecks pour
PostgreSQL et Redis - Les réseaux Docker isolés (bridge interne) Commente chaque
section.
PARTIE
12 Récapitulatif : Tous les Outils Gratuits

Tableau de référence complet — Aucun outil payant

Stack technologique 100% gratuite de BabyChat


Composant Outil Où le trouver Usage

Éditeur de code Windsurf (fork VS Code) [Link] Coder avec IA intégrée

Backend Python 3.12 + FastAPI [Link] / [Link] Cerveau de l'application

Base de données PostgreSQL 16 + PostGIS [Link] Stockage + géolocalisation

Cache Redis 7 [Link] Sessions en mémoire

IA principale Ollama + Llama 3 [Link] + [Link]/llama Compréhension + réponses

Voix → Texte [Link] + [Link]/ggerganov/[Link] Transcription vocale

Texte → Voix Piper TTS [Link]/rhasspy/piper Réponses vocales

WhatsApp WhatsApp Business API [Link] Canal de communication

Géolocalisation OpenStreetMap + [Link] Centres de santé

Conteneurs Docker + Docker Compose [Link] Déploiement

SSL gratuit Let's Encrypt + Certbot [Link] HTTPS sécurisé

Tests HTTPS local Ngrok [Link] Tunnel HTTPS pour test webhook

Fine-tuning IA Google Colab + Unsloth [Link] Entraîner Llama 3

Fine-tuning (simple) Hugging Face AutoTrain [Link]/autotrain Sans code

Interface BDD DBeaver [Link] Voir/modifier les données

Planificateur APScheduler [Link] Rappels et questionnaires auto

Monitoring Prometheus + Grafana [Link] (free) Surveiller le système

Recherche articles [Link] [Link] Trouver données maternité Bénin

VPS gratuit Oracle Cloud Always Free [Link] Serveur production gratuit
PARTIE
13 Sources de Données pour BabyChat

Méthodes, datasets et techniques d'enrichissement du modèle

Résumé
Pour que BabyChat réponde correctement aux questions sur la grossesse au Bénin, son modèle doit être
nourri avec des données médicales fiables ET des données spécifiques au contexte béninois. Voici toutes
les sources disponibles, gratuites, et les méthodes pour les utiliser.

Sources de données recommandées

■ Ton document médical MANUEL

Extrait les informations structurées : symptômes, seuils OMS, calendrier CPN, conseils nutritionnels. L'IA peut
t'aider à transformer chaque paragraph en paires (question, réponse).

■ [Link] — Recherche MANUEL + IA

Recherches recommandées : 'mortalité maternelle Bénin 2022', 'complications grossesse Afrique Ouest',
'nutrition femme enceinte aliments locaux Bénin', 'maternité Abomey-Calavi', 'hypertension gravidique signes
alerte'. Sauvegarde les résultats en fichiers texte.

■ WHO/OMS — Recommandations TÉLÉCHARGEMENT

Télécharge gratuitement sur [Link]/publications : 'WHO recommendations on antenatal care', 'Managing


complications in pregnancy'. Ces PDF sont en accès libre.

TÉLÉCHARGEMENT /
■ Ministère Santé Bénin MANUEL

Annuaire statistiques sanitaires Bénin 2022 (cité dans ta bibliographie). Protocoles nationaux CPN disponibles
auprès du personnel médical partenaire.

■ Conversations synthétiques IA

Utilise le prompt de la Partie 9 pour générer 500+ conversations réalistes. C'est la source de données la plus
importante pour fine-tuner un chatbot.

■ Base nutritionnelle locale MANUEL + IA

Ton document contient déjà le tableau des aliments béninois. Complète avec : valeurs nutritionnelles du
moringa, du baobab, du niébé, de l'igname. Sources : FAO food composition tables for Africa ([Link], gratuit).

■ Données terrain (enquêtes) MANUEL


Les échanges avec le personnel médical des centres de santé d'Abomey-Calavi et Cotonou (mentionnés dans
tes remerciements) sont une source précieuse. Collecte des cas réels anonymisés avec leur accord.

Prompt pour extraire les données d'entraînement de ton document médical


(■)
■ PROMPT À DONNER À L'IA

J'ai un document médical sur la santé maternelle et le suivi prénatal au Bénin.


Transforme le contenu ci-dessous en dataset d'entraînement pour un chatbot médical.
Pour chaque information médicale, génère 3 à 5 paires question-réponse au format
JSON : {'instruction': 'Tu es BabyChat, assistant prénatal bienveillant pour femmes
enceintes béninoises.', 'input': '[Question réaliste d'une femme enceinte
béninoise]', 'output': '[Réponse claire, empathique, en français simple, max 3
phrases]'} Règles pour les réponses : - Jamais de diagnostic médical définitif -
Toujours orienter vers la sage-femme pour les cas graves - Utiliser les aliments
béninois locaux dans les conseils nutritionnels - Ton bienveillant et rassurant -
Adapter au niveau d'alphabétisation (langage simple) [COLLE TON CONTENU MÉDICAL ICI]
Génère au minimum 30 paires. Retourne uniquement le JSON, sans explication.
PARTIE
14 Ordre de Travail Recommandé

Par où commencer — Plan d'action étape par étape

Séquence recommandée pour construire BabyChat

SEMAINE 1

✓ Installe Windsurf, Python, Docker, Git (Partie 1)

✓ Installe Ollama et télécharge Llama 3 (Partie 4)

✓ Génère et lance le [Link] avec PostgreSQL + Redis (Partie 2)

✓ Vérifie que tout tourne avec DBeaver

SEMAINE 2

✓ Génère le schéma SQL et crée les tables (Partie 2 — prompt IA)

✓ Code le [Link] et whatsapp_client.py (Partie 3 et 5)

✓ Configure WhatsApp Business API + Ngrok pour les tests (Partie 5)

✓ Test : envoie un message WhatsApp → vérifie que le webhook le reçoit

SEMAINE 3

✓ Code llm_service.py — connexion Ollama (Partie 4)

✓ Code alert_service.py — cascade d'alertes (Partie 7)

✓ Code geolocation_service.py — centres de santé (Partie 8)

✓ Importe les données des centres de santé dans PostgreSQL

SEMAINE 4

✓ Installe [Link] + Distil-Whisper et Piper TTS (Partie 6)

✓ Code voice_service.py (Partie 6 — prompt IA)

✓ Code [Link] — questionnaires et rappels CPN (Partie 10)

✓ Tests end-to-end : parcours complet d'une femme (inscription → questionnaire → alerte)

SEMAINE 5

✓ Collecte les données d'entraînement (Partie 13)


✓ Génère les conversations synthétiques avec l'IA (Partie 9)

✓ Fine-tune Llama 3 sur Google Colab (Partie 9)

✓ Déploie sur VPS avec Docker Compose (Partie 11)

Important : Le nom officiel du chatbot est BabyChat (et non Baby App ou Babypp). Utilise ce
nom dans tous tes prompts, dans le code, et dans les messages envoyés aux femmes enceintes.

Vous aimerez peut-être aussi