Le modèle comprend le message. Jamais la personne.
fahmek remplace les identifiants marocains par des étiquettes avant qu'un message ne quitte votre réseau, en darija, en arabe et en français, puis les remet dans la réponse. Il tourne sur vos propres serveurs.
Un aller-retour, quatre étapes
Le modèle ne voit jamais le RIB, et votre employé ne voit jamais d'étiquette.
- Votre employé écrit
bghit nbdl RIB dyali 999001123456789012345691
- fahmek le masque, sur votre serveur
bghit nbdl RIB dyali «MA_RIB_1»
- Le modèle répond avec l'étiquette
D'accord, le RIB «MA_RIB_1» sera mis à jour.
- fahmek remet la valeur
D'accord, le RIB 999001123456789012345691 sera mis à jour.
La correspondance des étiquettes ne vit qu'en mémoire, deux minutes avec la politique bank-pilot, puis elle disparaît.
Ce qu'il reconnaît
Neuf types d'identifiants, chacun avec sa règle. Une somme de contrôle quand elle existe ; la forme et les mots voisins quand aucune n'est publique.
| Étiquette | Identifiant | Comment il est vérifié |
|---|---|---|
| MA_RIB | Numéro de compte (RIB), 24 chiffres | Clé RIB vérifiée (mod 97) |
| MA_IBAN | IBAN marocain, MA et 26 chiffres | Chiffres de contrôle IBAN vérifiés |
| PAN | Numéro de carte, 13 à 19 chiffres | Somme de Luhn |
| MA_PHONE | Numéro de téléphone marocain, 0 ou +212 | Structure du plan de numérotation |
| Adresse e-mail | Syntaxe de la boîte aux lettres | |
| MA_CIN | Carte nationale d'identité (CIN) | Forme et mots voisins ; aucune somme de contrôle publique |
| MA_CNSS | Numéro d'immatriculation CNSS | Forme et mots voisins |
| MA_CNSS_AFFILIATION | Numéro d'affiliation employeur CNSS | Forme et mots voisins |
| MA_ICE | Identifiant d'entreprise (ICE) | Signalé, pas masqué par défaut |
Chaque règle est testée dans cinq registres : arabe standard, darija en écriture arabe, darija en lettres latines, français, et français et arabe mêlés dans une phrase. Les chiffres arabes-indiens, le tatweel et les caractères de direction cachés sont normalisés d'abord.
Fait pour rester dans la banque
Chaque règle ci-dessous est vérifiée par le service lui-même ou par ses tests, pas laissée à une note de déploiement.
- Aucun appel réseau pendant l'inspection
- Pas de télémétrie, pas de serveur de licences, pas de téléchargement de modèle. Il tourne sur un réseau isolé.
- Rien de détecté n'est écrit
- Les valeurs ne sont jamais journalisées ni écrites sur disque. Redis garde la correspondance en mémoire seulement, et fahmek refuse de démarrer sous une politique stricte si Redis peut écrire sur disque.
- Fermé en cas de panne
- Avec la politique bank-pilot, un message que fahmek ne peut pas inspecter est refusé. Il ne part jamais sans masquage.
- Moins de 15 ms au 99e centile
- Normalisation, détection et masquage d'un message jusqu'à 8 192 caractères, mesurés en CI pour chaque registre. Le trajet réseau s'y ajoute.
- Une licence hors ligne
- Un fichier signé, vérifié avec une clé intégrée à l'image. Rien n'appelle l'extérieur.
- Un secret partagé à chaque appel
- Les journaux contiennent une route, un statut et une durée : jamais le texte d'un message, jamais la clé.
S'ajoute à la passerelle que vous avez déjà
fahmek se place à côté de LiteLLM, entre vos applications et chaque fournisseur de modèles.
- Interface web de LiteLLMAjouter fahmek comme Generic Guardrail API depuis l'écran d'administration. Aucun fichier sur le proxy.
- Kit d'intégration LiteLLMDeux fichiers Python à côté de votre config.yaml. Masque chaque message et appel d'outil, restitue les réponses en streaming.
- Une machine, hors ligneToute la pile avec Docker Compose, depuis une archive qui s'installe sans Internet.
- KubernetesUn chart Helm : Redis en mémoire, règles réseau, secrets gardés hors du chart.
En option : auto-gad corrige l'orthographe française et anglaise avant que le modèle ne lise le message. Il ne touche jamais à la darija, à l'écriture arabe, aux noms ni aux étiquettes.
Ce qu'il ne fait pas
- Il trouve les identifiants qui ont une forme connue. Les noms, adresses et dates de naissance ne sont pas détectés.
- La précision a été mesurée sur un corpus synthétique de 65 messages. Sur de vrais messages, elle se mesure pendant un pilote, chez vous, sur vos propres données.
- Il n'inspecte ni images, ni audio, ni fichiers. Les requêtes qui en contiennent sont refusées.
- Il ne couvre pas les passeports, et il ne rend pas conforme à PCI DSS.
Essayez-le sur vos propres messages
Un pilote tourne sur une de vos machines, hors ligne, avec votre passerelle et votre politique.
fahmek (فاهمك) veut dire « je te comprends » en darija.