Skip to main content

Qu’est-ce qu’une golden task ?

Une golden task est une tâche dont la réponse correcte est connue à l’avance. Elle est insérée discrètement dans le flux normal de tâches pour mesurer la qualité des annotateurs. L’utilisateur ne peut pas distinguer une golden task d’une tâche ordinaire — l’affichage est identique.

Comment ça marche

Flux SDK normal :
  100 tâches servies via getNextTask()
  └─  95 tâches normales  (réponses contribuent au consensus)
  └─   5 golden tasks     (réponses évaluées contre goldenAnswer)
5 % des tâches servies via le SDK sont des golden tasks, sélectionnées aléatoirement.

Impact sur le score de réputation

RésultatImpact
Bonne réponseScore + 1
Mauvaise réponseScore - 3
Gainé par le développeur0¢ (aucun)

Créer une golden task (Admin)

curl -X POST https://dloopiq.onrender.com/api/v1/admin/golden-tasks \
  -H "Authorization: Bearer <admin_jwt>" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "SENTIMENT_ANALYSIS",
    "content": "Ce film est un chef-d'\''œuvre absolu !",
    "options": ["Positif", "Négatif", "Neutre"],
    "goldenAnswer": "Positif",
    "locale": "fr"
  }'
Réponse :
{
  "id": "cmpkb4ghw00016qduu44p7n2q",
  "type": "SENTIMENT_ANALYSIS",
  "content": "Ce film est un chef-d'œuvre absolu !",
  "goldenAnswer": "Positif",
  "isGolden": true,
  "createdAt": "2026-05-25T10:00:00Z"
}
Le champ goldenAnswer n’est jamais exposé dans l’objet Task retourné par le SDK. Seul l’admin peut le voir.

Lister les golden tasks

curl "https://dloopiq.onrender.com/api/v1/admin/golden-tasks?limit=20" \
  -H "Authorization: Bearer <admin_jwt>"
{
  "goldenTasks": [
    {
      "id": "cmpkb4ghw00016qduu44p7n2q",
      "type": "SENTIMENT_ANALYSIS",
      "content": "Ce film est un chef-d'œuvre absolu !",
      "goldenAnswer": "Positif",
      "timesServed": 47,
      "correctResponses": 42,
      "accuracy": 0.89
    }
  ],
  "nextCursor": null,
  "total": 1
}

Bonnes pratiques

Créer des golden tasks représentatives

Créez des golden tasks qui ressemblent aux vraies tâches de votre domaine. Des golden tasks trop faciles ou artificielles ne mesurent pas bien la qualité réelle.
// Bon exemple : cas ambigus avec réponse claire
const goodGolden = {
  content: "Livraison rapide mais emballage abîmé.",
  options: ["Positif", "Négatif", "Neutre"],
  goldenAnswer: "Neutre"  // Sentiments contradictoires → Neutre
}

// Mauvais exemple : trop évident
const badGolden = {
  content: "J'adore ce produit c'est parfait !!!!",
  options: ["Positif", "Négatif", "Neutre"],
  goldenAnswer: "Positif"  // Trop facile, ne mesure rien
}

Volume recommandé

Créez au moins 50 golden tasks par type de tâche que vous utilisez. Avec 5 % de chance d’apparition, cela assure une rotation suffisante pour mesurer la qualité sur le long terme.

Surveiller l’accuracy

Si un développeur partenaire affiche une accuracy en golden tasks < 70 %, ses utilisateurs envoient probablement des réponses aléatoires ou sans attention. Vous pouvez contacter le développeur ou réduire leur priorité dans la queue.

Résultat côté SDK

Quand un utilisateur répond à une golden task, le SDK retourne :
const result = await dloopiq.completeTask({
  taskId: task.taskId,
  userId: 'user_123',
  answer: 'Positif',
  timeSpentMs: 2800
})

console.log(result.isGolden)     // true
console.log(result.earnedCents)  // 0  ← toujours zéro
console.log(result.status)       // "accepted"
L’application ne doit pas afficher de gains pour les golden tasks — cela révèlerait qu’elles sont différentes.