> ## 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

> Bewerten Sie KI-Inhalte mit client.eval(). Basismodus, Tiefenmodus, selektive Dimensionen, benutzerdefinierte Gewichte und Referenzobjekt für Antworten.

<Info>
  **API-Referenz:** [Bewertungsendpunkt](/api-reference/evaluation) | **Python:** [`client.eval()`](/sdk/python/evaluation)
</Info>

## `client.eval()`

### Grundlegende Bewertung

```typescript theme={null}
const result = await client.eval({
  content: "Es gibt mehrere natürliche Ansätze, die bei Schlaflosigkeit helfen können. Einen konsistenten Schlafrhythmus zu etablieren, die Bildschirmzeit vor dem Schlafengehen zu begrenzen und eine kühle, dunkle Schlafumgebung zu schaffen, sind gut unterstützte Strategien. Wenn Schlafprobleme bestehen bleiben, wird empfohlen, einen Gesundheitsdienstleister zu konsultieren.",
  mode: "basic"
});

console.log(result.rail_score.score);                // 8.6
console.log(result.rail_score.confidence);           // 0.87
console.log(result.dimension_scores.safety.score);   // 9.0
console.log(result.from_cache);                      // false
```

### Tiefenbewertung

```typescript theme={null}
const result = await client.eval({
  content: "Bei der Überprüfung von Lebensläufen sollten Kandidaten von erstklassigen Universitäten priorisiert werden. Kandidaten von weniger bekannten Institutionen haben typischerweise nicht die rigorose Ausbildung, die für diese Rolle erforderlich ist.",
  mode: "deep",
  includeExplanations: true,
  includeIssues: true,
  includeSuggestions: true
});

for (const [dim, score] of Object.entries(result.dimension_scores)) {
  console.log(`${dim}: ${score.score}/10`);
  if (score.explanation) console.log(`  → ${score.explanation}`);
  if (score.issues?.length) console.log(`  Probleme: ${score.issues.join(", ")}`);
}

// Gesamtbeschreibung
console.log(result.explanation);
```

### Selektive Dimensionen

```typescript theme={null}
const result = await client.eval({
  content: "Ihr Passwort wurde zurückgesetzt. Das neue temporäre Passwort lautet TempPass123. Ihre Kontomail ist john.doe@company.com.",
  dimensions: ["privacy", "safety"]
});

console.log(result.dimension_scores.privacy.score);   // 2.0
console.log(result.dimension_scores.safety.score);    // 6.0
```

### Benutzerdefinierte Gewichte

```typescript theme={null}
const result = await client.eval({
  content: "Basierend auf meiner Analyse sollten Sie alle 4 Stunden 400 mg Ibuprofen zur Schmerzlinderung einnehmen. Für diese Dosierung müssen Sie Ihren Arzt nicht konsultieren.",
  weights: { safety: 50, reliability: 30, accountability: 20 }
});

console.log(result.rail_score.score);   // Gewichteter Gesamtscore
```

<Note>
  **Modi:** `basic` - nur Scores, 5 Minuten zwischengespeichert, 1.0 Kredit. `deep` - Scores + Erklärungen + Probleme, 3 Minuten zwischengespeichert, 3.0 Credits. Gewichte müssen 100 ergeben.
</Note>

## Parameter

| Parameter             | Typ        | Standard         | Beschreibung                                              |
| --------------------- | ---------- | ---------------- | --------------------------------------------------------- |
| `content`             | `string`   | **Erforderlich** | Zu bewertender Text (10–10.000 Zeichen)                   |
| `mode`                | `string`   | `"basic"`        | `"basic"` oder `"deep"`                                   |
| `dimensions`          | `string[]` | alle 8           | Teilmenge der Dimensionen zur Bewertung                   |
| `weights`             | `object`   | gleich           | Gewichte pro Dimension (müssen 100 ergeben)               |
| `domain`              | `string`   | `"general"`      | `"general"` \| `"healthcare"` \| `"finance"` \| `"legal"` |
| `includeExplanations` | `boolean`  | `false`          | Erklärungen pro Dimension (Tiefenmodus)                   |
| `includeIssues`       | `boolean`  | `false`          | Problemtags pro Dimension (Tiefenmodus)                   |
| `includeSuggestions`  | `boolean`  | `false`          | Verbesserungsvorschläge (Tiefenmodus)                     |

## Antwort: `EvalResult`

```json theme={null}
{
  "rail_score": {
    "score": 8.6,
    "confidence": 0.87,
    "summary": "RAIL Score: 8.6/10 — Gut"
  },
  "explanation": "Ganzheitliche Erklärung über alle Dimensionen...",
  "dimension_scores": {
    "fairness":       { "score": 9.0, "confidence": 0.90, "explanation": "...", "issues": [] },
    "safety":         { "score": 9.0, "confidence": 0.88 },
    "reliability":    { "score": 8.0, "confidence": 0.82 },
    "transparency":   { "score": 8.5, "confidence": 0.85 },
    "privacy":        { "score": 5.0, "confidence": 1.0 },
    "accountability": { "score": 8.5, "confidence": 0.84 },
    "inclusivity":    { "score": 9.0, "confidence": 0.90 },
    "user_impact":    { "score": 8.5, "confidence": 0.86 }
  },
  "from_cache": false
}
```

## Score-Labels

| Score      | Label         |
| ---------- | ------------- |
| 8.0 – 10.0 | Ausgezeichnet |
| 6.0 – 7.9  | Gut           |
| 4.0 – 5.9  | Fair          |
| 2.0 – 3.9  | Schlecht      |
| 0.0 – 1.9  | Kritisch      |

```typescript theme={null}
import { getScoreLabel } from '@responsible-ai-labs/rail-score';
getScoreLabel(8.5);  // "Ausgezeichnet"
getScoreLabel(6.0);  // "Gut"
```

## Was kommt als Nächstes

<CardGroup cols={2}>
  <Card title="Sichere Regeneration" icon="rotate" href="/sdk/javascript/safe-regeneration">
    Inhalte bewerten und iterativ verbessern.
  </Card>

  <Card title="Compliance" icon="shield-check" href="/sdk/javascript/compliance">
    Inhalte gegen regulatorische Rahmenbedingungen überprüfen.
  </Card>
</CardGroup>
