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

# OpenAI Integration

> RAILOpenAI -- drop-in wrapper that scores every OpenAI response.

## Installation

<CodeGroup>
  ```bash Python theme={null}
  pip install "rail-score-sdk[openai]"
  ```

  ```bash JavaScript theme={null}
  npm install @responsible-ai-labs/rail-score openai
  ```
</CodeGroup>

## Usage

<CodeGroup>
  ```python Python theme={null}
  import asyncio
  from rail_score_sdk.integrations import RAILOpenAI

  async def main():
      client = RAILOpenAI(
          openai_api_key="sk-...",
          rail_api_key="YOUR_RAIL_API_KEY",
          rail_threshold=7.0,
          rail_policy="regenerate",
          rail_mode="basic",
      )

      response = await client.chat_completion(
          model="gpt-4o",
          messages=[{"role": "user", "content": "Explain quantum computing."}],
          temperature=0.7,
      )

      print(f"Content: {response.content}")
      print(f"RAIL Score: {response.rail_score}/10")
      print(f"Threshold met: {response.threshold_met}")
      print(f"Was regenerated: {response.was_regenerated}")

  asyncio.run(main())
  ```

  ```typescript JavaScript theme={null}
  import { RAILOpenAI } from "@responsible-ai-labs/rail-score";

  const client = new RAILOpenAI({
    openaiApiKey: "sk-...",
    railApiKey: "YOUR_RAIL_API_KEY",
    railThreshold: 7.0,
    railPolicy: "regenerate",
  });

  const response = await client.chatCompletion({
    model: "gpt-4o",
    messages: [{ role: "user", content: "Explain quantum computing." }],
  });

  console.log(`RAIL Score: ${response.railScore}/10`);
  ```
</CodeGroup>

<Tip>
  Pass `rail_skip=True` to bypass RAIL evaluation for a single call.
</Tip>
