Étude de cas · IA en production

Un RAG qui répond aux agriculteurs
dans leur propre dialecte.

Un assistant de conseil agricole pour l'Égypte. Les utilisateurs tapent en arabe égyptien depuis leur téléphone ; la base, elle, est rédigée en arabe standard. Le premier jour, la recherche ne remontait presque rien. Voici comment il est devenu quelque chose que j'assume de mettre entre les mains d'agriculteurs.

Secteur
Conseil agricole · Égypte
Mon rôle
Ingénieur IA · pipeline de bout en bout
Stack
RAG · pgvector · Postgres FTS · réécriture GPT-4o
Statut
En production

01Le problème

En anglais, dans une démo, le RAG a tout du tour de magie : on verse des PDF, on interroge, le modèle répond. Ici, il fallait répondre à des questions comme « comment j'arrose ma courgette en été » (tapé ازاى اروى الكوسة فى الصيف؟) face à une documentation rédigée en arabe formel. Le même mot arrive avec des formes d'alif différentes, avec ou sans diacritiques, avec des marques RTL parasites venues d'un clavier de téléphone. Et le dialecte se superpose à tout cela.

La plupart des modèles d'embedding, même multilingues, ne voient pas que la question en dialecte et la documentation en arabe standard disent la même chose. Le premier jour, la recherche revenait presque vide.

02La contrainte qui a tout façonné

En agriculture, une dose de pesticide de travers peut tuer une récolte, voire pire. Le système n'avait pas le droit de deviner avec aplomb. Cette seule contrainte a dicté toute l'architecture de confiance : chaque réponse est notée deux fois, et le moindre doute part vers un expert humain plutôt que vers le modèle.

« Le chemin “je ne sais pas, je vais chercher quelqu'un” n'est pas un pis-aller : c'est une fonctionnalité. »

03Le pipeline

1
Normaliser la requête : jamais les documents
Retirer diacritiques, tatweel et marques RTL ; unifier les variantes d'alif. Le ta marbouta reste : il porte du sens en arabe technique. La base de connaissances est laissée intacte, pour que les mots exacts que cherchent les agriculteurs survivent.
2
Réécrire le dialecte en arabe standard, noms figés
Un appel GPT-4o en few-shot convertit l'égyptien parlé en arabe standard, avec la consigne explicite de ne pas toucher aux noms de cultures, aux noms de pesticides, aux doses, aux dates ni aux unités. Les réécritures sont mises en cache ; en cas d'échec, le système repart de la requête d'origine et fusionne les deux jeux de résultats.
3
Récupération hybride avec le tokenizer arabe
pgvector pour la sémantique, recherche plein texte Postgres pour les mots-clés ; fusion par nœud sur le score maximum. Basculer le FTS Postgres sur la configuration arabe a été un changement d'une ligne, plus utile au rappel que n'importe quelle retouche de prompt.
4
Seuils de similarité recalibrés
Les seuils cosinus de 0,7 calibrés sur l'anglais rejetaient presque toutes les bonnes correspondances arabes (valeurs réelles : 0,20–0,45). Un benchmark de 20 requêtes en arabe, français et anglais a fixé un plancher et un plafond empiriques, remappés sur une confiance de 0 à 1.
5
Confiance à deux signaux, trois issues
Le LLM déclare sa propre confiance ; la similarité de récupération sert de filet. Élevée → on répond. Moyenne → on répond avec un avertissement. Faible → on remonte à un agronome humain.
6
Chaque réponse d'expert nourrit le cerveau
Les escalades résolues sont réinjectées dans la base de connaissances sous forme de nœuds uniques, étiquetés et conservés dans la langue et le registre de l'utilisateur. Le système enrichit sa connaissance du dialecte, une escalade après l'autre.

04Le résultat

La recherche est passée de presque rien le premier jour à un système en production devant de vrais agriculteurs, sans un seul modèle d'embedding spécialement arabe. Les gains viennent d'un enchaînement d'étapes simples et honnêtes, pas d'un modèle miracle. Et grâce à la boucle de retour, l'essentiel de ce que le retriever sait aujourd'hui du dialecte n'y était pas au lancement : le système l'a appris tout seul.

~0 → utilisable
Rappel de récupération au premier jour vs. en production, mesuré sur un benchmark multilingue de 20 requêtes
3 issues
Réponse / réponse avec avertissement / expert humain, aucune supposition assurée sur un conseil critique pour la culture
6 correctifs
Normalisation, réécriture dialectale, recherche hybride, recalibrage, double confiance, boucle de retour
Auto-enrichi
Chaque escalade experte est réinjectée. La base de connaissances s'améliore à l'usage

Envie du détail technique — les règles de normalisation exactes, la fabrication du prompt de réécriture, les valeurs de seuils ? Tout est dans l'article long : L'arabe a cassé mon RAG. Voici ce qui l'a sauvé.

Un problème RAG bien réel, en vrac, et pas en anglais ? Parlons-en