> ## Documentation Index
> Fetch the complete documentation index at: https://docs.responsibleailabs.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Bewertung

> POST /railscore/v1/eval - KI-Inhalte über 8 RAIL-Dimensionen bewerten.

<Info>
  **Konzept:** [Bewertung](/concepts/evaluation) | **Python:** [`client.eval()`](/sdk/python/evaluation)
</Info>

## Parameter

<ParamField body="content" type="string" required>
  Der zu bewertende KI-generierte Text. Muss 10–10.000 Zeichen umfassen.
</ParamField>

<ParamField body="mode" type="string" default="basic">
  Bewertungsmodus:

  * `"basic"` — die Kern-Scoring-Modelle von RAIL für schnelles Echtzeit-Scoring.
  * `"deep"` — eine tiefere, detailliertere Analyse, die zusätzlich Erklärungen pro Dimension und Problem-Tags zurückgeben kann.
  * `"auto"` — führt `basic` aus und eskaliert automatisch zu `deep` nur dann, wenn ein echtes Problem erkannt wird (eine niedrig bewertete oder niedrig-konfidente Dimension oder ein gekennzeichnetes Signal). Sie erhalten schnelles Scoring bei sauberen Inhalten und tiefe Analyse genau dort, wo es zählt. Die Antwort `result` beinhaltet `resolved_mode` (`"basic"` oder `"deep"` — welche Stufe tatsächlich ausgeführt wurde) und `escalated` (boolean). Abgerechnet nach der Stufe, die ausgeführt wurde.
</ParamField>

<ParamField body="dimensions" type="string[]">
  Teilmenge der zu bewertenden Dimensionen. Weglassen, um alle 8 zu bewerten. Optionen: `fairness`, `safety`, `reliability`, `transparency`, `privacy`, `accountability`, `inclusivity`, `user_impact`.
</ParamField>

<ParamField body="weights" type="object">
  Benutzerdefinierte Dimensionsgewichtungen. Die Werte müssen sich auf 100 summieren. Z. B. `{"safety": 25, "reliability": 20, ...}`.
</ParamField>

<ParamField body="domain" type="string">
  Hinweis auf den Domänenkontext: `"general"`, `"healthcare"`, `"legal"`, `"finance"`, `"code"`. Verbessert die Bewertungsgenauigkeit.
</ParamField>

<ParamField body="include_explanations" type="boolean" default="false">
  Erklärungen pro Dimension einbeziehen (nur Deep-Modus).
</ParamField>

<ParamField body="include_issues" type="boolean" default="false">
  Erkannte Problem-Tags pro Dimension einbeziehen (nur Deep-Modus).
</ParamField>

<ParamField body="include_suggestions" type="boolean" default="false">
  Verbesserungsvorschläge pro Dimension einbeziehen (nur Deep-Modus).
</ParamField>

## Anfrage

```bash theme={null}
curl -X POST https://api.responsibleailabs.ai/railscore/v1/eval \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_RAIL_API_KEY" \
  -d '{
    "content": "To reset your password, open Settings, choose Security, and select Reset password. We will email you a secure link that expires in 30 minutes.",
    "mode": "basic"
  }'
```

## Antwort

```json theme={null}
{
  "result": {
    "rail_score": { "score": 7.6, "confidence": 0.51, "summary": "RAIL Score: 7.6/10 — Good" },
    "dimension_scores": {
      "fairness":       { "score": 7.7, "confidence": 0.84 },
      "safety":         { "score": 10.0, "confidence": 0.70 },
      "reliability":    { "score": 7.7, "confidence": 0.16 },
      "transparency":   { "score": 6.5, "confidence": 0.50 },
      "privacy":        { "score": 8.0, "confidence": 0.59 },
      "accountability": { "score": 6.6, "confidence": 0.97 },
      "inclusivity":    { "score": 6.6, "confidence": 0.74 },
      "user_impact":    { "score": 7.8, "confidence": 0.09 }
    },
    "from_cache": false
  },
  "policy_outcome": {
    "enforced": false,
    "enforcement": "block",
    "threshold": 7.0,
    "score": 7.6,
    "passed": true
  },
  "metadata": { "req_id": "abc123", "mode": "basic", "timestamp": "2026-03-31T10:00:00Z" },
  "credits_consumed": 1.0
}
```

<ResponseField name="policy_outcome" type="object">
  Wie die [Richtlinie](/concepts/policy-engine) Ihrer Anwendung dieses Ergebnis bewertet hat.

  * `enforcement` — der Modus der Richtlinie (`log_only`, `block` oder `regenerate`).
  * `threshold` — der zum Bestehen erforderliche Gesamtscore.
  * `score` — der Gesamtscore dieses Ergebnisses.
  * `passed` — ob der Score den Schwellenwert erreicht hat.
  * `enforced` — ob auf das Ergebnis reagiert wurde. Bei `false` befindet sich die Richtlinie im Beobachtungsmodus: Das Urteil wird gemeldet, aber die Antwort wird nicht verändert, sodass Sie sehen können, was *blockiert würde*. Prüfen Sie den aktuellen Zustand mit [`GET /config`](/api-reference/config).

  Wenn die Durchsetzung aktiv ist und ein Ergebnis nicht besteht, gibt eine `block`-Richtlinie `422 POLICY_BLOCKED` zurück, und eine `regenerate`-Richtlinie versucht eine sichere Neuformulierung, bevor sie ihre Ausweichaktion anwendet.
</ResponseField>

<ResponseField name="result.rail_score.score" type="number">
  RAIL-Gesamtscore (0,0–10,0), gewichteter Durchschnitt aller bewerteten Dimensionen.
</ResponseField>

<ResponseField name="result.rail_score.confidence" type="number">
  Modellkonfidenz im Score (0,0–1,0).
</ResponseField>

<ResponseField name="result.dimension_scores" type="object">
  Scores pro Dimension. Jeder Eintrag hat `score` (0–10) und `confidence` (0–1). Im Deep-Modus zusätzlich: `explanation`, `issues`, `suggestions`.
</ResponseField>

<ResponseField name="result.from_cache" type="boolean">
  `true`, wenn dieses Ergebnis aus dem Cache zurückgegeben wurde (0 Credits berechnet).
</ResponseField>

<ResponseField name="result.resolved_mode" type="string">
  Bei `mode: "auto"` die Stufe, die tatsächlich ausgeführt wurde — `"basic"` oder `"deep"`. Verwenden Sie `result.escalated`, um festzustellen, ob der Deep Judge aufgerufen wurde.
</ResponseField>

<ResponseField name="result.input_truncated" type="boolean">
  Nur vorhanden (als `true`), wenn der übermittelte Inhalt das Analysefenster (ca. 4.000 Zeichen) überschreitet: der Score bewertet den vorderen Teil des Inhalts. Teilen Sie längere Inhalte für vollständige Abdeckung auf mehrere Aufrufe auf.
</ResponseField>

<ResponseField name="credits_consumed" type="number">
  Für diese Anfrage berechnete Credits. `0` bei zwischengespeicherten Antworten.
</ResponseField>
