Inspiration

Il arrive que des personnes demandent de l'aide la nuit, ou lorsqu'aucun intervenant qualifié n'est disponible. Une réponse automatique du type « un humain examinera votre dossier » peut s'avérer contre-productive : elle risque d'effrayer une personne qui ne recherchait qu'un simple conseil, tout en laissant dans l'attente quelqu'un qui se trouve en réel danger. Ngemba IA a été conçu pour combler cette lacune : écouter en priorité, poursuivre l'échange lorsque des conseils suffisent, et ne solliciter l'équipe que lorsque la situation exige une intervention plus poussée.

Fonctionnement

Ngemba est un service de protection des citoyens en République démocratique du Congo, accessible via une application dédiée ou sur Telegram.

L'écran d'accueil propose quatre options : « SOS » (pour les personnes en danger), « Témoin » (pour les personnes observant une situation à distance), « VBG » (pour les cas de violences, les situations impliquant des enfants, ou toute personne ayant besoin d'être orientée avant même de devoir décliner son identité), et « Enquête » (un court questionnaire facultatif, sans caractère d'alerte, qui nous aide à mieux comprendre les besoins de la communauté).

Ngemba analyse le message et répond dans la langue utilisée par la personne — parmi le français, l'anglais, le lingala, le swahili, le tshiluba et le kikongo. Le système traite un sujet à la fois, sans recourir à des scripts rigides qui ignoreraient le contenu de l'échange. Sur Telegram, les messages vocaux reçoivent une réponse vocale, tandis que les messages textuels reçoivent une réponse écrite. Dans l'application, les messages vocaux sont transcrits, reformulés dans le champ de saisie, puis font l'objet d'une réponse écrite. Les enregistrements sont limités à 60 secondes et les messages écrits à 500 caractères, afin de garantir que le modèle puisse traiter les informations efficacement.

L'équipe n'est alertée que si le danger est immédiat, si la situation est grave et clairement identifiée, ou si la personne demande explicitement à parler à un humain. Une manipulation spécifique sur le logo permet également de déclencher une alerte discrète. Lorsqu'une intervention humaine est nécessaire, un e-mail est envoyé aux quatre membres de notre équipe (et non aux organisations partenaires). Jeff assure la coordination ; Jérémie prend en charge les questions de protection et les VBG ; Joyce intervient en cas de danger immédiat ; Timothée gère les signalements de témoins et assure les premières réponses. Chacun d'entre nous peut accéder au dossier et répondre dans la messagerie sous son propre nom. Si le téléphone fournit une nouvelle localisation GPS, l'interface affiche le point ainsi que sa précision en mètres. Si l'accès au GPS est refusé, l'adresse IP permet tout de même d'estimer la ville. Ces deux informations ne sont jamais présentées comme étant identiques.

Conception technique

Ngemba est un service développé avec Next.js. Un moteur de règles analyse chaque message pour déterminer si une intervention humaine est nécessaire. Lorsqu'une véritable conversation est requise, Claude — via l'API d'Anthropic — génère la réponse. En cas d'échec de cet appel, une réponse prédéfinie en local est envoyée. ElevenLabs assure la transcription et, sur Telegram, la synthèse vocale. La session, l'historique des 40 derniers échanges et la décision d'envoyer une notification sont gérés en interne par Ngemba.

Au début, nous avons utilisé n8n pour connecter Telegram et la messagerie électronique. Cependant, la logique décisionnelle n'était pas intégrée à ce flux : si un workflow peut acheminer un message, il ne peut pas évaluer si un simple conseil suffit encore.

Défis rencontrés

Au départ, les réponses sur Telegram se limitaient systématiquement à la même phrase — parfois dans la mauvaise langue — car nos règles classaient presque toutes les interactions comme nécessitant une « intervention humaine ». Nous avons donc distingué les alertes prioritaires des conversations courantes.

L'utilisation de n8n donnait une impression d'aboutissement qui ne reflétait pas la réalité. Une étape de workflow attendant un clic ne constitue pas un véritable dialogue. Par ailleurs, un envoi sur Telegram a échoué faute de contexte de conversation valide.

L'application permettait l'enregistrement vocal, mais la lecture restait bloquée à 0:00, sans aucun son. Nous avons donc abandonné la lecture audio : l'utilisateur s'exprime, Ngemba transcrit et reformule, puis fournit une réponse textuelle.

Les données GPS, bien qu'en apparence précises, ne l'étaient pas toujours : le navigateur renvoyait parfois une position mise en cache, située à plusieurs kilomètres de là. Désormais, nous attendons une localisation actualisée et affichons le rayon de précision, tandis que l'adresse IP sert à estimer la ville.

Par ailleurs, le crédit d'un modèle utilisé précédemment a été épuisé, entraînant un recours systématique aux réponses vocales locales. L'application continuait de répondre, mais sans réelle capacité de décision. Nous avons donc confié la génération des réponses à Claude.

Réalisations dont nous sommes fiers

Les utilisateurs peuvent communiquer par écrit ou par oral, que ce soit via l'application ou sur Telegram, et recevoir des réponses cohérentes avec le fil de la conversation. Les dossiers sensibles évitent les longs échanges par messagerie et sont transmis directement à l'équipe. L'historique est conservé, quel que soit le canal utilisé. Les rôles restent bien distincts : Ngemba prend une décision, le message est transmis via le canal approprié, et un membre de l'équipe prend en charge le dossier uniquement lorsque les règles l'exigent ou qu'une demande en ce sens est formulée.

Nous pouvons illustrer concrètement ce transfert : quatre personnes, quatre responsabilités, un dossier unique, et une interface de messagerie où l'utilisateur peut voir qui lui a répondu.

Ce que nous avons appris

Un schéma d'automatisation ne constitue pas un produit en soi. Des nœuds non connectés ne sont d'aucune utilité. Le modèle doit pouvoir suggérer de « poursuivre les conseils », mais le code doit prendre le dessus dès que des règles de sécurité entrent en jeu. Un mécanisme de secours est tout aussi crucial que le modèle lui-même, car les utilisateurs doivent obtenir une réponse même en cas de défaillance de l'API.

Nous avons également appris à abandonner une fonctionnalité qui, bien qu'apparemment moderne, ne fonctionnait pas comme prévu. Un flux audio silencieux s'est avéré moins pertinent qu'une transcription textuelle explicite. De même, une donnée de localisation dépourvue d'indication sur sa précision est moins utile qu'une estimation de la ville basée sur l'adresse IP.

La suite pour Ngemba IA

L'intégration de WhatsApp, en suivant la même logique décisionnelle que pour l'application et Telegram. L'ajout du tshiluba et du kikongo — qui s'appuient encore sur le français. Le déploiement auprès d'organisations pilotes, une fois que ce processus interne sera parfaitement stabilisé. Pour les cas de violences basées sur le genre (VBG), la prise en charge reste assurée par un humain dès lors que la situation est grave. La règle demeure inchangée. Écoutez d’abord, et appelez-nous lorsque les conseils ne suffisent plus.

Built With

Share this project:

Updates

Submission history