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

# Algorithme de consensus

> Comment DLoopIQ valide automatiquement les annotations et garantit leur qualité.

## Principe

Chaque tâche est soumise à **plusieurs annotateurs indépendants**. L'algorithme de consensus compare leurs réponses et valide la tâche si une majorité suffisante s'accorde.

```
3 annotateurs répondent : Positif, Positif, Négatif
→ confidence = 2/3 = 0.667  →  NON validé (< seuil 0.67)

4 annotateurs répondent : Positif, Positif, Positif, Négatif
→ confidence = 3/4 = 0.75   →  VALIDÉ ✅
```

***

## Seuil de confiance

Le seuil est fixé à **0.67** (67 %).

| Résultat        | Confidence | Validé ?        |
| --------------- | ---------- | --------------- |
| 2/3 concordants | 0.667      | ❌ Non (\< 0.67) |
| 3/4 concordants | 0.750      | ✅ Oui           |
| 4/5 concordants | 0.800      | ✅ Oui           |
| 3/3 concordants | 1.000      | ✅ Oui           |
| 5/5 concordants | 1.000      | ✅ Oui           |

<Note>
  **2/3 ne valide PAS.** 0.6667 est strictement inférieur au seuil 0.67. Pour une tâche à 3 validations requises, il faut que les 3 soient concordantes (confidence 1.0), ou passer à 4-5 validations où 3/4 suffit.
</Note>

***

## Cycle de vie d'une tâche

```
PENDING
  └─ Des réponses arrivent via le SDK
     └─ validationsNeeded réponses collectées
        ├─ confidence ≥ 0.67  →  COMPLETED ✅
        └─ confidence < 0.67  →  escalade Tier 1
              └─ 2 réponses supplémentaires demandées
                 ├─ confidence ≥ 0.67  →  COMPLETED ✅
                 └─ toujours < 0.67   →  FAILED ❌
```

***

## `validationsNeeded`

Par défaut, 3 réponses sont collectées par tâche. Vous pouvez augmenter ce nombre à la création :

```json theme={null}
{
  "type": "SENTIMENT_ANALYSIS",
  "content": "...",
  "options": ["Positif", "Négatif", "Neutre"],
  "validationsNeeded": 5
}
```

**Recommandations :**

* **3** — tâches simples (choix binaire, classification évidente)
* **5** — tâches ambiguës (sentiment nuancé, modération)
* **7+** — décisions critiques, contenu légal, médical

***

## Calcul de la confidence

```typescript theme={null}
confidence = nombreDeVotesForAnswer / totalReponses

// Exemple : 4 réponses, 3 "Positif"
confidence = 3 / 4 = 0.75  →  VALIDÉ ✅

// L'answer retenue est celle avec le plus de votes
result = "Positif"  (3 votes vs 1 pour "Négatif")
```

***

## Tâches FAILED

Quand le consensus ne peut pas être atteint :

* La tâche passe en statut `FAILED`
* **Aucun crédit n'est débité** pour les tâches échouées
* Un webhook `task.failed` est envoyé si configuré
* Vous pouvez recréer la tâche avec `validationsNeeded` plus élevé

```json theme={null}
{
  "event": "task.failed",
  "taskId": "cmpkb...",
  "reason": "NO_CONSENSUS",
  "responses": [
    { "answer": "Positif" },
    { "answer": "Négatif" },
    { "answer": "Neutre" },
    { "answer": "Positif" },
    { "answer": "Négatif" }
  ]
}
```

***

## Taux d'échec typiques

| Type de tâche       | Taux d'échec attendu |
| ------------------- | -------------------- |
| BINARY\_CHOICE      | \< 5 %               |
| SENTIMENT\_ANALYSIS | 5–15 %               |
| CONTENT\_MODERATION | 10–20 %              |
| COMPLEX\_ANNOTATION | 15–30 %              |

Les tâches très subjectives ou ambiguës ont naturellement un taux d'échec plus élevé.

***

## Améliorer la qualité

**1. Rédigez des options claires et mutuellement exclusives**

```
❌ Mauvais : ["Bien", "Pas bien", "Peut-être"]
✅ Bon     : ["Positif", "Négatif", "Neutre"]
```

**2. Ajoutez des instructions dans le contenu**

```json theme={null}
{
  "content": "Évaluez ce texte du point de vue du sentiment général exprimé par l'auteur :\n\n\"Le produit est correct mais la livraison était lente.\"",
  "options": ["Positif", "Négatif", "Neutre", "Mixte"]
}
```

**3. Utilisez les golden tasks**

Des golden tasks bien calibrées filtrent les annotateurs inattentifs, améliorant automatiquement la qualité du consensus.
