Passer au contenu principal
L’évaluation vous indique quel est le score. Le moteur de politiques indique à votre application ce qu’il faut en faire. Vous déclarez des règles - “si la sécurité descend en dessous de 7, bloquer la réponse” - et le SDK les applique automatiquement à chaque réponse évaluée.
SDK Python : client.eval() avec policy= | Sessions : RAILSession

Évaluation vs politique

ÉvaluationMoteur de politiques
RetourneScores, confiance, explicationsAction : block / warn / flag / allow
RôleObservationApplication
Quand l’utiliserVous voulez les scores et décidez quoi en faireVous voulez que le SDK applique les règles automatiquement

Comment ça fonctionne

Les règles sont évaluées par ordre de priorité. La première règle déclenchée détermine l’action principale. Les règles de priorité inférieure qui sont aussi déclenchées ajoutent leurs actions en secondaire, de sorte qu’aucun problème n’est silencieusement ignoré.

Actions de politique

ActionQuand l’utiliserExemple
blockLa réponse ne doit pas atteindre l’utilisateursafety < 5 sur un chatbot orienté client
warnLa réponse peut être transmise, l’appelant doit être notifiéreliability < 6 - la réponse peut contenir de l’incertitude
flagMettre en file d’attente pour une revue humaine asynchrone sans bloquerfairness < 7 - signaler pour revue de biais
allowLaisser passer explicitement (par défaut pour le contenu non couvert)Règle de rattrapage en fin de liste

Déclarer une politique

from rail_score_sdk import RailScoreClient, Policy, Rule

client = RailScoreClient(api_key="...")

policy = Policy(rules=[
    Rule(dimension="safety",      threshold=7.0, action="block"),
    Rule(dimension="fairness",    threshold=6.0, action="flag"),
    Rule(dimension="reliability", threshold=5.0, action="warn"),
])

result = client.eval(
    content="...",
    mode="basic",
    policy=policy,
)

print(result.policy_outcome.action)           # "block" | "warn" | "flag" | "allow"
print(result.policy_outcome.triggered_rules)  # Which rules fired
print(result.policy_outcome.blocked)          # True if action == "block"

Politiques réutilisables

Définissez une politique une seule fois et attachez-la au client pour qu’elle s’applique automatiquement à chaque appel eval() :
HEALTHCARE_POLICY = Policy(rules=[
    Rule(dimension="safety",       threshold=8.5, action="block"),
    Rule(dimension="reliability",  threshold=7.5, action="block"),
    Rule(dimension="privacy",      threshold=8.0, action="block"),
    Rule(dimension="transparency", threshold=6.0, action="warn"),
])

client = RailScoreClient(
    api_key="...",
    default_policy=HEALTHCARE_POLICY,
)

result = client.eval(content="...", mode="basic")  # Policy applies automatically

if result.policy_outcome.blocked:
    return "I'm unable to provide that information — please consult a healthcare professional."

Politiques au niveau de la session

Une session suit la qualité sur l’ensemble d’une conversation. Vous pouvez définir une politique qui se déclenche sur la qualité agrégée de la conversation, ce qui est utile pour détecter une dégradation progressive sur de nombreux échanges :
from rail_score_sdk import RailScoreClient, RAILSession, Policy, Rule

turn_policy = Policy(rules=[
    Rule(dimension="safety", threshold=5.0, action="block"),
])

session_policy = Policy(rules=[
    Rule(dimension="safety", threshold=7.0, action="flag", aggregate="avg"),
])

session = RAILSession(
    client=client,
    turn_policy=turn_policy,
    session_policy=session_policy,
)

for user_message in conversation:
    response = await generate_response(user_message)
    outcome = session.record(content=response, mode="basic")

    if outcome.turn_blocked:
        send_fallback()
    elif outcome.session_flagged:
        notify_human_reviewer(session.session_id)
    else:
        send(response)

Exemples de politiques concrets

safety      >= 8.5 : block
reliability >= 7.5 : block
privacy     >= 8.0 : block
transparency>= 6.0 : warn
fairness    >= 8.0 : block
inclusivity >= 7.0 : flag
safety      >= 6.0 : warn
safety      >= 7.0 : block
reliability >= 5.0 : warn
user_impact >= 6.0 : flag

Et ensuite

Python : Moteur de politiques

API complète pour Policy, Rule et les callbacks de politique.

Python : Sessions

Cycle de vie de RAILSession et politiques agrégées.

Concepts : Middleware

Combinez les politiques avec les wrappers de fournisseurs pour une application sans boilerplate.

Concepts : Évaluation

Comprendre les scores avant d’appliquer des règles de politique.