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

Modération

Identifiez 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 classifier des entrées indépendantes 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 les résultats pour appliquer les règles de votre application, par exemple en filtrant le contenu, en transmettant une requête pour révision ou en intervenant auprès des comptes qui soumettent du contenu signalé.

Le modèle omni-moderation-latest accepte du texte et des images en entrée. Il ne classifie pas l’audio. L’utilisation du point de terminaison de modération est gratuite, et la taille des fichiers image peut atteindre 20 Mo.

Sécurité des enfants : N’envoyez aucun matériel pédopornographique (CSAM) avéré ou présumé à l’API de modération. Cette API n’est pas conçue pour détecter ou traiter ce type de contenu et ne remplace pas les mesures de protection spécifiques à la sécurité des enfants. Consultez nos recommandations concernant le matériel pédopornographique pour connaître les mesures de prévention, de détection, de réponse et de signalement à prendre concernant ce matériel.

Choisissez un workflow de modération

WorkflowÀ utiliser lorsque
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.
Classifiez des entrées indépendantesVotre application doit classifier du texte ou des images sans générer de réponse du modèle.
Comprenez les résultats de modérationVotre application doit interpréter les signalements, les catégories, les scores ou les types d’entrée auxquels ils s’appliquent.
Consultez les catégories prises en chargeVotre application doit savoir quelles catégories de contenu préjudiciable s’appliquent au texte, aux images ou aux deux.

Modérez le contenu généré

Lorsque votre application a besoin à la fois de texte généré et de scores de modération, passez un objet moderation au premier niveau de la requête de génération. L’API renvoie des scores de modération pour l’entrée du modèle et la sortie générée, sans requête de modération distincte.

Le modèle continue de générer du contenu normalement. Examinez les résultats de modération avant de présenter la sortie à un utilisateur ou de déclencher des actions en aval.

Définissez 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 intégrés utilisent les mêmes champs de catégorie qu’un résultat de modération indépendant. Commencez par flagged pour prendre une première décision, puis examinez categories et category_scores pour la journalisation, le routage, les pistes d’audit ou les files de révision humaine. Un refus ou une autre réponse tenant compte de la sécurité peut tout de même déclencher un signalement si la réponse aborde du contenu préjudiciable. Considérez les scores de modération comme des signaux pour appliquer les règles de votre application, et non comme une décision de blocage automatique.

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

Pour les requêtes faisant 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 pas les noms, les descriptions ou les schémas des outils, ni les schémas de format de réponse.

Si vous diffusez une réponse générée en streaming, les scores de modération arrivent une fois la sortie générée entièrement disponible. Ils ne sont pas inclus dans les fragments de sortie partiels.

Classifiez des entrées indépendantes

Utilisez le point de terminaison de modération pour classifier du texte ou des images en entrée 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 :

Obtenez des informations de classification pour une entrée textuelle
from openai import OpenAI

client = OpenAI()

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

print(response)

Comprenez les résultats de modération

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

{
  "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"]
      }
    }
  ]
}

La réponse JSON contient des champs qui indiquent les catégories présentes dans l’entrée et le degré de confiance du modèle pour chaque catégorie.

Catégorie de sortie Description
flagged

Vaut true si le modèle classe le contenu comme potentiellement préjudiciable, false sinon.

categories

Contient un dictionnaire de signalements d’infraction par catégorie. Pour chaque catégorie, la valeur est true si le modèle signale une infraction dans la catégorie correspondante, et false sinon.

category_scores

Contient un dictionnaire de scores par catégorie. Chaque score représente le degré de confiance du modèle dans la présence de contenu relevant de cette catégorie dans l’entrée. La valeur est comprise entre 0 et 1 : plus elle est élevée, plus le degré de confiance est élevé.

category_applied_input_types

Contient les types d’entrée auxquels s’applique le score de la catégorie. Par exemple, si la catégorie violence/graphic s’applique à la fois aux images et au texte en entrée, la propriété violence/graphic est définie sur ["image", "text"].

Nous prévoyons d’améliorer en continu le modèle sous-jacent au point de terminaison de modération. Les règles personnalisées qui reposent sur category_scores pourraient donc nécessiter un recalibrage au fil du temps.

Consultez les catégories prises en charge

Le tableau ci-dessous décrit les catégories de contenu que le point de terminaison de modération peut détecter et les types d’entrée pris en charge par chaque catégorie.

Les catégories indiquées comme « Texte uniquement » ne prennent pas en charge les images en entrée. Si vous envoyez uniquement des images (sans texte d’accompagnement) au modèle omni-moderation-latest, il renverra un score de 0 pour ces catégories non prises en charge. La taille des fichiers image est limitée à 20 Mo.

CatégorieDescriptionEntrées
harassment

Contenu qui exprime des propos relevant du harcèlement, incite à en tenir ou en fait la promotion, quelle que soit la cible.

Texte uniquement
harassment/threatening

Contenu relevant du harcèlement qui comporte également de la violence ou des atteintes graves, quelle que soit la cible.

Texte uniquement
hate

Contenu qui exprime de la haine, y incite ou en fait la promotion sur la base 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. Le contenu haineux visant des groupes non protégés (par exemple, les joueurs d’échecs) relève du harcèlement.

Texte uniquement
hate/threatening

Contenu haineux qui comporte également de la violence ou des atteintes graves envers le groupe ciblé sur la base 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.

Texte uniquement
illicit

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

Texte uniquement
illicit/violent

Les mêmes types de contenu que ceux signalés dans la catégorie illicit, mais avec également des références à la violence ou à l’acquisition d’une arme.

Texte uniquement
self-harm

Contenu qui fait la promotion de comportements autodestructeurs, les encourage ou les représente, notamment le suicide, les scarifications et les troubles alimentaires.

Texte et images
self-harm/intent

Contenu dans lequel la personne indique qu’elle adopte ou a l’intention d’adopter des comportements autodestructeurs, notamment le suicide, les scarifications et les troubles alimentaires.

Texte et images
self-harm/instructions

Contenu qui encourage des comportements autodestructeurs, notamment le suicide, les scarifications et les troubles alimentaires, ou qui fournit des instructions ou des conseils pour adopter de tels comportements.

Texte et images
sexual

Contenu destiné à susciter une excitation sexuelle, comme la description d’une activité sexuelle, ou qui fait la promotion de services sexuels (à l’exclusion de l’éducation sexuelle et du bien-être sexuel).

Texte et images
sexual/minors

Contenu sexuel impliquant une personne de moins de 18 ans.

Texte uniquement
violence Contenu représentant la mort, la violence ou des blessures physiques. Texte et images
violence/graphic

Contenu représentant la mort, la violence ou des blessures physiques avec des détails crus.

Texte et images