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

Moderation

Erkenne schädliche Inhalte in Texten und Bildern.

Nutze die Moderationsmodelle von OpenAI, um schädliche Inhalte in Texten und Bildern zu erkennen. Du kannst eigenständige Eingaben mit dem Moderationsendpunkt klassifizieren oder Moderationsscores zusammen mit einer generierten Antwort anfordern. Nutze die Ergebnisse, um die Richtlinien deiner Anwendung durchzusetzen, etwa indem du Inhalte filterst, Anfragen zur Überprüfung weiterleitest oder Maßnahmen gegen Konten ergreifst, die markierte Inhalte einreichen.

Das Modell omni-moderation-latest akzeptiert Text- und Bildeingaben. Audio klassifiziert es nicht. Der Moderationsendpunkt ist kostenlos nutzbar. Bilddateien dürfen bis zu 20 MB groß sein.

Kinderschutz: Sende keine bekannten oder mutmaßlichen Darstellungen sexuellen Kindesmissbrauchs (CSAM) an die Moderation API. Die API ist weder für die Erkennung noch für den Umgang mit CSAM ausgelegt und ersetzt keine speziellen Schutzmaßnahmen für Kinder. Unsere Hinweise zu CSAM erläutern, wie du CSAM vorbeugen, entsprechendes Material erkennen, darauf reagieren und es melden kannst.

Einen Ablauf für die Moderation wählen

AblaufGeeignet, wenn …
Generierte Inhalte moderierenDeine Anwendung generiert Text mit der Responses API oder der Chat Completions API und benötigt Moderationssignale.
Eigenständige Eingaben klassifizierenDeine Anwendung muss Texte oder Bilder klassifizieren, ohne eine Modellantwort zu generieren.
Moderationsergebnisse verstehenDeine Anwendung muss Markierungen, Kategorien, Scores oder die zugehörigen Eingabetypen auswerten.
Unterstützte Kategorien ansehenDeine Anwendung muss wissen, welche Kategorien schädlicher Inhalte für Texte, Bilder oder beides gelten.

Generierte Inhalte moderieren

Wenn deine Anwendung generierten Text und Moderationsscores zusammen benötigt, übergib in der Generierungsanfrage ein moderation-Objekt auf oberster Ebene. Die API gibt Moderationsscores für die Modelleingabe und die generierte Ausgabe zurück, ohne dass eine separate Moderationsanfrage nötig ist.

Das Modell generiert weiterhin wie gewohnt. Prüfe die Moderationsergebnisse, bevor du die Ausgabe einer Person anzeigst oder nachgelagerte Aktionen ausführst.

Lege moderation.model fest, wenn du eine Antwort erstellst:

Eine Antwort mit Moderationsscores generieren
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)

Die Responses API gibt unter response.moderation.input ein moderation_result-Objekt für die Eingabe und unter response.moderation.output ein moderation_result-Objekt für die Ausgabe zurück.

Inline-Moderationsergebnisse verwenden dieselben Kategoriefelder wie ein eigenständiges Moderationsergebnis. Nutze zunächst flagged für eine erste Entscheidung. Prüfe anschließend categories und category_scores, etwa für die Protokollierung, die Weiterleitung, Audit-Trails oder Warteschlangen für die menschliche Überprüfung. Auch eine Ablehnung oder eine andere sicherheitsbewusste Antwort kann eine Markierung auslösen, wenn sie schädliche Inhalte thematisiert. Betrachte Moderationsscores als Signale zur Anwendung deiner Richtlinien, nicht als automatische Entscheidung zum Blockieren.

Prüfe den Typ des Moderationsergebnisses, bevor du Scores ausliest, wenn deine Anwendung Moderationsfehler behandeln muss. Kann ein Moderationsschritt nicht abgeschlossen werden, kann das entsprechende Moderationsfeld für die Eingabe oder Ausgabe einen Fehler anstelle von Moderationsscores enthalten.

Bei Anfragen mit Tool-Aufrufen umfasst die Moderation die Argumente der Tool-Aufrufe und die Tool-Ausgaben, sofern sie im Gesprächsinhalt vorkommen. Tool-Namen, Tool-Beschreibungen, Tool-Schemas und Schemas für das Antwortformat werden nicht erfasst.

Wenn du eine generierte Antwort streamst, treffen die Moderationsscores erst ein, wenn die vollständige generierte Ausgabe vorliegt. In den Deltas der Teilausgaben sind sie nicht enthalten.

Eigenständige Eingaben klassifizieren

Nutze den Moderationsendpunkt, um Text- oder Bildeingaben zu klassifizieren, ohne eine Modellantwort zu generieren. Die folgenden Tabs zeigen, wie du die OpenAI-Bibliotheken und das Modell omni-moderation-latest verwendest:

Klassifizierungsinformationen für eine Texteingabe abrufen
from openai import OpenAI

client = OpenAI()

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

print(response)

Moderationsergebnisse verstehen

