LM Warden

OpenAI SDK sur vos propres GPU.

N’importe quel OpenAI SDK, ou tout outil permettant de définir une URL de base compatible OpenAI.

Où va une requête envoyée par l’OpenAI SDK L’OpenAI SDK envoie ses requêtes à LM Warden : base_url pointe vers le warden et api_key contient une clé du warden. LM Warden vérifie la clé, interprète la requête au format OpenAI Chat Completions, la place en file d’attente selon la priorité de la clé, puis la confie au routeur de réplicas, qui maintient chaque session sur le réplica détenant déjà son cache (une copie du modèle par GPU). OpenAI SDK base_url the warden, at /v1 api_key vw_…, the warden key POST /v1/chat/completions LM Warden checks the key: one per app speaks OpenAI Chat Completions scheduler, key priority usage, latency and live stats per key Replica router a session goes back to the replica that holds its cache one model copy per GPU your GPUs: vLLM or llama.cpp replica 0, GPU 0 replica 1, GPU 1 replica 2, GPU 2 a conversation stays on its replica
Où va une requête envoyée par l’OpenAI SDK L’OpenAI SDK envoie ses requêtes à LM Warden : base_url pointe vers le warden et api_key contient une clé du warden. LM Warden vérifie la clé, interprète la requête au format OpenAI Chat Completions, la place en file d’attente selon la priorité de la clé, puis la confie au routeur de réplicas, qui maintient chaque session sur le réplica détenant déjà son cache (une copie du modèle par GPU). OpenAI SDK base_url the warden, at /v1 api_key vw_…, the warden key POST /v1/chat/completions LM Warden checks the key: one per app speaks OpenAI Chat Completions scheduler, key priority usage, latency, live stats per key Replica router a session goes back to the replica that holds its cache replica 0 GPU 0 replica 1 GPU 1 replica 2 GPU 2 your GPUs: vLLM or llama.cpp a conversation stays on its replica
Où va une requête envoyée par l’OpenAI SDK : les deux paramètres que génère Connect, le warden au centre, puis une copie du modèle par GPU.

En clair : L’OpenAI SDK envoie ses requêtes à LM Warden : base_url pointe vers le warden et api_key contient une clé du warden. LM Warden vérifie la clé, interprète la requête au format OpenAI Chat Completions, la place en file d’attente selon la priorité de la clé, puis la confie au routeur de réplicas, qui maintient chaque session sur le réplica détenant déjà son cache (une copie du modèle par GPU).

Protocole
OpenAI Chat Completions
Prise en charge
Modèles locaux uniquement

Modèles locaux uniquement. Il n’y a pas de relais vers OpenAI : une requête pour gpt-* reçoit une erreur 404. Chat Completions et Completions sont servis ; /v1/responses est une traduction sans état vers Chat Completions (voir Codex CLI).

Configuration

Dans la console, Connect génère ces fichiers avec l’adresse de votre warden, votre clé et le modèle choisi. Ils sont présentés ici avec des valeurs fictives.

Modèles locaux

base_url est le /v1 de ce warden et la clé warden sert de clé API.

Python
from openai import OpenAI

client = OpenAI(base_url="https://your-warden/v1", api_key="vw_YOUR_KEY")
response = client.chat.completions.create(
    model="your-served-model-name",
    messages=[{"role": "user", "content": "Reply with the single word OK."}],
)
print(response.choices[0].message.content)
TypeScript
import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://your-warden/v1", apiKey: "vw_YOUR_KEY" });
const response = await client.chat.completions.create({
  model: "your-served-model-name",
  messages: [{ role: "user", content: "Reply with the single word OK." }],
});
console.log(response.choices[0].message.content);
curl
curl https://your-warden/v1/chat/completions \
  -H "Authorization: Bearer vw_YOUR_KEY" \
  -H "content-type: application/json" \
  -d '{"model": "your-served-model-name", "stream": false, "messages": [{"role": "user", "content": "Reply with the single word OK."}]}'

Documentation officielle : https://github.com/openai/openai-python#readme (consultée le 2026-10-04).