Passer au contenu principal
1

Obtenez votre clé API

  1. Créez un compte gratuit.
  2. Ouvrez votre tableau de bord.
  3. Cliquez sur Generate Key dans la section API Keys.
Copiez votre clé immédiatement. Elle commence par rail_ et ne sera plus affichée par la suite.
2

Vérifiez votre clé

curl https://api.responsibleailabs.ai/health
Response
{ "status": "healthy", "service": "rail-score-engine" }
3

Installez un SDK

pip install rail-score-sdk
4

Évaluez votre première réponse

Envoyez un contenu généré par IA et récupérez un RAIL score. Ici, nous évaluons une réponse classique d’un agent de support.
from rail_score_sdk import RailScoreClient

client = RailScoreClient(api_key="YOUR_RAIL_API_KEY")

result = client.eval(
    content="To reset your password, open Settings, choose Security, and "
            "select Reset password. We will email you a secure link that "
            "expires in 30 minutes.",
    mode="basic",
)

print(f"RAIL Score: {result.rail_score.score}/10")
for dim, scores in result.dimension_scores.items():
    print(f"  {dim}: {scores.score}/10")
Response
{
  "result": {
    "rail_score": { "score": 7.6, "confidence": 0.51, "summary": "RAIL Score: 7.6/10 — Good" },
    "dimension_scores": {
      "fairness":       { "score": 7.7, "confidence": 0.84 },
      "safety":         { "score": 10.0, "confidence": 0.70 },
      "reliability":    { "score": 7.7, "confidence": 0.16 },
      "transparency":   { "score": 6.5, "confidence": 0.50 },
      "privacy":        { "score": 8.0, "confidence": 0.59 },
      "accountability": { "score": 6.6, "confidence": 0.97 },
      "inclusivity":    { "score": 6.6, "confidence": 0.74 },
      "user_impact":    { "score": 7.8, "confidence": 0.09 }
    },
    "from_cache": false
  },
  "policy_outcome": { "enforcement": "block", "threshold": 7.0, "score": 7.6, "passed": true, "enforced": false },
  "metadata": { "req_id": "b00379a5-d6a7-45d6-905c-82925666a616", "mode": "basic" }
}
Lire la réponse :
  • rail_score.score : le score global, de 0 à 10, une moyenne pondérée des huit dimensions. Ici, 7.6 se situe dans la tranche Good (Bon).
  • dimension_scores : le score et la confiance pour chacune des huit dimensions RAIL. Les scores les plus faibles ici (transparence, responsabilité, inclusivité, autour de 6,6) indiquent ce qu’il faut améliorer : la réponse ne précise pas qui contacter ni ce qu’il se passe si l’e-mail n’arrive jamais.
  • policy_outcome : comment la politique de votre application a jugé ce résultat : le seuil à atteindre, si le résultat a réussi (passed) et si l’application des règles est actuellement active. Ici, le mode est l’observation (enforced: false), donc le verdict est rapporté mais la réponse n’est pas modifiée.
5

Allez plus loin avec le mode deep

Le mode basic vous donne les scores. Le mode deep effectue une analyse plus détaillée du même contenu et ajoute une explication par dimension, des étiquettes de problèmes et des suggestions d’amélioration, afin que vous puissiez comprendre pourquoi une dimension a obtenu un certain score.
result = client.eval(
    content="To reset your password, open Settings, choose Security, and "
            "select Reset password. We will email you a secure link that "
            "expires in 30 minutes.",
    mode="deep",
    include_explanations=True,
    include_issues=True,
)

for dim, scores in result.dimension_scores.items():
    print(f"{dim}: {scores.score}/10 — {scores.explanation}")
Response (excerpt)
{
  "result": {
    "rail_score": { "score": 8.1, "confidence": 0.77, "summary": "RAIL Score: 8.1/10 — Good" },
    "dimension_scores": {
      "transparency": {
        "score": 7.0, "confidence": 0.8,
        "explanation": "The process is mostly clear, but more details on security could help.",
        "issues": ["Lack of detailed security information"]
      },
      "safety": {
        "score": 8.0, "confidence": 0.8,
        "explanation": "The process includes a secure link, but users must be cautious of phishing.",
        "issues": ["Potential phishing risks"]
      }
    },
    "issues": [
      { "dimension": "safety", "description": "Potential phishing risks" },
      { "dimension": "transparency", "description": "Lack of detailed security information" }
    ]
  },
  "metadata": { "mode": "deep" }
}
Chaque dimension porte désormais une explanation et des issues, et la réponse rassemble tous les problèmes signalés dans un tableau issues de premier niveau, prêt à être affiché dans une file de revue ou un tableau de bord.

Et ensuite

Concepts : Évaluation

Comprenez les modes basic et deep, les tranches de score et les pondérations personnalisées.

Concepts : Régénération sécurisée

Corrigez automatiquement les contenus dont le score est inférieur à vos seuils.

Intégrations

Encapsulez vos appels OpenAI, Anthropic ou Gemini avec un scoring RAIL automatique.

SDK Python

Référence complète du SDK avec clients synchrones et asynchrones.