Vol. 01 · № 4
Мировое издание · сетевое
LUMINA®

№ 4 · Документация

Быстрый старт

LUMINA — OpenAI-совместимый API к Claude 5 и Kimi K3. Если у вас есть код под OpenAI, вы уже почти готовы. Поменяйте baseURL и ключ — дальше всё работает. Сейчас доступен бесплатный режим; launch-цены опубликованы отдельно и требуют подключённого биллинга.

Аутентификация

Все запросы требуют заголовок Authorization: Bearer <ваш ключ>. Ключ выдаётся в кабинете и начинается с lum-.

Безопасность. Ключ показывается один раз при создании. Храните его в переменных окружения, не в коде.

Доступные модели

МодельidКонтекстТариф
Claude Opus 5claude-opus-51Mpro
Claude Sonnet 5claude-sonnet-51Mpro
Claude Fable 5claude-fable-51Mpro
Claude Haiku 4.5claude-haiku-4-5200Kfree
Kimi K3kimi-k3256Kfree

Python

example.py
from openai import OpenAI

client = OpenAI(
    base_url="https://YOUR_LUMINA_HOST/v1",
    api_key="lum-ВАШ_КЛЮЧ",
)

resp = client.chat.completions.create(
    model="claude-opus-5",
    messages=[{"role": "user", "content": "Привет!"}],
)
print(resp.choices[0].message.content)

Node.js

example.mjs
import OpenAI from "openai";

const client = new OpenAI({
  baseURL: "https://YOUR_LUMINA_HOST/v1",
  apiKey: "lum-ВАШ_КЛЮЧ",
});

const resp = await client.chat.completions.create({
  model: "claude-sonnet-5",
  messages: [{ role: "user", content: "Привет!" }],
});
console.log(resp.choices[0].message.content);

cURL

terminal
curl https://YOUR_LUMINA_HOST/v1/chat/completions \
  -H "Authorization: Bearer lum-ВАШ_КЛЮЧ" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "claude-haiku-4-5",
    "messages": [{"role":"user","content":"Привет!"}]
  }'

Стриминг

Передайте "stream": true — ответ придёт как Server-Sent Events. Пример ниже использует openai ≥ 1.40 (метод .stream()).

stream.py
with client.chat.completions.stream(
    model="kimi-k3",
    messages=[{"role": "user", "content": "Расскажи анекдот"}],
) as stream:
    for event in stream:
        if event.type == "content.delta":
            print(event.delta, end="")

Коды ошибок

КодТипЗначение
200успех
401unauthorizedневерный или истёкший ключ
429rate_limit_errorслишком много запросов (60/мин)
429daily_limit_errorдневной лимит бесплатного тарифа исчерпан
403model_access_errorмодель недоступна на вашем тарифе
400invalid_request_errorошибка в теле запроса
503upstream_unavailableвременно недоступно, повторите позже
500internal_errorвнутренняя ошибка
Совместимость. LUMINA совместим с OpenAI SDK, LangChain, opencode, curl и любым HTTP-клиентом. Формат запроса и ответа — как у OpenAI.