Analyse sémantique de l’intention
Évaluer le sens du trafic avec politiques en langage naturel, seuils block/flag et trois moteurs de scoring.
Les règles regex et keyword détectent ce qui peut être formulé littéralement. L’analyse sémantique de l’intention repère les demandes qui ont un sens interdit sans contenir de mots connus : révéler le system prompt, extraire des secrets ou contourner une règle.
Fonctionnement#
Une règle sémantique utilise une description en langage naturel, par exemple « détecter les tentatives de révéler les instructions système ». À chaque requête, le contenu est évalué par rapport aux règles activées de sa direction.
| Score | Résultat |
|---|---|
| ≥ seuil block (0.85 par défaut) | Refus HTTP 400, code semantic_rule_violation avec l’ID de règle. |
| seuil flag (0.60 par défaut) ≤ score < block | Requête autorisée, score de risque utilisateur augmenté et correspondance journalisée. |
| < seuil flag | Requête acceptée sans alerte. |
À l’enregistrement, les seuils doivent vérifier 0 ≤ flag < block ≤ 1.
Les prompts entrants sont évalués après masquage PII : les secrets expurgés ne quittent pas votre environnement. Les réponses sortantes sont évaluées telles que produites par le modèle.
Trois moteurs#
Choisissez dans Settings -> Semantic Analysis :
| Moteur | Scoring | Prérequis |
|---|---|---|
| Embeddings API | Embeddings du contenu et de la règle, puis similarité cosinus. | Endpoint embeddings compatible OpenAI. |
| Chat classifier | Un modèle chat évalue l’intention et renvoie 0.00–1.00. | Endpoint chat compatible OpenAI. |
| Embedded (local ONNX) | Modèle d’embeddings local dans le processus, entièrement hors ligne. | Aucun service externe, API key ou trafic réseau. |
Le moteur hors ligne offre la meilleure confidentialité et aucun coût par requête.
Fail-closed#
Si le niveau est actif et des règles existent, les cas suivants bloquent avec semantic_error ou semantic_unavailable : endpoint absent, embeddings non calculés, appel en erreur/timeout, endpoint invalide, vecteurs vides ou non finis, fichiers ONNX manquants, score classifier illisible. La requête n’est pas transférée sans analyse.
Pour les hôtes non loopback, HTTPS est requis ; plages privées/link-local refusées, redirections désactivées et IP validée épinglée à la connexion.
Performances#
- Concurrence chat classifier bornée (3 par défaut).
- Cache borné d’embeddings pour prompts répétés.
- Texte de plus de 4K caractères évalué par segments head + tail pour éviter le contournement par troncature.
Activation#
Désactivé par défaut. Dans Settings -> Semantic Analysis, choisissez backend, endpoint/modèle (ou moteur offline), timeout et option fail-closed (activée par défaut). La clé API vient de la configuration serveur, jamais de la base ni d’une réponse client.