Politique de Contenu
Détecte et bloque les catégories de contenu nuisible en utilisant la correspondance de modèles et l'analyse sémantique. S'applique à la fois au prompt de l'utilisateur (entrée) et à la réponse de l'IA (sortie).
const guard = new Guardian({
content: {
enabled: true,
sensitivity: 'medium',
categories: {
toxicity: true, // Langage offensant, insultes
hate: true, // Discours de haine ciblant des groupes protégés
violence: true, // Menaces, violence graphique
selfHarm: true, // Contenu encourageant l'automutilation
sexual: false, // Contenu sexuel explicite (désactivé par défaut)
},
},
});Configuration
| Option | Type | Défaut | Description |
|---|---|---|---|
enabled |
boolean |
false |
Activer la politique de contenu |
sensitivity |
'low' | 'medium' | 'high' |
'medium' |
Agressivité de la détection |
onInput |
boolean |
true |
Vérifier les prompts utilisateur |
onOutput |
boolean |
true |
Vérifier les réponses de l'IA |
categories.toxicity |
boolean |
true |
Langage offensant / toxique |
categories.hate |
boolean |
true |
Discours de haine |
categories.violence |
boolean |
true |
Contenu violent / menaces |
categories.selfHarm |
boolean |
true |
Encouragement à l'automutilation |
categories.sexual |
boolean |
false |
Contenu sexuel explicite |
Exemple
try {
await guard.protect(callFn, '[prompt nuisible]');
} catch (err) {
if (err instanceof ContentPolicyError) {
console.log(err.code); // 'CONTENT_POLICY_VIOLATION'
console.log(err.context.category); // 'toxicity'
console.log(err.context.score); // 0.91
console.log(err.context.direction); // 'input' | 'output'
// Renvoyer une réponse sécurisée à l'utilisateur
return Response.json({
error: 'Votre message enfreint notre politique de contenu.'
}, { status: 400 });
}
}Métadonnées du Résultat
const result = await guard.protect(callFn, safePrompt);
console.log(result.meta.contentPolicy);
// {
// passed: true,
// inputScore: { toxicity: 0.02, hate: 0.01, violence: 0.0, selfHarm: 0.0, sexual: 0.0 },
// outputScore: { toxicity: 0.01, hate: 0.0, violence: 0.0, selfHarm: 0.0, sexual: 0.0 }
// }Utilisation Autonome
import { analyzeContent } from '@edwinfom/ai-guard/content';
const report = await analyzeContent('Je déteste tous les gens de [groupe]', {
categories: { hate: true },
});
// { violations: [{ category: 'hate', score: 0.94, severity: 'high' }] }