LUX infrastructure · v1

AI API

Gateway pro modely OpenRouter. Nabízí datově úsporné /v1/generate i OpenAI kompatibilní /v1/chat/completions s nativním function callingem. Podporuje reasoning, vision, SSE stream a bezpečné opakování krátkých výpadků. Běžný chat preferuje cenu; agentní requesty nechávají pořadí providerů na routingu zaměřeném na spolehlivost nástrojů.

endpoint online
liteGPT‑OSS 20B
max. výstup 32 768 tokenů
flashGLM 5.3 Flash · vision
max. výstup 943 717 tokenů
proDeepSeek V4 Pro
max. výstup 384 000 tokenů
ultraKimi K3 · vision
max. výstup 943 718 tokenů

Autentizace

Každý chráněný request posílá klíč v HTTP hlavičce. Klíč nikdy nedávej do URL, logu ani veřejného JavaScriptu.

Authorization: Bearer lux-TVUJ_KLIC

Jednoduchý request

curl https://api.lux-ai.cz/v1/generate \
  -H 'Authorization: Bearer lux-TVUJ_KLIC' \
  -H 'Content-Type: application/json' \
  -d '{"m":"flash","p":"Ahoj"}'

{"v":1,"r":"Dobrý den, jak Vám mohu pomoci?"}

Reasoning a streaming

r nastavuje množství reasoning, i určuje, zda se reasoning pošle zařízení, a x zapíná stream. Model může přemýšlet i s i:false; tím se šetří přenesená data, nikoli výstupní tokeny.

curl -N https://api.lux-ai.cz/v1/generate \
  -H 'Authorization: Bearer lux-TVUJ_KLIC' \
  -H 'Content-Type: application/json' \
  -d '{"m":"pro","p":"Vyřeš úlohu","r":"high","i":true,"x":true}'

data:{"q":"Průběžné reasoning…"}

data:{"r":"Průběžná odpověď…"}

data:{"d":1}

Stream slučuje malé tokeny přibližně po 60 ms nebo 512 znacích. Snižuje tak počet packetů a režii SSE, ale stále zůstává interaktivní.

Nativní function calling

Pro agenty používej OpenAI kompatibilní endpoint POST /v1/chat/completions. Definice nástrojů se předává v poli tools; model vrací strukturované message.tool_calls. Po vykonání funkce přidej celou assistant zprávu a výsledek s rolí tool a stejným tool_call_id.

curl https://api.lux-ai.cz/v1/chat/completions \
  -H 'Authorization: Bearer lux-TVUJ_KLIC' \
  -H 'Content-Type: application/json' \
  -d '{
    "model":"flash",
    "messages":[{"role":"user","content":"Jaké je počasí v Praze?"}],
    "tools":[{"type":"function","function":{
      "name":"get_weather",
      "description":"Vrátí aktuální počasí",
      "parameters":{"type":"object","properties":{"city":{"type":"string"}},"required":["city"]}
    }}],
    "tool_choice":"auto"
  }'
{
  "choices":[{"finish_reason":"tool_calls","message":{
    "role":"assistant","content":null,
    "tool_calls":[{"id":"call_…","type":"function","function":{
      "name":"get_weather","arguments":"{\"city\":\"Praha\"}"
    }}]
  }}]
}

Při stream:true používají požadavky s nástroji ve výchozím stavu transakční stream. Gateway nejprve získá, případně zopakuje a ověří celé volání a až potom pošle standardní SSE chunk s kompletními argumenty a data: [DONE]. Klient má argumenty přesto skládat podle index, aby zůstal kompatibilní s OpenAI protokolem. Nástroj spusť až po finish_reason: "tool_calls".

Nástroj vykonává tvoje aplikace, ne model ani gateway. Gateway vynucuje kompatibilního providera, kontroluje název funkce, JSON i JSON Schema argumentů a nikdy nepustí částečný nebo neplatný tool call k agentovi. Během delšího čekání posílá SSE heartbeat komentáře.

