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ů.
max. výstup 32 768 tokenů
max. výstup 943 717 tokenů
max. výstup 384 000 tokenů
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
| Pole | Význam | Výchozí |
|---|---|---|
m | lite, flash, pro, ultra | flash |
p | uživatelský prompt; povinný, pokud není použito messages | — |
a | Flash/Ultra vision: [["i","HTTPS/data URL"],["v","HTTPS/data URL"]] | [] |
s | volitelný system prompt; bez něj se použije bezpečný LuxAI prompt | LuxAI |
c | historie: [["u","Ahoj"],["a","Čau"]] | [] |
messages | standardní historie včetně assistant.tool_calls a role tool; alternativa k p/c/s/a | — |
tools | OpenAI definice funkcí s JSON Schema parametry, nejvýše 64 | [] |
tool_choice | none, auto, required nebo konkrétní funkce | auto |
parallel_tool_calls | kompatibilní hint; u Flash se neposílá upstreamu, aby nevyřadil všechny providery | dle modelu |
stream_reliability | transactional 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í |
n | maximum výstupních tokenů; Lite 32 768, Flash 943 717, Pro 384 000, Ultra 943 718 | dle modelu |
t | temperature, 0–2 | dle modelu |
r | reasoning effort; u Flash se false/none převede na povinné minimum low | Flash: low, ostatní: high |
i | zahrnout reasoning jako q | false |
x | kompaktní SSE stream | false |
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.