For the complete documentation index, see llms.txt. Markdown versions of documentation pages are available by appending .md to the page URL.
Navigation principale
Theme

Modération

Détectez les contenus préjudiciables dans les textes et les images.

Utilisez les modèles de modération d’OpenAI pour détecter les contenus préjudiciables dans les textes et les images. Vous pouvez classer des entrées indépendamment de toute génération avec le point de terminaison de modération ou demander des scores de modération en même temps qu’une réponse générée. Utilisez ces résultats pour appliquer les règles de votre application, par exemple pour filtrer du contenu, transmettre une requête pour examen ou prendre des mesures à l’égard des comptes qui soumettent des contenus signalés.

Le modèle omni-moderation-latest accepte du texte et des images en entrée. Il ne classe pas les contenus audio. L’utilisation du point de terminaison de modération est gratuite. La taille maximale d’un fichier image est de 20 Mo.

Protection des enfants : N’envoyez à l’API de modération aucun contenu dont vous savez ou soupçonnez qu’il s’agit de matériel pédopornographique. L’API n’est pas conçue pour détecter ou traiter ce type de matériel et ne remplace pas les dispositifs spécifiquement destinés à protéger les enfants. Consultez nos recommandations sur le matériel pédopornographique pour connaître les mesures de prévention, savoir détecter ce matériel, réagir en sa présence et le signaler.

Choisissez un workflow de modération

Workflow Quand l’utiliser
Modérez le contenu généré Votre application génère du texte avec l’API Responses ou l’API Chat Completions et a besoin de signaux de modération.
Classez des entrées indépendamment de la génération Votre application doit classer du texte ou des images sans générer de réponse du modèle.
Interprétez les résultats de modération Votre application doit interpréter les signalements, les catégories, les scores ou les types d’entrées auxquels ces scores s’appliquent.
Consultez les catégories prises en charge Votre application doit déterminer quelles catégories de contenus préjudiciables s’appliquent au texte, aux images ou aux deux.

Modérez le contenu généré

Si votre application a besoin à la fois du texte généré et des scores de modération, incluez un objet moderation à la racine de la requête de génération. L’API renvoie les scores de modération de l’entrée du modèle et de la sortie générée sans nécessiter de requête de modération distincte.

Le modèle génère sa réponse comme d’habitude. Examinez les résultats de modération avant de présenter la sortie à un utilisateur ou de lancer d’autres actions à partir de cette sortie.

Renseignez moderation.model lors de la création d’une réponse :

Générez une réponse avec des scores de modération
from openai import OpenAI

client = OpenAI()

response = client.responses.create(
    model="gpt-6-astra",
    input=[
        {
            "role": "user",
            "content": (
                "A user asks for instructions to make a harmful weapon. "
                "Draft a brief refusal and offer a safer alternative."
            ),
        }
    ],
    moderation={"model": "omni-moderation-latest"},
)

input_moderation = response.moderation.input
output_moderation = response.moderation.output
if input_moderation.type == "error":
    raise RuntimeError(input_moderation.message)
if output_moderation.type == "error":
    raise RuntimeError(output_moderation.message)

print(input_moderation.flagged)
print(output_moderation.flagged)

L’API Responses renvoie un objet moderation_result pour l’entrée dans response.moderation.input et un objet moderation_result pour la sortie dans response.moderation.output.

Les résultats de modération inclus dans la réponse utilisent les mêmes champs de catégorie que ceux d’une requête de modération distincte. Consultez d’abord flagged pour prendre une première décision, puis examinez categories et category_scores pour alimenter vos journaux, orienter les requêtes, conserver une piste d’audit ou placer des contenus en file d’attente pour examen humain. Même un refus ou une autre réponse qui tient compte des règles de sécurité peut déclencher un signalement si cette réponse évoque un contenu préjudiciable. Utilisez les scores de modération comme des indicateurs pour appliquer les règles de votre application. Un score ne doit pas entraîner à lui seul un blocage automatique.

Si votre application doit gérer les échecs de modération, vérifiez le type de résultat avant de lire les scores. Si une étape de modération échoue, le champ de modération correspondant à l’entrée ou à la sortie peut contenir une erreur à la place des scores.

Pour les requêtes qui font appel à des outils, la modération couvre les arguments des appels d’outils et les sorties des outils lorsqu’ils figurent dans le contenu de la conversation. Elle ne couvre ni les noms, descriptions et schémas des outils, ni les schémas de format de réponse.

Si vous diffusez une réponse au fil de sa génération, vous recevez les scores de modération une fois la sortie complète disponible. Les fragments de sortie transmis pendant la génération ne contiennent pas ces scores.

Classez des entrées indépendamment de la génération

Utilisez le point de terminaison de modération pour classer du texte ou des images sans générer de réponse du modèle. Les onglets ci-dessous montrent comment utiliser les bibliothèques OpenAI et le modèle omni-moderation-latest :

Obtenir les résultats de classification d’un texte fourni en entrée
from openai import OpenAI

client = OpenAI()

response = client.moderations.create(
    model="omni-moderation-latest",
    input="...text to classify goes here...",
)

print(response)

Interprétez les résultats de modération

Voici un exemple de sortie complète pour une image extraite d’un film de guerre. Le modèle détecte des signes de violence dans l’image et attribue à la catégorie violence un score supérieur à 0,8.

