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.
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ésultat | Impact |
|---|
| Bonne réponse | Score + 1 |
| Mauvaise réponse | Score - 3 |
| Gainé par le développeur | 0¢ (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.