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

> RAILSession - multi-turn conversation में RAIL scores track करें।

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

`RAILSession` conversation के हर turn को track करता है, aggregate statistics compute करता है, और session-level policies enforce कर सकता है जो overall quality drift होने पर fire होती हैं — सिर्फ़ individual turns पर नहीं।

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

## Session properties

| Property                | Type    | Description                     |
| ----------------------- | ------- | ------------------------------- |
| `session.session_id`    | `str`   | Unique session identifier       |
| `session.turn_count`    | `int`   | Record किए गए turns की संख्या   |
| `session.average_score` | `float` | सभी turns का average RAIL score |
| `session.min_score`     | `float` | Session में सबसे कम turn score  |
| `session.summary`       | `dict`  | Per-dimension aggregate stats   |