{
  "id": "modr-970d409ef3bef3b70c73d8232df86e7d",
  "model": "omni-moderation-latest",
  "results": [
    {
      "flagged": true,
      "categories": {
        "sexual": false,
        "sexual/minors": false,
        "harassment": false,
        "harassment/threatening": false,
        "hate": false,
        "hate/threatening": false,
        "illicit": false,
        "illicit/violent": false,
        "self-harm": false,
        "self-harm/intent": false,
        "self-harm/instructions": false,
        "violence": true,
        "violence/graphic": false
      },
      "category_scores": {
        "sexual": 2.34135824776394e-7,
        "sexual/minors": 1.6346470245419304e-7,
        "harassment": 0.0011643905680426018,
        "harassment/threatening": 0.0022121340080906377,
        "hate": 3.1999824407395835e-7,
        "hate/threatening": 2.4923252458203563e-7,
        "illicit": 0.0005227032493135171,
        "illicit/violent": 3.682979260160596e-7,
        "self-harm": 0.0011175734280627694,
        "self-harm/intent": 0.0006264858507989037,
        "self-harm/instructions": 7.368592981140821e-8,
        "violence": 0.8599265510337075,
        "violence/graphic": 0.37701736389561064
      },
      "category_applied_input_types": {
        "sexual": ["image"],
        "sexual/minors": [],
        "harassment": [],
        "harassment/threatening": [],
        "hate": [],
        "hate/threatening": [],
        "illicit": [],
        "illicit/violent": [],
        "self-harm": ["image"],
        "self-harm/intent": ["image"],
        "self-harm/instructions": ["image"],
        "violence": ["image"],
        "violence/graphic": ["image"]
      }
    }
  ]
}

Les champs de la réponse JSON indiquent les catégories détectées dans l’entrée et le degré de confiance du modèle pour chacune d’elles.

Champ de sortieDescription
flagged

Vaut true si le modèle classe le contenu comme potentiellement préjudiciable, et false dans le cas contraire.

categories

Contient un dictionnaire de signalements par catégorie. Pour chaque catégorie, la valeur est true si le modèle signale une infraction dans cette catégorie, et false dans le cas contraire.

category_scores

Contient un dictionnaire de scores par catégorie. Chaque score indique le degré de confiance du modèle quant à la présence, dans l’entrée, de contenu relevant de la catégorie. Il varie de 0 à 1. Plus le score est élevé, plus la confiance du modèle est grande.

category_applied_input_types

Indique les types d’entrées auxquels s’applique le score de chaque catégorie. Par exemple, si la catégorie violence/graphic s’applique à la fois aux images et au texte, la propriété violence/graphic vaut ["image", "text"].

Nous prévoyons d’améliorer régulièrement le modèle utilisé par le point de terminaison de modération. Si vos règles de modération reposent sur category_scores, vous devrez peut-être les recalibrer au fil du temps.

Consultez les catégories prises en charge

Le tableau ci-dessous décrit les catégories de contenus que le point de terminaison de modération peut détecter et les types d’entrées pris en charge pour chacune d’elles.

Les catégories portant la mention « Texte uniquement » ne prennent pas en charge les images. Si vous envoyez uniquement des images, sans texte, au modèle omni-moderation-latest, il renvoie un score de 0 pour ces catégories. La taille maximale d’un fichier image est de 20 Mo.

CatégorieDescriptionEntrées
harassment

Contenu qui tient des propos relevant du harcèlement, incite à en tenir ou les encourage, quelle que soit la cible.

Texte uniquement
harassment/threatening

Contenu relevant du harcèlement qui comporte aussi des violences ou des atteintes graves à l’encontre de la cible, quelle qu’elle soit.

Texte uniquement
hate

Contenu qui exprime, attise ou encourage la haine fondée sur la race, le genre, l’origine ethnique, la religion, la nationalité, l’orientation sexuelle, le handicap ou la caste. Les contenus haineux visant des groupes non protégés, comme les joueurs d’échecs, relèvent du harcèlement.

Texte uniquement
hate/threatening

Contenu haineux qui comporte aussi des violences ou des atteintes graves à l’encontre d’un groupe ciblé en raison de la race, du genre, de l’origine ethnique, de la religion, de la nationalité, de l’orientation sexuelle, du handicap ou de la caste de ses membres.

Texte uniquement
illicit

Contenu qui donne des conseils ou des instructions pour commettre des actes illicites. Une expression comme « comment voler à l’étalage » relève de cette catégorie.

Texte uniquement
illicit/violent

Mêmes types de contenus que ceux signalés dans la catégorie illicit, avec en plus des références à la violence ou à l’acquisition d’une arme.

Texte uniquement
self-harm

Contenu qui décrit, encourage ou valorise des comportements par lesquels une personne se fait du mal, comme le suicide, les scarifications ou les conduites liées aux troubles alimentaires.

Texte et images
self-harm/intent

Contenu dans lequel une personne indique qu’elle se fait du mal ou qu’elle en a l’intention, par exemple en évoquant le suicide, des scarifications ou des conduites liées aux troubles alimentaires.

Texte et images
self-harm/instructions

Contenu qui incite une personne à se faire du mal, par exemple par le suicide, les scarifications ou des conduites liées aux troubles alimentaires, ou qui donne des instructions ou des conseils sur la manière de le faire.

Texte et images
sexual

Contenu destiné à susciter l’excitation sexuelle, par exemple en décrivant une activité sexuelle, ou qui fait la promotion de services sexuels. L’éducation sexuelle et le bien-être sexuel sont exclus.

Texte et images
sexual/minors

Contenu sexuel impliquant une personne de moins de 18 ans.

Texte uniquement
violenceContenu qui représente la mort, des violences ou des blessures physiques.Texte et images
violence/graphic

Contenu qui représente de manière crue et détaillée la mort, des violences ou des blessures physiques.

Texte et images