Passer au contenu principal

client.safeRegenerate()

Régénération côté serveur

const result = await client.safeRegenerate({
  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.",
  mode: "basic",
  maxRegenerations: 3,
  thresholds: {
    overall: { score: 8.0, confidence: 0.5 }
  },
  domain: "general"
});

console.log(result.status);               // "passed" | "max_iterations_reached"
console.log(result.best_content);         // Contenu amélioré
console.log(result.best_iteration);       // Quelle itération était la meilleure
console.log(result.best_scores.rail_score.score);
console.log(result.credits_consumed);

result.iteration_history?.forEach(iter => {
  console.log(`Itération ${iter.iteration}: ${iter.scores.rail_score.score} (réussi : ${iter.thresholds_met})`);
});

Régénération côté client

Utilisez votre propre LLM pour régénérer. L’API renvoie une invite guidée par RAIL et un ID de session ; vous régénérez puis soumettez le résultat via safeRegenerateContinue().
// Étape 1 : Démarrer la session — L'API évalue et renvoie une invite guidée
const initial = await client.safeRegenerate({
  content: "Contenu nécessitant une amélioration...",
  maxRegenerations: 3,
  thresholds: { overall: { score: 8.0 } }
});

if (initial.status === "awaiting_regeneration" && initial.rail_prompt) {
  const { system_prompt, user_prompt } = initial.rail_prompt;

  // Régénérer avec votre modèle
  const completion = await openai.chat.completions.create({
    model: "gpt-4o",
    messages: [
      { role: "system", content: system_prompt },
      { role: "user",   content: user_prompt }
    ]
  });

  // Étape 2 : Soumettre le contenu régénéré pour réévaluation
  const continued = await client.safeRegenerateContinue({
    sessionId: initial.session_id,
    regeneratedContent: completion.choices[0].message.content
  });

  console.log(continued.status);       // "passed" ou "awaiting_regeneration"
  console.log(continued.best_content); // Meilleur contenu jusqu'à présent
}
Les sessions expirent après 15 minutes. Les sessions expirées déclenchent une SessionExpiredError.

Paramètres

ParamètreTypePar défautDescription
contentstringRequisTexte à évaluer et à améliorer (10–10 000 caractères)
modestring"basic""basic" ou "deep"
maxRegenerationsnumber3Itérations maximales (1–5)
thresholdsobjectoverall >= 7.0Configuration des seuils
domainstring"general"Domaine de contenu pour un scoring contextuel

Réponse : SafeRegenerateResult

{
  "status": "passed",
  "original_content": "...",
  "best_content": "...",
  "best_iteration": 2,
  "best_scores": {
    "rail_score": { "score": 8.4, "confidence": 0.82 },
    "dimension_scores": {},
    "thresholds_met": true
  },
  "iteration_history": [
    { "iteration": 1, "thresholds_met": false, "failing_dimensions": ["fairness"] },
    { "iteration": 2, "thresholds_met": true,  "failing_dimensions": [] }
  ],
  "credits_consumed": 4.0,
  "credits_breakdown": { "evaluations": 2.0, "regenerations": 2.0, "total": 4.0 }
}

Quelles sont les prochaines étapes

Évaluation

Évaluer le contenu sur les 8 dimensions RAIL.

Conformité

Vérifier le contenu par rapport aux cadres réglementaires.