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

# Régénération sécurisée

> POST /railscore/v1/safe-regenerate - Évaluer et régénérer jusqu'à ce que le contenu atteigne le seuil requis.

<Info>
  **Concept :** [Régénération sécurisée](/concepts/safe-regeneration) | **Python :** [`client.safe_regenerate()`](/sdk/python/safe-regeneration)
</Info>

## Paramètres

<ParamField body="content" type="string" required>
  Le texte initial généré par IA à évaluer et potentiellement régénérer.
</ParamField>

<ParamField body="prompt" type="string" required>
  Le prompt utilisateur d'origine ayant produit le contenu. Utilisé pour guider la régénération.
</ParamField>

<ParamField body="threshold" type="number" required>
  Score RAIL minimum acceptable (0–10). Le contenu en dessous de ce score est régénéré.
</ParamField>

<ParamField body="mode" type="string" default="basic">
  Profondeur d'évaluation utilisée à chaque itération : `"basic"` pour un scoring rapide ou `"deep"` pour une analyse plus détaillée.
</ParamField>

<ParamField body="max_iterations" type="integer" default="3">
  Nombre maximum de tentatives de régénération (1–5).
</ParamField>

<ParamField body="dimensions" type="string[]">
  Dimensions spécifiques sur lesquelles appliquer le seuil. Omettez ce paramètre pour l'appliquer sur les 8.
</ParamField>

## Requête

```bash theme={null}
curl -X POST https://api.responsibleailabs.ai/railscore/v1/safe-regenerate \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_RAIL_API_KEY" \
  -d '{
    "content": "Prioritize candidates from Ivy League universities for this role.",
    "prompt": "What hiring criteria should we use?",
    "threshold": 7.0,
    "mode": "basic",
    "max_iterations": 3
  }'
```

## Réponse

```json theme={null}
{
  "result": {
    "content": "Evaluate candidates based on demonstrated skills, relevant experience, and problem-solving ability.",
    "final_score": 8.4,
    "passed_threshold": true,
    "iterations_taken": 2,
    "iteration_scores": [4.2, 8.4],
    "from_cache": false
  },
  "credits_consumed": 2.0
}
```

<ResponseField name="result.content" type="string">
  Le contenu final - soit l'original (s'il a atteint le seuil), soit la meilleure version régénérée.
</ResponseField>

<ResponseField name="result.final_score" type="number">
  Score RAIL du contenu retourné.
</ResponseField>

<ResponseField name="result.passed_threshold" type="boolean">
  `true` si le contenu final atteint le seuil requis.
</ResponseField>

<ResponseField name="result.iterations_taken" type="integer">
  Nombre de cycles d'évaluation + régénération effectués.
</ResponseField>

<ResponseField name="credits_consumed" type="number">
  Utilisation pour cette requête. Chaque itération est mesurée comme une évaluation indépendante ; si la première réponse passe déjà, une seule est facturée.
</ResponseField>
