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

# Évaluation

> Évaluez le contenu AI avec client.eval(). Mode de base, mode approfondi, dimensions sélectives, poids personnalisés et référence d'objet de réponse.

<Info>
  **Référence API :** [Point de terminaison d'évaluation](/api-reference/evaluation) | **Python :** [`client.eval()`](/sdk/python/evaluation)
</Info>

## `client.eval()`

### Évaluation de base

```typescript theme={null}
const result = await client.eval({
  content: "Il existe plusieurs approches naturelles qui peuvent aider à lutter contre l'insomnie. Établir un horaire de sommeil régulier, limiter le temps d'écran avant de se coucher et créer un environnement de sommeil frais et sombre sont des stratégies bien soutenues. Si les problèmes de sommeil persistent, il est recommandé de consulter un professionnel de la santé.",
  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
```

### Évaluation approfondie

```typescript theme={null}
const result = await client.eval({
  content: "Lors de l'examen des CV, privilégiez les candidats issus d'universités de premier plan. Les candidats provenant d'institutions moins connues manquent généralement de la formation rigoureuse nécessaire pour ce rôle.",
  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(`  Problèmes : ${score.issues.join(", ")}`);
}

// Explication globale
console.log(result.explanation);
```

### Dimensions sélectives

```typescript theme={null}
const result = await client.eval({
  content: "Votre mot de passe a été réinitialisé. Le nouveau mot de passe temporaire est TempPass123. L'email de votre compte est 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
```

### Poids personnalisés

```typescript theme={null}
const result = await client.eval({
  content: "D'après mon analyse, vous devriez prendre 400 mg d'ibuprofène toutes les 4 heures pour soulager la douleur. Pas besoin de consulter votre médecin pour ce dosage.",
  weights: { safety: 50, reliability: 30, accountability: 20 }
});

console.log(result.rail_score.score);   // Score global pondéré
```

<Note>
  **Modes :** `basic` - scores uniquement, mis en cache 5 min, 1.0 crédit. `deep` - scores + explications + problèmes, mis en cache 3 min, 3.0 crédits. Les poids doivent totaliser 100.
</Note>

## Paramètres

| Paramètre             | Type       | Par défaut  | Description                                               |
| --------------------- | ---------- | ----------- | --------------------------------------------------------- |
| `content`             | `string`   | **Requis**  | Texte à évaluer (10–10 000 caractères)                    |
| `mode`                | `string`   | `"basic"`   | `"basic"` ou `"deep"`                                     |
| `dimensions`          | `string[]` | toutes 8    | Sous-ensemble de dimensions à évaluer                     |
| `weights`             | `object`   | égal        | Poids par dimension (doivent totaliser 100)               |
| `domain`              | `string`   | `"general"` | `"general"` \| `"healthcare"` \| `"finance"` \| `"legal"` |
| `includeExplanations` | `boolean`  | `false`     | Explications par dimension (mode approfondi)              |
| `includeIssues`       | `boolean`  | `false`     | Étiquettes de problèmes par dimension (mode approfondi)   |
| `includeSuggestions`  | `boolean`  | `false`     | Suggestions d'amélioration (mode approfondi)              |

## Réponse : `EvalResult`

```json theme={null}
{
  "rail_score": {
    "score": 8.6,
    "confidence": 0.87,
    "summary": "RAIL Score: 8.6/10 — Bon"
  },
  "explanation": "Explication holistique à travers toutes les dimensions...",
  "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
}
```

## Étiquettes de score

| Score      | Étiquette |
| ---------- | --------- |
| 8.0 – 10.0 | Excellent |
| 6.0 – 7.9  | Bon       |
| 4.0 – 5.9  | Juste     |
| 2.0 – 3.9  | Pauvre    |
| 0.0 – 1.9  | Critique  |

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

## Quelles sont les prochaines étapes

<CardGroup cols={2}>
  <Card title="Régénération sécurisée" icon="rotate" href="/sdk/javascript/safe-regeneration">
    Évaluez et améliorez le contenu de manière itérative.
  </Card>

  <Card title="Conformité" icon="shield-check" href="/sdk/javascript/compliance">
    Vérifiez le contenu par rapport aux cadres réglementaires.
  </Card>
</CardGroup>
