Zum Hauptinhalt springen
Lektion 6 von 12 · KI-Moderation und Sicherheit mit Mistral

Die 11 Moderationskategorien

Lektion 6 von 12 Aktualisiert am 3. November 2026 Entwickler
Auf dieser Seite
  1. Verständnis der Risikokategorien
  2. „Harte” vs. „weiche” Kategorien
  3. Analyse von Scores in Python
  4. Mehrere Kategorien: Ein Text kann mehrere Warnungen auslösen
  5. Kernaussagen

Aktualisiert am 3. November 2026. Die vorherige Kategorie-Tabelle listete drei nicht existierende Schlüssel (hate, violence, unpredictable) auf und enthielt dangerous nicht. Die elf Schlüssel unten spiegeln mistral-moderation-2603 wider, basierend auf der Dokumentation und den Typen aus dem mistralai SDK 3.7.0; die Beschreibungen folgen den Definitionen von Mistral. Als gemessene Daten präsentierte Ausgabebeispiele waren illustrative Beispiele und werden nun klar als solche gekennzeichnet. Quellen: Moderation & Guardrailing · Mistral Moderation 2411 (abgeschiedenes Modell).

Verständnis der Risikokategorien

Das Mistral-Moderationsmodell analysiert Inhalte über 11 eindeutige Kategorien. Jede Kategorie deckt eine spezifische Risikotyp ab und gibt einen unabhängigen Wert zwischen 0,0 und 1,0 zurück. Das genaue Verständnis dessen, was jede Kategorie erfasst, ist unerlässlich, um sinnvolle Schwellenwerte festzulegen. Ohne diese Klarheit raten Sie lediglich Zahlen und wundern sich, warum Inhalte unerwartet blockiert werden.

Die folgende Tabelle liefert den genauen API-Schlüssel für jede Kategorie, den Umfang dessen, was sie abdeckt, und die Arten von Fällen, die sie in der Praxis erfasst.

KategorieAPI-SchlüsselWas Mistral einschließt
Sexueller InhaltsexualExplizit beschriebene oder geförderte sexuelle Aktivitäten, Nacktheit oder sexuelle Dienstleistungen; nicht expliziter edukativer oder medizinischer Inhalt ist im Allgemeinen ausgenommen
Hass und Diskriminierunghate_and_discriminationVorurteile, Feindseligkeit oder Aufrufe zur Diskriminierung aufgrund geschützter Merkmale, einschließlich Belästigung
Gewalt und Drohungenviolence_and_threatsBeschriebene, verherrlichte, angezettelte oder gedrohte physische Gewalt sowie Anleitungen zur Verübung derselben
Gefährlicher InhaltdangerousÄußerst gefährliche Verhaltensweisen mit einem hohen Risiko für körperlichen Schaden
StraftatencriminalBeschriebene oder geförderte illegale Aktivitäten
SelbstschädigungselfharmSelbstschädigung, Suizid, Essstörungen: Methoden, Verherrlichung, Absicht, gefährliche Herausforderungen
GesundheithealthAnfragen oder Bereitstellung detaillierter oder personalisierter medizinischer Beratung
FinanzenfinancialAnfragen oder Bereitstellung detaillierter oder personalisierter finanzieller Beratung
RechtlawAnfragen oder Bereitstellung detaillierter oder personalisierter rechtlicher Beratung
Persönliche DatenpiiAnfragen, Weitergabe oder Versuche, identifizierende Daten zu erhalten: vollständiger Name, Adresse, Telefonnummer, Sozialversicherungsnummer, Bankdetails
JailbreakjailbreakingVersuche, Modellregeln durch Prompt-Manipulation, Rollenspiel oder andere Techniken zu umgehen

Die Kategorien dangerous, criminal und jailbreaking kamen mit mistral-moderation-2603 hinzu. Das vorherige Modell, mistral-moderation-2411, das am 31. März 2026 veraltet wurde, kombinierte die ersten beiden unter einem einzigen Schlüssel, dangerous_and_criminal_content, und erkannte Jailbreaks nicht. Einige Antwortbeispiele in der Dokumentation zeigen immer noch diese ältere Aufteilung: Lesen Sie stets die Schlüssel, die die API zurückgibt, anstatt davon auszugehen, welche erwartet werden.

„Harte” vs. „weiche” Kategorien

In der Praxis fallen diese 11 Kategorien in zwei Gruppen basierend auf ihrer Kritikalität, und dieser Unterschied treibt Ihre gesamte Schwellenwertstrategie an.

Harte Kategorien — sexual, hate_and_discrimination, violence_and_threats, dangerous, criminal und selfharm — stellen ernste Risiken dar, bei denen ein falsch negatives Ergebnis (das Versäumnis, gefährliche Inhalte zu erkennen) schwerwiegende Folgen haben kann. Sexueller Inhalt birgt rechtliche Risiken und Verpflichtungen zum Schutz von Minderjährigen; Hassrede setzt Sie großen Reputationsschäden und rechtlichen Haftungen aus; Gewalt beinhaltet Anstiftung und Drohungen; die Kategorien gefährlicher und strafbarer Inhalte decken hochriskantes Verhalten und illegale Aktivitäten ab; Selbstschädigung betrifft die Sicherheit der Nutzer und lebensbedrohliche Situationen. Für diese sechs Kategorien sind niedrige Schwellenwerte von 0,1 bis 0,2 gerechtfertigt, unabhängig von Ihrem Produkt, und Sie akzeptieren bewusst einige falsch positive Ergebnisse.

