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

# Python : Configuration

> Introspection en lecture seule de la politique de votre application, des capacités de plan et des dimensions avec client.get_config / get_capabilities / get_dimensions. Aucun crédit consommé.

<Info>
  **Concept :** [Applications](/concepts/applications) · [Moteur de politiques](/concepts/policy-engine) | **API :** [Configuration](/api-reference/config)
</Info>

<Note>
  Ajouté dans le **SDK 2.6.0**. Chaque clé API est liée à une application dont la politique de gouvernance est configurée centralement dans le [tableau de bord](https://responsibleailabs.ai/dashboard). Ces trois méthodes permettent à votre code de lire cette configuration à l'exécution — utile pour les vérifications de démarrage, les tableaux de bord et la surveillance. Elles sont en lecture seule et **ne consomment pas de crédits**.
</Note>

```mermaid theme={null}
flowchart LR
    K["Votre clé API"] --> A["client.get_config()<br/>politique + mode d'application"]
    K --> B["client.get_capabilities()<br/>caractéristiques de plan + limites"]
    K --> C["client.get_dimensions()<br/>poids + seuils"]
```

## Configuration de l'application

`get_config()` retourne l'application à laquelle la clé est liée, sa politique de gouvernance et si l'application façonne activement les réponses ou les observe seulement.

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

client = RailScoreClient(api_key="YOUR_RAIL_API_KEY")

cfg = client.get_config()

print(f"Application: {cfg.application.id} ({cfg.application.environment})")
print(f"Plan:        {cfg.application.plan}")
print(f"Enforcement: {cfg.policy.enforcement}")   # log_only | block | regenerate
print(f"Eval mode:   {cfg.policy.eval_mode}")      # basic | deep
print(f"Threshold:   {cfg.policy.overall_threshold}")
print(f"Mode:        {cfg.enforcement.mode}")      # enforce | monitor

if cfg.policy.locked:
    print("Policy is locked by an administrator; per-request overrides are ignored.")
```

## Capacités du plan

`get_capabilities()` rapporte ce que le plan de la clé peut accéder — modes d'évaluation, cadres de conformité, fonctionnalités d'agent et DPDP et limites de requête. Utilisez-le pour adapter le comportement sans coder en dur les hypothèses de plan.

```python theme={null}
caps = client.get_capabilities()

print(f"Plan: {caps.plan}")
print(f"Frameworks: {caps.compliance.get('frameworks')}")
print(f"DPDP evidence available: {caps.dpdp.get('evidence')}")   # Pro+ only
print(f"Requests/day: {caps.limits.get('requests_per_day')}")     # None = unlimited
```

## Métadonnées de dimension

`get_dimensions()` retourne les huit dimensions RAIL avec le **poids** et le **seuil** configurés pour votre application, plus les bandes de score dans lesquelles un résultat tombe.

```python theme={null}
dims = client.get_dimensions()

for d in dims.dimensions:
    print(f"{d.get('name'):14} weight={d.get('weight')} threshold={d.get('threshold')}")

for band in dims.score_bands:
    print(band.get("band"), ">=", band.get("min"))
```

<Tip>
  Chaque résultat typé expose également un dictionnaire `.raw` avec la réponse inmodifiée, donc les nouveaux champs sont toujours accessibles même avant que le SDK n'ajoute un accesseur typé.
</Tip>

## Async

Le client async expose les mêmes trois méthodes :

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

async def main():
    client = AsyncRAILClient(api_key="YOUR_RAIL_API_KEY")
    caps = await client.get_capabilities()
    print(caps["plan"])  # async client returns raw dicts

asyncio.run(main())
```

## Connexe

<CardGroup cols={2}>
  <Card title="API de configuration" icon="gear" href="/api-reference/config">
    Les points de terminaison REST derrière ces méthodes.
  </Card>

  <Card title="Moteur de politiques" icon="gavel" href="/concepts/policy-engine">
    Comment l'application, les seuils et le verrouillage fonctionnent.
  </Card>
</CardGroup>
