Skip to main content
Documentation
Centre d’apprentissage

Maîtrisez la modération de contenu grâce à des guides complets, des tutoriels et une documentation API

Liens rapides

Requêtes combinées avec plusieurs vérifications

Vous n’avez pas besoin d’effectuer un appel API par vérification. Un seul POST /api/v2/check peut exécuter simultanément des vérifications de texte, d’image, de mots interdits et d’antivirus sur du contenu mixte, puis renvoyer une réponse unique avec un résultat pour chacune. C’est la manière la plus efficace de modérer en une seule fois une publication qui contient une légende, une image et une pièce jointe.

Pourquoi tout modérer en un seul appel ?

Une soumission utilisateur est généralement un ensemble : du texte, des médias et des liens. Appeler l’API séparément pour chaque partie implique davantage d’allers-retours, plus de latence et une consommation de quota plus élevée. Une requête combinée exécute les vérifications activées en parallèle et vous fournit une décision unique sur laquelle agir.

Comment exécuter plusieurs vérifications à la fois ?

Placez chaque type de contenu dans content, activez les vérifications souhaitées dans settings, puis consultez les résultats par vérification. Chaque vérification activée s’exécute sur le contenu correspondant.

curl -X POST https://api.discuse.com/api/v2/check \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "content": {
      "text": "Great deal, check my profile!",
      "image_urls": ["https://example.com/post-image.jpg"],
      "document_urls": ["https://example.com/attachment.pdf"]
    },
    "settings": {
      "check_spam": true,
      "check_sentiment": true,
      "check_images": true,
      "check_antivirus": true
    }
  }'

Réponse

{
  "has_violations": true,
  "cached": false,
  "results": {
    "hits": true,
    "spamfinder": { "label": "spam", "confidence": 0.91, "is_spam": true, "hit": true },
    "sentiment": { "is_negative": false, "is_toxic": false, "score": 0.1, "hit": false },
    "images": { "status": "OK", "porn": 0.02, "sexual": 0.05, "neutral": 0.93, "hit": false },
    "antivirus": { "status": "OK", "hit": false, "details": [] }
  },
  "usage": {
    "api_requests_used": 530,
    "api_requests_limit": 10000,
    "api_requests_remaining": 9470
  }
}

Comment interpréter le résultat combiné ?

Utilisez has_violations pour la décision globale, puis consultez chaque results.<check>.hit pour savoir quelle vérification s’est déclenchée et pourquoi :

Champ Signification
has_violations Vrai si une vérification activée a signalé le contenu — votre verdict en une ligne
results.hits Le même signal global dans l’objet de résultats
results.spamfinder.hit Le spam a été détecté (tient compte des seuils ; basez-vous sur hit, pas sur la valeur brute is_spam)
results.sentiment.hit Sentiment toxique/négatif au-dessus de vos seuils
results.images.hit Une image a dépassé votre seuil NSFW
results.antivirus.hit Logiciel malveillant trouvé dans un document
results.badwords.hit Un mot interdit configuré a été détecté
results.skipped_features Vérifications demandées mais non exécutées (par exemple une fonctionnalité dont le quota est épuisé)

Seules les vérifications que vous avez activées (et qui disposaient d’un contenu correspondant) apparaissent dans results. Une vérification sans contenu à traiter — check_images sans image_urls — ne s’exécute tout simplement pas.

Quel contenu correspond à quelle vérification ?

Vérification Contenu lu
check_sentiment, check_spam, check_badwords, check_language content.text
check_images content.image_urls
check_antivirus content.document_urls

Une seule requête peut contenir jusqu’à 10 URL d’images, 5 URL de documents et un texte de 10 000 caractères maximum. Envoyez ensemble les différentes parties d’une soumission plutôt que de les répartir sur plusieurs appels.

Qu’en est-il des échecs partiels ?

Si une vérification échoue (par exemple si l’URL d’une image est inaccessible), les autres renvoient tout de même leurs résultats : vous obtenez les résultats qui ont abouti, et la vérification en échec signale son erreur ou un résultat vide au lieu de faire échouer toute la requête. Décidez au cas par cas : bloquez sur un hit confirmé, et choisissez si une vérification en erreur doit être ignorée ou mise en file d’attente pour examen.

Bonnes pratiques

Activez uniquement ce dont vous avez besoin

Chaque vérification activée ajoute du traitement. Activez les vérifications qui correspondent au contenu que vous recevez réellement : il n’y a aucun intérêt à exécuter check_antivirus sur des messages contenant uniquement du texte.

Un verdict, puis une analyse détaillée

Commencez par vous baser sur has_violations pour le chemin rapide, puis inspectez results uniquement lorsque vous devez savoir quelle vérification s’est déclenchée (pour les journaux, les recours ou l’orientation vers le bon modérateur).

const res = await check(content, settings);
if (!res.has_violations) return allow();

const r = res.results;
if (r.antivirus?.hit) return quarantine();      // most severe first
if (r.images?.hit)    return blockMedia();
if (r.spamfinder?.hit || r.badwords?.hit) return shadowban();
return queueForReview(r);

Articles associés

Rédigé par Équipe Discuse · Dernière mise à jour June 2026

Articles associés

Analyse de texte et détection du sentiment

Détectez le spam, la toxicité, les grossièretés et analysez le sentiment dans le contenu textuel

Détection NSFW des images

Détectez et filtrez automatiquement les images inappropriées et le contenu pour adultes

Détection du spam

Filtrage du spam basé sur l’AI pour les textes et les messages