SoxAIDocs
Quickstart

Python Quickstart

Use the OpenAI Python SDK with SoxAI in minutes

Python Quickstart

Installation

pip install openai

Basic Chat Completion

from openai import OpenAI

client = OpenAI(
    api_key="sox-your-token-here",
    base_url="https://api.soxai.io/v1",
)

response = client.chat.completions.create(
    model="gpt-5.4-mini",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Explain quantum computing in one paragraph."},
    ],
)

print(response.choices[0].message.content)

Streaming Response

from openai import OpenAI

client = OpenAI(
    api_key="sox-your-token-here",
    base_url="https://api.soxai.io/v1",
)

stream = client.chat.completions.create(
    model="gpt-5.4-mini",
    messages=[
        {"role": "user", "content": "Write a short story about a robot learning to paint."},
    ],
    stream=True,
)

for chunk in stream:
    delta = chunk.choices[0].delta
    if delta.content:
        print(delta.content, end="", flush=True)

print()  # newline at end

Embeddings

response = client.embeddings.create(
    model="text-embedding-3-small",
    input="The quick brown fox jumps over the lazy dog",
)

embedding = response.data[0].embedding
print(f"Embedding dimensions: {len(embedding)}")

Using Async

import asyncio
from openai import AsyncOpenAI

client = AsyncOpenAI(
    api_key="sox-your-token-here",
    base_url="https://api.soxai.io/v1",
)

async def main():
    response = await client.chat.completions.create(
        model="claude-sonnet-4-6",
        messages=[{"role": "user", "content": "Hello!"}],
    )
    print(response.choices[0].message.content)

asyncio.run(main())

Environment Variable

Store your token in an environment variable for security:

export SOXAI_API_KEY="sox-your-token-here"
import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ["SOXAI_API_KEY"],
    base_url="https://api.soxai.io/v1",
)

Session Stickiness

To route multiple requests in a conversation to the same upstream provider (useful for context continuity), pass a session ID:

response = client.chat.completions.create(
    model="gpt-5.4-mini",
    messages=[...],
    extra_headers={"X-Session-ID": "user-session-abc123"},
)