Zum Hauptinhalt springen
POST
/
v1
/
moderations
curl --request POST \
  --url https://direct.evolink.ai/v1/moderations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "evolink-moderation-1.0",
  "input": [
    {
      "type": "text",
      "text": "I want to kill them."
    }
  ]
}
'
{
  "evolink_summary": {
    "risk_level": "medium",
    "flagged": false,
    "violations": [],
    "max_score": 0.597383272,
    "max_category": "sexual"
  },
  "id": "modr-0d9740456c391e43c445bf0f010940c7",
  "model": "evolink-moderation-1.0",
  "results": [
    {
      "flagged": false,
      "categories": {
        "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,
        "sexual": false,
        "sexual/minors": false,
        "violence": false,
        "violence/graphic": false
      },
      "category_scores": {
        "harassment": 0.0006,
        "harassment/threatening": 0.0007,
        "hate": 0.00003,
        "hate/threatening": 0.0000025,
        "illicit": 0.000013,
        "illicit/violent": 0.0000096,
        "self-harm": 0.0000166,
        "self-harm/intent": 0.000004,
        "self-harm/instructions": 0.0000031,
        "sexual": 0.597383272,
        "sexual/minors": 0.000004,
        "violence": 0.0231,
        "violence/graphic": 0.0089
      },
      "category_applied_input_types": {
        "harassment": [
          "text"
        ],
        "harassment/threatening": [
          "text"
        ],
        "hate": [
          "text"
        ],
        "hate/threatening": [
          "text"
        ],
        "illicit": [
          "text"
        ],
        "illicit/violent": [
          "text"
        ],
        "self-harm": [
          "text"
        ],
        "self-harm/intent": [
          "text"
        ],
        "self-harm/instructions": [
          "text"
        ],
        "sexual": [
          "text"
        ],
        "sexual/minors": [
          "text"
        ],
        "violence": [
          "text"
        ],
        "violence/graphic": [
          "text"
        ]
      }
    }
  ]
}
BaseURL: Die Standard-BaseURL ist https://direct.evolink.ai und bietet bessere Unterstützung für Textmodelle sowie persistente Verbindungen. https://api.evolink.ai ist der primäre Endpunkt für multimodale Dienste und dient bei Textmodellen als Ausweichadresse.

Autorisierungen

Authorization
string
header
erforderlich

##Alle Endpunkte erfordern eine Bearer-Token-Authentifizierung##

API-Key abrufen:

Besuche die API-Key-Verwaltungsseite, um deinen API-Key zu erhalten.

Im Request-Header verwenden:

Authorization: Bearer YOUR_API_KEY

Body

application/json
model
enum<string>
erforderlich

Name des Moderationsmodells, fest auf evolink-moderation-1.0 gesetzt

Verfügbare Optionen:
evolink-moderation-1.0
Beispiel:

"evolink-moderation-1.0"

input
(Texteingabe-Element · object | Bildeingabe-Element · object)[]
erforderlich

Der zu moderierende Inhalt, einheitlich als Array von Objekten. Jedes Element ist entweder ein text- oder ein image_url-Objekt.

"input": [
{"type": "text", "text": "Zu prüfender Text"},
{"type": "image_url", "image_url": {"url": "https://..."}}
]

Beschränkungen:

  • Innerhalb des Arrays ist maximal 1 Objekt mit type=image_url erlaubt; bei mehreren Bildern bitte parallele Anfragen senden
  • Die Anzahl der type=text-Objekte ist nicht beschränkt

Antwort

Moderation erfolgreich

Moderationsantwort. Auf der obersten Ebene ist evolink_summary die für die Anwendungsseite empfohlene einheitliche Risiko-Zusammenfassung; results enthält die detaillierten Scores pro Kategorie.

EvoLink Risiko-Zusammenfassung: eine einheitliche Zusammenfassung, die auf Basis der category_scores der 13 Kategorien anhand sensibilitätsabhängig differenzierter Schwellenwerte berechnet wird. Die Anwendung kann darauf direkt Freigabe/Ablehnung/Manuelle Prüfung stützen.

Tabelle der Risiko-Schwellenwerte

Kategoriemedium-Schwellehigh-SchwelleHinweise
sexual/minors0,050,20Rote-Linie-Kategorie, strengster Schwellenwert
self-harm / self-harm/intent / self-harm/instructions0,300,60Lebensgefahr betroffen, streng
violence/graphic0,400,70Drastische Gewalt
illicit/violent0,400,70Gewaltsame illegale Inhalte
sexual0,500,80Allgemeine sexuelle Inhalte
violence0,500,80Allgemeine Gewalt
harassment/threatening0,500,80Bedrohliche Belästigung
hate/threatening0,500,80Bedrohlicher Hass
harassment0,600,85Allgemeine Belästigung
hate0,600,85Allgemeiner Hass
illicit0,600,85Allgemeine Anleitung zu illegalen Handlungen

Bewertungsregeln

Irgendeine Kategorie score >= high-Schwelle dieser Kategorie   → risk_level = "high",   flagged = true,  Aufnahme in violations
Irgendeine Kategorie score >= medium-Schwelle dieser Kategorie → risk_level = "medium", flagged = false
Andernfalls → risk_level = "low", flagged = false

Empfehlungen für die Anwendungsseite

summary = response["evolink_summary"]

if summary["flagged"]: # high → direkt ablehnen
reject(reason=summary["violations"])
elif summary["risk_level"] == "medium": # Graubereich
log_for_review(summary) # protokollieren, manuelle Stichprobe
proceed()
else: # low → freigeben
proceed()
id
string

Eindeutige Kennung dieser Moderationsanfrage

Beispiel:

"modr-0d9740456c391e43c445bf0f010940c7"

model
string

Name des tatsächlich verwendeten Modells, fest auf evolink-moderation-1.0 gesetzt

Beispiel:

"evolink-moderation-1.0"

results
object[]

Liste der Moderationsergebnisse. Es wird stets 1 Ergebnis zurückgegeben (Eingaben in Array-Form werden zu einer einzelnen Bewertung zusammengeführt).

Multimodaler Bewertungsumfang

Von den 13 Kategorien werden einige nur am Text ausgewertet, nicht am Bild:

KategorieBewertungsumfang
harassment / harassment/threateningNur Text
hate / hate/threateningNur Text
illicit / illicit/violentNur Text
sexual/minorsNur Text (rote Linie — besondere Vorsicht)
self-harm / self-harm/intent / self-harm/instructionsText + Bild
sexualText + Bild
violence / violence/graphicText + Bild

Wichtige Fakten:

  • Wird ausschließlich ein Bild übergeben, sind die Scores der oben genannten 7 reinen Text-Kategorien stets 0 und category_applied_input_types ist ein leeres Array – das bedeutet nicht, dass der Inhalt sicher ist, sondern lediglich, dass er nicht bewertet wurde
  • Befasst sich die Anwendung mit Risiken für Minderjährige (rote-Linie-Kategorie sexual/minors), muss zwingend zusammen mit dem Textkontext geprüft werden – sich nur auf den Bild-Score zu verlassen, ist nicht zulässig