Modele
La ce se rezolvă `codai`, celelalte alias-uri pe care le poți adresa și cum funcționează effort și thinking.
Adresezi gateway-ul prin alias, nu prin numele vendorului upstream. Un alias este o identitate stabilă pe care gateway-ul o rezolvă la un model concret în momentul cererii, așa că codul tău nu se schimbă niciodată când se schimbă upstream-ul.
codai — singurul nume de reținut
model: "codai" este identitatea principală. Astăzi servește Claude Opus 5.5, cu Claude Fable 5.1 ca lane de escaladare/failover (apoi Opus 5). Face failover între deployment-uri aprobate și, doar când toate lane-urile Opus 5.5 sunt căzute, lateral către Fable — x-codai-routed-to îți spune care model a răspuns la fiecare cerere. Fixează codai-max (sau codai-fable) când vrei Fable 5.1 primul.
codai este și alias-ul cu cea mai multă protecție încorporată:
- Prompt caching este mereu pornit. Opt-out-ul
X-Codai-Cache: 0este ignorat pentru alias-urilecodai*(este respectat pe numele upstream directe). Citirile din cache costă aproximativ a zecea parte din input-ul proaspăt. - Fiecare cerere este contorizată în micro-USD pe cheia ta, inclusiv sub-apelurile pe care gateway-ul le face în numele tău.
- Effort este un buton pe care îl controlezi. API-ul brut pornește implicit pe
medium; configurația VS Code livreazăhigh(maxe la un pas pe buton). Vezi effort și thinking.
Alias-uri publice
Apar în GET /v1/models pentru orice cheie.
| Alias | Servește | Îl folosești pentru |
|---|---|---|
codai | Claude Opus 5.5 (failover: Claude Fable 5.1) | Orice. Implicitul. |
codai-labs | Aceeași rutare ca codai astăzi, plus funcții de cercetare de frontieră pe măsură ce apar (răspunsuri de cod verificate prin execuție, best-of-N ordonat prin execuție, modele open-weight noi) | Să încerci ce urmează. Comportamentul se poate schimba fără notificare — fixează codai pentru stabilitate. |
Alias-uri de workload
Ascunse din listarea /v1/models, dar rezolvabile de orice cheie care poate adresa codai. Există ca integrările IDE să poată fixa un rol pe un model fără să inventeze nume proprii.
| Alias | Servește | Note |
|---|---|---|
codai-fast | Claude Haiku 4.5 | Muncă utilitară: titluri, detecție de intenție, mesaje de commit. Fără task când e trimis cu X-Codai-No-Task: 1. |
codai-explorer | Claude Sonnet 5 | Citire și căutare în codebase — multe ture scurte în care latența bate deliberarea. |
codai-agent | La fel ca codai | Implementare cu multe tool-uri. |
codai-deep | La fel ca codai | Raționament profund. |
codai-max | Claude Fable 5.1 (failover: Opus 5.5) | Pin de escaladare: raționament greu, orizont lung. |
codai-vision | La fel ca codai | Input de imagini activat. |
codai-smart | Claude Sonnet 5 | Tier echilibrat. |
codai-opus | Claude Opus 5.5 | Fixare explicită pe clasa Opus. |
codai-flash | Gemini 2.5 Flash | Multimodal ieftin. |
codai-latest | La fel ca codai | Nume vechi păstrat pentru configurații existente. |
codai-agent, codai-deep și codai-vision au astăzi același chain ca codai; codai-max e cel care pornește cu Fable 5.1. Butonul de effort acoperă ce distingeau acestea înainte, motiv pentru care picker-ul din VS Code publică acum doar codai, codai-fast și codai-explorer.
Alias-uri cu scop special
| Alias | Suprafață | Servește |
|---|---|---|
codai-embed | POST /v1/embeddings | voyage-code-3 |
codai-transcribe | POST /v1/audio/transcriptions | Whisper |
codai-tts | POST /v1/audio/speech | Voce TTS neutră (alloy implicit) |
codai-tts-expressive | POST /v1/audio/speech | gpt-4o-mini-tts — acceptă instructions |
codai-realtime | WSS /v1/realtime | gpt-realtime-2.1 (protocol OpenAI Realtime) |
codai-transcribe-live | WSS /v1/realtime | Doar STT în streaming, fără răspuns de model |
codai-voice | WSS /v1/realtime | Gemini Live audio nativ (protocol Gemini Live) |
Detalii și exemple pe pagina embeddings, audio și realtime.
Nume upstream directe
Poți ocoli alias-urile și numi un model concret — claude-sonnet-4-6, gpt-5, gemini-2.5-pro și așa mai departe. GET /v1/models returnează exact ce poate adresa cheia ta, alias-uri și modele concrete la fel:
curl https://ai.codai.ro/v1/models -H "Authorization: Bearer $CODAI_API_KEY"{
"object": "list",
"data": [
{
"id": "codai",
"object": "model",
"created": 0,
"owned_by": "codai",
"codai": {
"kind": "alias",
"type": "chat",
"routesTo": ["claude-opus-5-5", "claude-fable-5-1"],
"capabilities": { "tools": true, "vision": true, "streaming": true, "maxInputTokens": 1000000, "maxOutputTokens": 128000 }
}
}
]
}Obiectul codai este o extensie non-standard; clienții OpenAI-compatibili îl ignoră, IDE-urile îl citesc pentru a-și dimensiona indicatorii de context. owned_by este codai pentru alias-uri și codai-upstream pentru modele concrete.
Cum funcționează rezolvarea
Fiecare alias poartă un lanț de intrări { provider, upstreamModel }. La fiecare cerere gateway-ul parcurge lanțul, sare adaptoarele marcate momentan ca nesănătoase și trimite către primul sănătos. Lanțul este dată, reîncărcată din registru la fiecare minut — adăugarea sau schimbarea unui upstream nu modifică niciun cod de client. Allowlist-ul cheii tale (dacă tier-ul setează unul) se aplică modelului rezolvat, nu alias-ului, așa că un tier care permite codai permite și codai-fast.
Effort și thinking
Adâncimea raționamentului este un buton, nu un model. O setezi per cerere în oricare dintre două moduri echivalente:
curl https://ai.codai.ro/v1/chat/completions \
-H "Authorization: Bearer $CODAI_API_KEY" \
-H "Content-Type: application/json" \
-H "X-Codai-Effort: high" \
-d '{ "model": "codai", "messages": [{ "role": "user", "content": "Demonstrează că √2 este irațional." }] }'Header-ul câștigă când sunt prezente ambele. Când nu e setat niciunul, gateway-ul folosește medium. Tier-urile, de la cel mai ieftin la cel mai scump:
| Tier | Buget de thinking | Când |
|---|---|---|
minimal | niciunul | Căutări, formatare, clasificare. |
low | 4 096 tokeni | Editări mici. |
medium | 8 192 tokeni | Implicitul. Cod și scris de zi cu zi. |
high | 16 384 tokeni | Bug-uri grele, întrebări de design. |
max | 32 768 tokeni | Demonstrații, planuri lungi în mai mulți pași. max este o extensie codai peste vocabularul OpenAI low/medium/high; Responses API mapează xhigh la el. |
Poți activa și extended thinking direct: X-Codai-Thinking: 1 îl pornește, X-Codai-Thinking-Budget: <tokeni> setează bugetul (implicit 16 384).
Atenuarea pe continuări
Într-o buclă de agent, majoritatea turelor sunt modelul consumând un rezultat de tool, nu pornind un task. Pe aceste ture de continuare cu tool gateway-ul limitează orice buget de thinking injectat la 4 096 tokeni, ca o buclă de 30 de pași să nu plătească factura max de 30 de ori. Turele proaspete de utilizator păstrează bugetul complet.
Dacă ai nevoie de bugetul complet la fiecare pas — o demonstrație lungă purtată peste apeluri de tool, de exemplu — trimiți X-Codai-Thinking-Pin: 1. Header-ul de răspuns x-codai-effort-continuation-dampened: 1 îți spune când s-a aplicat limitarea.
Ce îți spune răspunsul
| Header | Semnificație |
|---|---|
x-codai-effort | Tier-ul de effort pe care l-a rezolvat gateway-ul. |
x-codai-effort-applied | true când tier-ul a schimbat apelul upstream; false când modelul nu acceptă un parametru de effort. |
x-codai-effort-continuation-dampened | 1 când s-a aplicat limitarea pe continuare. |
x-codai-routed-to | Modelul upstream concret. |