LM Warden

OpenAI SDK на ваших собственных GPU.

Любой OpenAI SDK или любой инструмент, в котором можно задать базовый URL OpenAI-совместимого API.

Куда идет запрос от OpenAI SDK OpenAI SDK отправляет запросы в LM Warden: в base_url указан адрес сервера LM Warden, а в api_key — ключ LM Warden. LM Warden проверяет ключ, принимает запросы в формате OpenAI Chat Completions, ставит их в очередь по приоритету ключа и передает маршрутизатору реплик. Маршрутизатор закрепляет каждую сессию за репликой, на которой уже лежит ее кэш; на каждом 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
Куда идет запрос от OpenAI SDK OpenAI SDK отправляет запросы в LM Warden: в base_url указан адрес сервера LM Warden, а в api_key — ключ LM Warden. LM Warden проверяет ключ, принимает запросы в формате OpenAI Chat Completions, ставит их в очередь по приоритету ключа и передает маршрутизатору реплик. Маршрутизатор закрепляет каждую сессию за репликой, на которой уже лежит ее кэш; на каждом 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
Путь запроса от OpenAI SDK: две настройки, которые создает Connect, затем сервер LM Warden и по копии модели на каждом GPU.

Иначе говоря: OpenAI SDK отправляет запросы в LM Warden: в base_url указан адрес сервера LM Warden, а в api_key — ключ LM Warden. LM Warden проверяет ключ, принимает запросы в формате OpenAI Chat Completions, ставит их в очередь по приоритету ключа и передает маршрутизатору реплик. Маршрутизатор закрепляет каждую сессию за репликой, на которой уже лежит ее кэш; на каждом GPU работает своя копия модели.

Протокол
OpenAI Chat Completions
Поддержка
Только локально

Только локальные модели. Сквозной передачи в OpenAI нет: на запрос к gpt-* возвращается 404. Поддерживаются Chat Completions и Completions; /v1/responses преобразуется в Chat Completions без сохранения состояния (см. Codex CLI).

Настройка

В консоли раздел Connect создает эти файлы с адресом вашего сервера LM Warden, вашим ключом и выбранной моделью. Здесь они показаны с заполнителями.

Локальные модели

В base_url указывается путь /v1 этого сервера LM Warden, а ключ LM Warden служит ключом 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."}]}'

Официальная документация: https://github.com/openai/openai-python#readme (дата обращения: 2026-10-04).