Use the OpenAI Python SDK with Radium
Radium exposes an OpenAI-compatible Chat Completions API. If your application already uses the OpenAI Python SDK, you only need to change the API key, base URL, and model name.
This guide creates a small program that sends one request and prints the response.
Before you start
You need:
- Python 3.10 or newer
- A Radium API key
- A terminal or PowerShell window
1. Create a project and install the SDK
macOS or Linux:
mkdir radium-openai-python
cd radium-openai-python
python3 -m venv .venv
source .venv/bin/activate
python -m pip install openai
Windows PowerShell:
mkdir radium-openai-python
cd radium-openai-python
py -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install openai
2. Set your Radium credentials
macOS or Linux:
export RADIUM_API_KEY="your-radium-api-key"
export RADIUM_MODEL="hal-1.0"
Windows PowerShell:
$env:RADIUM_API_KEY = "your-radium-api-key"
$env:RADIUM_MODEL = "hal-1.0"
Keep the key on the server. Do not paste it into main.py, commit it, or expose it in browser code.
3. Create main.py
import os
from openai import OpenAI
api_key = os.getenv("RADIUM_API_KEY")
if not api_key:
raise SystemExit("Set RADIUM_API_KEY before running this program.")
model = os.getenv("RADIUM_MODEL", "hal-1.0")
client = OpenAI(
api_key=api_key,
base_url="https://api.radium.cloud/v1",
timeout=90,
max_retries=0,
)
response = client.chat.completions.create(
model=model,
messages=[
{"role": "system", "content": "Follow the user's instruction exactly."},
{"role": "user", "content": "Reply with exactly: Radium connected."},
],
max_tokens=512,
temperature=0,
)
content = response.choices[0].message.content
if not content or not content.strip():
raise RuntimeError("Radium returned no visible text.")
print(f"RADIUM_RESPONSE: {content.strip()}")
The base URL must include /v1. Do not append /chat/completions; the SDK adds that path.
4. Run it
python main.py
Expected output:
RADIUM_RESPONSE: Radium connected.
Choose a model
Set RADIUM_MODEL to any validated model before running the program:
export RADIUM_MODEL="hal-1.0"
# or: clarke-1.0
# or: tycho-1.0
python main.py
Migrate an existing OpenAI client
Before:
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
After:
client = OpenAI(
api_key=os.environ["RADIUM_API_KEY"],
base_url="https://api.radium.cloud/v1",
)
Keep your existing messages and response parsing. Replace the old model ID with hal-1.0, clarke-1.0, or tycho-1.0.
Troubleshooting
401or403: verify thatRADIUM_API_KEYis set in the same terminal running Python.404: verify the base URL and use one of the model IDs listed above.- Empty output: keep
max_tokensat 512 or higher so model reasoning does not consume the visible response allowance. ModuleNotFoundError: activate.venvand rerun the installation command.
Validation
Version note: these instructions were verified with Python 3.12.7 and openai==2.54.0 on August 20, 2026. You do not need that exact package version. Text generation and a complete function-calling loop passed with hal-1.0, clarke-1.0, and tycho-1.0.
Reference: OpenAI Python library.
Next
- API quickstart, for calling Radium directly
- Tool calling, for the
tool_useandtool_resultcontract