Hier siehst du eine vollständige Beispielausgabe für ein Einzelbild aus einem Kriegsfilm. Das Modell erkennt Anzeichen von Gewalt im Bild und vergibt für die Kategorie violence einen Score von über 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"]
      }
    }
  ]
}

Die JSON-Antwort enthält Felder, die angeben, welche Kategorien in der Eingabe vorkommen und wie sicher sich das Modell bei der jeweiligen Zuordnung ist.

Ausgabekategorie Beschreibung
flagged

Wird auf true gesetzt, wenn das Modell den Inhalt als potenziell schädlich einstuft, andernfalls auf false.

categories

Enthält ein Dictionary mit Markierungen für Verstöße je Kategorie. Für jede Kategorie ist der Wert true, wenn das Modell einen Verstoß in der entsprechenden Kategorie markiert, andernfalls false.

category_scores

Enthält ein Dictionary mit Scores je Kategorie. Jeder Score gibt an, wie sicher sich das Modell ist, dass die Eingabe Inhalte der jeweiligen Kategorie enthält. Der Wert liegt zwischen 0 und 1. Höhere Werte bedeuten eine höhere Konfidenz.

category_applied_input_types

Enthält die Eingabetypen, für die der Kategoriescore gilt. Gilt beispielsweise die Kategorie violence/graphic sowohl für Bild- als auch für Texteingaben, wird die Eigenschaft violence/graphic auf ["image", "text"] gesetzt.

Wir planen, das zugrunde liegende Modell des Moderationsendpunkts kontinuierlich zu verbessern. Deshalb müssen benutzerdefinierte Richtlinien, die auf category_scores basieren, im Laufe der Zeit möglicherweise neu kalibriert werden.

Unterstützte Kategorien ansehen

Die folgende Tabelle beschreibt die Inhaltskategorien, die der Moderationsendpunkt erkennen kann, und die Eingabetypen, die jede Kategorie unterstützt.

Kategorien mit der Kennzeichnung „Nur Text“ unterstützen keine Bildeingaben. Wenn du ausschließlich Bilder ohne begleitenden Text an das Modell omni-moderation-latest sendest, gibt es für diese nicht unterstützten Kategorien einen Score von 0 zurück. Bilddateien dürfen höchstens 20 MB groß sein.

KategorieBeschreibungEingaben
harassment

Inhalte, die belästigende Äußerungen enthalten, dazu anstiften oder sie fördern, unabhängig davon, gegen wen sie sich richten.

Nur Text
harassment/threatening

Belästigende Inhalte, die auch Gewalt oder schwere Schädigungen umfassen, unabhängig davon, gegen wen sie sich richten.

Nur Text
hate

Inhalte, die Hass aufgrund von Rasse, Geschlecht, ethnischer Herkunft, Religion, Nationalität, sexueller Orientierung, Behinderung oder Kastenzugehörigkeit ausdrücken, dazu anstiften oder ihn fördern. Hasserfüllte Inhalte, die sich gegen nicht geschützte Gruppen richten (z. B. Schachspielende), gelten als Belästigung.

Nur Text
hate/threatening

Hasserfüllte Inhalte, die auch Gewalt oder schwere Schädigungen gegen die betroffene Gruppe aufgrund von Rasse, Geschlecht, ethnischer Herkunft, Religion, Nationalität, sexueller Orientierung, Behinderung oder Kastenzugehörigkeit umfassen.

Nur Text
illicit

Inhalte, die Ratschläge oder Anleitungen für rechtswidrige Handlungen geben. Eine Formulierung wie „Wie begeht man Ladendiebstahl?“ würde in diese Kategorie fallen.

Nur Text
illicit/violent

Dieselben Arten von Inhalten, die von der Kategorie illicit gekennzeichnet werden, jedoch mit zusätzlichen Bezügen zu Gewalt oder zur Beschaffung einer Waffe.

Nur Text
self-harm

Inhalte, die selbstschädigendes Verhalten wie Suizid, Ritzen und Essstörungen befürworten, dazu ermutigen oder es darstellen.

Text und Bilder
self-harm/intent

Inhalte, in denen eine Person angibt, sich selbst zu schädigen oder dies zu beabsichtigen, etwa durch Suizid, Ritzen oder Essstörungen.

Text und Bilder
self-harm/instructions

Inhalte, die zu selbstschädigendem Verhalten wie Suizid, Ritzen und Essstörungen ermutigen oder Anleitungen oder Ratschläge dazu geben.

Text und Bilder
sexual

Inhalte, die sexuell erregen sollen, etwa Beschreibungen sexueller Handlungen, oder die sexuelle Dienstleistungen bewerben (ausgenommen sexuelle Aufklärung und sexuelles Wohlbefinden).

Text und Bilder
sexual/minors

Sexuelle Inhalte, in denen eine Person unter 18 Jahren vorkommt.

Nur Text
violence Inhalte, die Tod, Gewalt oder körperliche Verletzungen darstellen. Text und Bilder
violence/graphic

Inhalte, die Tod, Gewalt oder körperliche Verletzungen drastisch und detailliert darstellen.

Text und Bilder