Weiche Kategorien hängen stark vom Kontext Ihrer Anwendung ab, mit anpassbaren Schwellenwerten zwischen 0,3 und 0,8. Ein legitimer medizinischer Chatbot muss health diskutieren, eine Fintech-App erfordert Gespräche, die von financial abgedeckt werden, ein Rechtsassistent muss notwendigerweise law bearbeiten, und einige Anwendungen sammeln gesetzlich Daten, die unter pii fallen. Ein Fall liest sich anders: jailbreaking hängt nicht vom Sachverhalt ab, sondern von der Absicht, das Modell zu manipulieren, und bleibt für jede Anwendung, die der Öffentlichkeit offensteht, kritisch.

Analyse von Scores in Python

Die folgende Funktion wandelt einen rohen API-Aufruf in ein lesbares Urteil um: Sie isoliert Kategorien, die 0,3 überschreiten, identifiziert den maximalen Score und seine Kategorie, und gibt ein safe-Indikator zurück, den Sie direkt in Ihrer Anwendungslogik verwenden können.

from mistralai.client import Mistral
import os

client = Mistral(api_key=os.environ["MISTRAL_API_KEY"])

def analyze_content(text: str) -> dict:
    """Analysiere Text und gib Risikokategorien zurück."""
    response = client.classifiers.moderate(
        model="mistral-moderation-2603",
        inputs=[text]
    )

    scores = response.results[0].category_scores or {}

    # Trenne Risikokategorien
    risks = {}
    for category, score in scores.items():
        if score > 0.3:
            risks[category] = round(score, 3)

    return {
        "text": text[:100],
        "risks": risks,
        "max_score": max(scores.values(), default=0.0),
        "max_category": max(scores, key=lambda c: scores[c], default=None),
        "safe": len(risks) == 0
    }

print(analyze_content("Hallo, wie geht es Ihnen?"))
print(analyze_content("Welche Dosis Acetaminophen für ein 20 kg Kind?"))

category_scores ist im SDK optional, daher das or {}. Führen Sie beide Beispiele auf Ihrem Konto aus: Die Begrüßung sollte sehr niedrig über das gesamte Feld bleiben, während die Dosierungsfrage bei health stark ansteigen sollte. Dies ist kein „gefährlicher” Inhalt im allgemeinen Sinne – es ist Inhalt, den Sie entscheiden müssen, ob er in Ihren Geltungsbereich fällt.

Mehrere Kategorien: Ein Text kann mehrere Warnungen auslösen

Ein einzelner Text kann gleichzeitig hohe Scores in mehreren Kategorien haben – eine Anfrage nach Hilfe bei Steuerbetrug trifft criminal, financial und law alle auf einmal. Ihre Entscheidungslogik muss diese Vielfältigkeit berücksichtigen, und vor allem priorisieren: Die Funktion unten sortiert Verstöße nach der Größe der Schwellenwertüberschreitung und teilt Ihnen mit, welche Kategorie tatsächlich die Blockierung verursacht hat.

def evaluate_global_risk(scores: dict, thresholds: dict) -> dict:
    """Bewerte globales Risiko unter Berücksichtigung aller Kategorien."""
    violations = []

    for category, threshold in thresholds.items():
        score = scores.get(category, 0)
        if score > threshold:
            violations.append({
                "category": category,
                "score": score,
                "threshold": threshold,
                "excess": round(score - threshold, 3)
            })

    return {
        "blocked": len(violations) > 0,
        "violations": sorted(violations,
                            key=lambda v: v["excess"],
                            reverse=True),
        "violation_count": len(violations)
    }

# Konfiguration nach Profil
strict_thresholds = {
    "sexual": 0.1, "hate_and_discrimination": 0.1, "violence_and_threats": 0.15,
    "dangerous": 0.1, "criminal": 0.1, "selfharm": 0.1,
    "health": 0.3, "financial": 0.3, "law": 0.3,
    "pii": 0.15, "jailbreaking": 0.1,
}

Das Profil strict_thresholds folgt exakt der harten/weichen Logik, die oben dargelegt wurde: Schwellenwerte von 0,1 bis 0,15 an den sechs kritischen Kategorien und Jailbreak, Toleranz bei 0,3 für kontextuelle Domänen. Halten Sie diese Struktur als Ausgangspunkt und dokumentieren Sie jede Abweichung, die Sie einführen.

Kernaussagen

  • mistral-moderation-2603 analysiert Inhalte über 11 Kategorien mit festen Schlüsseln; hate, violence oder unpredictable existieren nicht
  • Jede Kategorie gibt einen Score von 0,0 bis 1,0 zurück
  • „Harte” Kategorien (sexual, hate_and_discrimination, violence_and_threats, dangerous, criminal, selfharm) erfordern niedrige Schwellenwerte
  • „Weiche” Kategorien (Gesundheit, Finanzen, Recht) passen sich an Ihren Anwendungskontext an
  • Ein einzelner Text kann mehrere Kategorien gleichzeitig auslösen
  • Verwenden Sie rohe Scores (category_scores) statt standardmäßiger Booleans