Anthropic SDK на ваших собственных GPU.
Ваш ключ API Anthropic остается в api_key, а ключ LM Warden передается в отдельном заголовке.
Иначе говоря: Anthropic SDK отправляет запросы в LM Warden: в base_url указан адрес сервера LM Warden, а в X-LMWarden-Key — ключ LM Warden. LM Warden проверяет ключ, принимает запросы в формате Anthropic Messages, ставит их в очередь по приоритету ключа и передает маршрутизатору реплик. Маршрутизатор закрепляет каждую сессию за репликой, на которой уже лежит ее кэш; на каждом GPU работает своя копия модели. Отдельный путь ведет к api.anthropic.com: туда правила направляют запросы к остальным моделям Claude, с вашим собственным ключом API.
- Протокол
- Anthropic Messages
- Поддержка
- Полная поддержка
Модели Claude, указанные в ваших правилах, работают здесь; все остальные модели и пути /v1 уходят в Anthropic с вашими собственными учетными данными. Для режима «Только локально» учетная запись Anthropic не нужна: ключ LM Warden указывается как api_key, а в качестве модели — имя, под которым она обслуживается.
Требования
- Маршрутизация должна быть включена, и хотя бы одно правило должно быть активно.
- Ключу должно быть разрешено пересылать запросы в Anthropic (May relay).
Настройка
В консоли раздел Connect создает эти файлы с адресом вашего сервера LM Warden, вашим ключом и выбранной моделью. Здесь они показаны с заполнителями.
Router: ваш ключ Anthropic сохраняется
base_url указывает на этот сервер LM Warden; ваш ключ API Anthropic остается в api_key, а ключ LM Warden передается в заголовках по умолчанию.
import anthropic
# api_key is your own Anthropic key (ANTHROPIC_API_KEY), used for pass-through.
client = anthropic.Anthropic(
base_url="https://your-warden",
default_headers={"X-LMWarden-Key": "vw_YOUR_KEY"},
)
message = client.messages.create(
model="claude-haiku-4-5", # a model your rules serve here; others go to Anthropic
max_tokens=256,
messages=[{"role": "user", "content": "Reply with the single word OK."}],
)
print(message.content[0].text)import Anthropic from "@anthropic-ai/sdk";
// apiKey is your own Anthropic key (ANTHROPIC_API_KEY), used for pass-through.
const client = new Anthropic({
baseURL: "https://your-warden",
defaultHeaders: { "X-LMWarden-Key": "vw_YOUR_KEY" },
});
const message = await client.messages.create({
model: "claude-haiku-4-5", // a model your rules serve here; others go to Anthropic
max_tokens: 256,
messages: [{ role: "user", content: "Reply with the single word OK." }],
});
console.log(message.content);curl https://your-warden/v1/messages \
-H "X-LMWarden-Key: vw_YOUR_KEY" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model": "claude-haiku-4-5", "max_tokens": 256, "messages": [{"role": "user", "content": "Reply with the single word OK."}]}'Только локально
Ключ LM Warden указывается как api_key, а в качестве модели — имя, под которым она обслуживается.
import anthropic
client = anthropic.Anthropic(base_url="https://your-warden", api_key="vw_YOUR_KEY")
message = client.messages.create(
model="your-served-model-name",
max_tokens=256,
messages=[{"role": "user", "content": "Reply with the single word OK."}],
)
print(message.content[0].text)import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({ baseURL: "https://your-warden", apiKey: "vw_YOUR_KEY" });
const message = await client.messages.create({
model: "your-served-model-name",
max_tokens: 256,
messages: [{ role: "user", content: "Reply with the single word OK." }],
});
console.log(message.content);curl https://your-warden/v1/messages \
-H "x-api-key: vw_YOUR_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model": "your-served-model-name", "max_tokens": 256, "messages": [{"role": "user", "content": "Reply with the single word OK."}]}'Официальная документация: https://platform.claude.com/docs/en/api/sdks/python (дата обращения: 2026-10-04).