Kompaktní endpoint přijímá stejné tools, tool_choice a parallel_tool_calls. Místo p/c může dostat standardní messages, což umožní pokračovat po výsledku nástroje. V JSON odpovědi vrací tool_calls; v kompaktním streamu je posílá jako strukturované delty. Flash přijme parallel_tool_calls kvůli kompatibilitě klientů, ale gateway tento jediný přepínač neposílá OpenRouteru, protože jej momentálně neinzeruje žádný Flash provider. Function calling přesto zůstává nativní a není převáděný do textového protokolu.

Vision přes Flash a Ultra

Pole a obsahuje až 8 obrázků nebo videí pro modely Flash a Ultra. Krátký typ i znamená obrázek a v video. Veřejné soubory posílej přes HTTPS URL — request je výrazně menší než s base64. Pro soukromý lokální soubor lze použít podporovanou base64 data URL.

curl https://api.lux-ai.cz/v1/generate \
  -H 'Authorization: Bearer lux-TVUJ_KLIC' \
  -H 'Content-Type: application/json' \
  -d '{"m":"flash","p":"Co je na obrázku?","a":[["i","https://example.com/photo.webp"]]}'

Podporované obrázky: PNG, JPEG, WebP a GIF. Video: MP4, MPEG, MOV a WebM. Base64 média mají společný limit 6 MiB; celý request 8 MiB. Modely Lite a Pro multimédia odmítnou.

Pole requestu

PoleVýznamVýchozí
mlite, flash, pro, ultraflash
puživatelský prompt; povinný, pokud není použito messages—
aFlash/Ultra vision: [["i","HTTPS/data URL"],["v","HTTPS/data URL"]][]
svolitelný system prompt; bez něj se použije bezpečný LuxAI promptLuxAI
chistorie: [["u","Ahoj"],["a","Čau"]][]
messagesstandardní historie včetně assistant.tool_calls a role tool; alternativa k p/c/s/a—
toolsOpenAI definice funkcí s JSON Schema parametry, nejvýše 64[]
tool_choicenone, auto, required nebo konkrétní funkceauto
parallel_tool_callskompatibilní hint; u Flash se neposílá upstreamu, aby nevyřadil všechny providerydle modelu
stream_reliabilitytransactional před odesláním celý výsledek ověří; live posílá tokeny okamžitělive (text i tool_calls se streamují); transactional na vyžádání
nmaximum výstupních tokenů; Lite 32 768, Flash 943 717, Pro 384 000, Ultra 943 718dle modelu
ttemperature, 0–2dle modelu
rreasoning effort; u Flash se false/none převede na povinné minimum lowFlash: low, ostatní: high
izahrnout reasoning jako qfalse
xkompaktní SSE streamfalse

Stejné limity platí pro max_tokens a max_completion_tokens v Chat Completions. Přesné hodnoty vrací také pátá položka každého modelu z GET /v1/models. Vstup a výstup se musejí společně vejít do kontextového okna modelu; dlouhé odpovědi používej se streamem.

Odpovědi a chyby

Kompaktní JSON vrací finální text v r, volitelné reasoning v q a nativní volání funkcí v tool_calls. SSE používá stejné názvy po částech; {"d":1} znamená konec. Chat Completions vrací standardní OpenAI JSON/SSE. Chyby kompaktního endpointu jsou krátké, například {"e":"auth"}, {"e":"rate"} nebo {"e":"upstream"}.

Prázdnou či poškozenou odpověď, neplatné volání nástroje, timeout, 408, 409, 425, 429 a dočasné 5xx gateway zpracuje až v pěti celkových pokusech a respektuje Retry-After. U nástrojů ověřuje i návaznost assistant/tool zpráv a při opakování se snaží vynechat providera, který selhal. Flash přepne nečinného providera po 120 sekundách; Lite po 180 a Pro/Ultra po 300 sekundách. Navazování spojení a opakované pokusy mají společný limit 10 minut. Úspěšná odpověď obsahuje diagnostickou hlavičku X-Lux-Upstream-Attempts.

Transakční stream je odolnější, ale první modelová data odešle až po dokončení a validaci odpovědi. Režim live má nejnižší latenci; pokud se upstream přeruší až po odeslání části odpovědi, stream skončí strukturovanou chybou a klient nesmí částečný výsledek považovat za dokončený.

Limity se uplatňují současně globálně na API klíč a na zdrojovou IP. Odpověď 429 obsahuje Retry-After: 60.

OpenAPI 3.1 specifikace · Health check