> ## 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: Sitzungen

> RAILSession - verfolgt RAIL-Punkte über ein mehrstufiges Gespräch.

<Info>
  **Konzept:** [Policy Engine](/concepts/policy-engine) | **API:** [Evaluation API](/api-reference/evaluation)
</Info>

`RAILSession` verfolgt jede Runde eines Gesprächs, berechnet aggregierte Statistiken und kann sitzungsbezogene Richtlinien durchsetzen, die aktiviert werden, wenn die Gesamtqualität abweicht, nicht nur bei einzelnen Runden.

<CodeGroup>
  ```python Basic session theme={null}
  from rail_score_sdk import RailScoreClient, RAILSession

  client = RailScoreClient(api_key="YOUR_RAIL_API_KEY")
  session = RAILSession(client=client)

  for response in conversation_responses:
      outcome = session.record(content=response, mode="basic")
      print(f"Turn score: {outcome.score}")
      print(f"Session avg: {session.average_score}")

  print(f"Session summary: {session.summary}")
  ```

  ```python With turn + session policies theme={null}
  from rail_score_sdk import RailScoreClient, RAILSession, Policy, Rule

  client = RailScoreClient(api_key="YOUR_RAIL_API_KEY")

  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 llm(user_message)
      outcome = session.record(content=response, mode="basic")

      if outcome.turn_blocked:
          send_fallback()
      elif outcome.session_flagged:
          notify_reviewer(session.session_id)
      else:
          send(response)
  ```
</CodeGroup>

## Sitzungs Eigenschaften

| Eigenschaft             | Typ     | Beschreibung                                   |
| ----------------------- | ------- | ---------------------------------------------- |
| `session.session_id`    | `str`   | Eindeutiger Sitzungsbezeichner                 |
| `session.turn_count`    | `int`   | Anzahl der aufgezeichneten Runden              |
| `session.average_score` | `float` | Durchschnittlicher RAIL-Punkt über alle Runden |
| `session.min_score`     | `float` | Niedrigster Punkt in der Sitzung               |
| `session.summary`       | `dict`  | Aggregierte Statistiken pro Dimension          |
