LM Warden

OpenAI SDK nas suas próprias GPUs.

Qualquer OpenAI SDK, ou qualquer coisa com uma configuração de URL base compatível com OpenAI.

Para onde vai uma solicitação do OpenAI SDK O OpenAI SDK envia as solicitações ao LM Warden com base_url apontando para o warden e api_key contendo uma chave do warden. O LM Warden verifica a chave, implementa o protocolo OpenAI Chat Completions, coloca a solicitação na fila pela prioridade da chave e a entrega ao roteador de réplicas, que mantém cada sessão na réplica que já tem o cache dela, uma cópia do modelo por 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
Para onde vai uma solicitação do OpenAI SDK O OpenAI SDK envia as solicitações ao LM Warden com base_url apontando para o warden e api_key contendo uma chave do warden. O LM Warden verifica a chave, implementa o protocolo OpenAI Chat Completions, coloca a solicitação na fila pela prioridade da chave e a entrega ao roteador de réplicas, que mantém cada sessão na réplica que já tem o cache dela, uma cópia do modelo por 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
Para onde vai uma solicitação do OpenAI SDK: as duas configurações que o Connect grava, o warden no meio e depois uma cópia do modelo por GPU.

Em texto: O OpenAI SDK envia as solicitações ao LM Warden com base_url apontando para o warden e api_key contendo uma chave do warden. O LM Warden verifica a chave, implementa o protocolo OpenAI Chat Completions, coloca a solicitação na fila pela prioridade da chave e a entrega ao roteador de réplicas, que mantém cada sessão na réplica que já tem o cache dela, uma cópia do modelo por GPU.

Protocolo
OpenAI Chat Completions
Suporte
Só modelos locais

Só modelos locais. Não há repasse para a OpenAI: uma solicitação para gpt-* recebe 404. Chat Completions e Completions são servidos; /v1/responses é uma tradução sem estado para Chat Completions (veja Codex CLI).

Configuração

No console, o Connect grava estes arquivos com o endereço do seu warden, a sua chave e o modelo que você escolheu. Aqui eles aparecem com espaços reservados.

Modelos locais

base_url é o /v1 deste warden e a chave do warden é a chave de 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."}]}'

Documentação oficial: https://github.com/openai/openai-python#readme (lida em 2026-10-04).