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

# Aperçu du SDK Python

> Installez et configurez le SDK Python RAIL Score - clients synchrones et asynchrones.

## Installation

```bash theme={null}
pip install rail-score-sdk
```

Installez avec des extras optionnels pour les intégrations de fournisseurs :

```bash theme={null}
pip install "rail-score-sdk[openai]"       # Wrapper OpenAI
pip install "rail-score-sdk[anthropic]"    # Wrapper Anthropic
pip install "rail-score-sdk[google]"       # Wrapper Gemini
pip install "rail-score-sdk[litellm]"      # Wrapper LiteLLM
pip install "rail-score-sdk[integrations]" # Tous les fournisseurs LLM
pip install "rail-score-sdk[agents]"       # CrewAI, LangGraph, AutoGen
pip install "rail-score-sdk[telemetry]"    # Support OpenTelemetry
pip install "rail-score-sdk[dev]"          # Outils de développement
```

## Client synchrone

```python theme={null}
from rail_score_sdk import RailScoreClient

client = RailScoreClient(api_key="YOUR_RAIL_API_KEY")

result = client.eval(content="Votre texte généré par l'IA ici", mode="basic")
print(f"RAIL Score: {result.rail_score.score}/10")
```

`RailScoreClient` retourne des objets de dataclass typés. Accédez aux scores comme `result.rail_score.score`, `result.dimension_scores["fairness"].score`, etc.

## Client asynchrone

```python theme={null}
import asyncio
from rail_score_sdk import AsyncRAILClient

async def main():
    client = AsyncRAILClient(api_key="YOUR_RAIL_API_KEY")
    result = await client.eval(content="Votre texte ici", mode="basic")
    print(result["rail_score"]["score"])  # Retourne des dictionnaires bruts

asyncio.run(main())
```

`AsyncRAILClient` retourne des dictionnaires bruts plutôt que des dataclasses.

## Classes clés

| Classe            | But                                                 |
| ----------------- | --------------------------------------------------- |
| `RailScoreClient` | Client synchrone - toutes les méthodes principales  |
| `AsyncRAILClient` | Client asynchrone - toutes les méthodes principales |
| `RAILSession`     | Suivre la qualité à travers une conversation        |
| `Policy`          | Règles déclaratives pour l'application des scores   |
| `Rule`            | Règle de politique individuelle                     |
| `RAILMiddleware`  | Enveloppez toute fonction LLM asynchrone            |

## Gestion des erreurs

```python theme={null}
from rail_score_sdk import (
    RailScoreClient,
    AuthenticationError,
    InsufficientCreditsError,
    RateLimitError,
    ContentTooHarmfulError,
)

client = RailScoreClient(api_key="YOUR_RAIL_API_KEY")

try:
    result = client.eval(content="...", mode="deep")
except AuthenticationError:
    print("Vérifiez votre clé API")
except InsufficientCreditsError as e:
    print(f"Besoin de {e.required} crédits, en avoir {e.balance}")
except RateLimitError:
    print("Ralentissez les requêtes")
except ContentTooHarmfulError:
    print("Contenu bloqué au niveau de sécurité")
```

## Quelles sont les prochaines étapes

<CardGroup cols={2}>
  <Card title="Évaluation" icon="magnifying-glass" href="/sdk/python/evaluation">
    Exemples d'évaluation synchrones et asynchrones.
  </Card>

  <Card title="Régénération sécurisée" icon="rotate" href="/sdk/python/safe-regeneration">
    Correction automatique du contenu en dessous du seuil.
  </Card>

  <Card title="Sessions & Politique" icon="gavel" href="/sdk/python/sessions">
    Suivre la qualité à travers les conversations.
  </Card>

  <Card title="Intégrations" icon="plug" href="/integrations/overview">
    Wrappers de fournisseurs pour OpenAI, Gemini, Anthropic.
  </Card>
</CardGroup>
