Conformité — règles d'organisation
La Conformité est une couche optionnelle qui vérifie chaque requête API de votre compte selon des règles que vous définissez, avant qu’elle n’atteigne le modèle. Détection de données personnelles, périmètre d’usage, souveraineté, ton — appliqués automatiquement, côté Astrolabe Chat (France/UE).
Mode d’application
Section intitulée « Mode d’application »Un interrupteur global pour tout le compte :
| Mode | Effet |
|---|---|
| Observation | Les règles sont seulement journalisées — rien n’est bloqué ni modifié. Idéal pour roder vos règles avant de les appliquer. |
| Application | Les règles s’appliquent réellement (masquage, anonymisation, blocage, réécriture). |
Données personnelles (PII)
Section intitulée « Données personnelles (PII) »Détection déterministe (sans IA générative), par type. Pour chaque type, une action :
| Action | Effet |
|---|---|
| Ne pas contrôler | Type ignoré |
| Masquer | La donnée est remplacée par <type> (ex. <e-mail>) avant le modèle |
| Anonymiser | Remplacée par un code stable <type:abc123> — même donnée → même code (cohérence préservée dans la requête) |
| Bloquer | La requête est rejetée (400) si ce type est détecté |
Types détectés : e-mail, téléphone, nom, adresse/lieu, IBAN, carte bancaire, adresse IP, URL, portefeuille crypto, NIR (sécurité sociale), RNA (association), SIREN, SIRET, passeport, plaque d’immatriculation.
Souveraineté & limites
Section intitulée « Souveraineté & limites »- Modèles auto-hébergés uniquement : n’autorise que les modèles servis sur notre propre
infra (
astrolabe-*) et rejette tout modèle en cloud — y compris les modèles UE (mistral-*, pourtant sous juridiction UE) —, même demandés explicitement → requête rejetée (400). C’est le cran le plus strict de la souveraineté : au-delà de « données en UE », « données jamais hors de notre infra ». - Longueur maximale d’une requête (caractères) → au-delà, rejet (
400).
Règles de ton et de périmètre
Section intitulée « Règles de ton et de périmètre »Des règles en langage naturel (ce qui est autorisé, le ton attendu, le vocabulaire à employer), vérifiées par un modèle de garde souverain. En cas de non-respect :
- Bloquer : requête rejetée (
400), - Réécrire : la requête est corrigée avant d’être transmise (sinon bloquée).
Gérer un refus côté code
Section intitulée « Gérer un refus côté code »Une requête rejetée renvoie un 400 avec un message explicite :
{ "error": { "message": "Requête refusée par les règles de votre organisation : la requête contient des données personnelles interdites (e-mail).", "code": "400" }}from openai import OpenAI, BadRequestError
client = OpenAI(base_url="https://api.astrolabe.chat/v1", api_key="sk-…")try: r = client.chat.completions.create( model="mistral-small", messages=[{"role": "user", "content": "…"}], max_tokens=300, )except BadRequestError as e: # Règle de conformité violée → message dans e.message ; adapter la requête. print("Refusé :", e.message)Limites connues
Section intitulée « Limites connues »- Détection de noms et lieux : très bonne en français, jamais parfaite (modèle statistique).
- Le filtrage est un filet de sécurité robuste, pas une garantie absolue — à compléter par vos propres bonnes pratiques.