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 rutează către modelele Claude actuale ale Anthropic (familiile Opus, Fable, Sonnet și Haiku), cu failover automat între deployment-uri aprobate când unul nu este disponibil. Lanțul din spatele numelui se poate schimba. Header-ul de răspuns x-codai-routed-to îți spune care model a răspuns la fiecare cerere, iar distribuția live a rutării de pe codai.ro arată unde a mers efectiv traficul din producție. Modelele altor furnizori nu fac parte din această rută; le apelezi după nume (vezi nume upstream directe). 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.
`codai` (automat) sau un model fixat
codai | Nume fixat (codai-fast, codai-max, claude-sonnet-5-5, …) | |
|---|---|---|
| Cine răspunde | Astăzi, un lanț de modele Claude actuale; câștigă primul deployment sănătos | Mereu acel model (sau failover-ul listat pentru el) |
| Când un deployment pică | Trece la următoarea intrare din lanț | Trece doar în lanțul acelui alias; numele directe nu au failover |
| Cost | Variază cu modelul care a răspuns | Previzibil per model |
| Cum verifici | x-codai-routed-to, plus x-codai-cost-micro-usd când se știe | Aceleași header-e |
Folosești codai, dacă nu ai nevoie de același model la fiecare apel. Numele upstream directe cer un plan care le permite.
`codai` (automat) sau `codai-1` (beta, fixat)
codai | codai-1-beta | |
|---|---|---|
| Ce este | Numele implicit; astăzi un lanț de modele Claude actuale ale Anthropic, cu failover | Modelul propriu codai, în beta: o versiune DeepSeek-V4.1-Flash (licență MIT) ajustată prin RL, servită de codai |
| Cum îl obții | Orice cheie, orice client | Opt-in: ceri codai-1-beta după nume. Nu apare în GET /v1/models și nu face niciodată parte din lanțul codai |
| Input și unelte | Text, imagini, apeluri de unelte | Doar text; apelurile de unelte sunt oprite în beta |
| Stabilitate | Nume stabil; modelele din spate se pot schimba | Beta: checkpoint-ul din spatele numelui se poate schimba fără notificare, iar disponibilitatea poate fi limitată |
| Cum verifici | x-codai-routed-to | Același header |
Folosești codai pentru munca reală. Alegi codai-1-beta doar ca să încerci modelul propriu codai.
Alias-uri publice
Apar în GET /v1/models pentru orice cheie.
| Alias | Servește | Îl folosești pentru |
|---|---|---|
codai | Astăzi, modelele Claude actuale ale Anthropic, cu failover automat (modelul care a răspuns apare în x-codai-routed-to) | 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 5.5 (failover: Haiku 4.5) | Muncă utilitară: titluri, detecție de intenție, mesaje de commit. Fără sarcină când e trimis cu X-Codai-No-Task: 1. |
codai-explorer | Claude Sonnet 5.5 (failover: 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 unelte. |
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.
codai Max (previzualizare)
codai-max-n este un mod opțional pentru sarcini grele, distinct de pinul codai-max. E oprit până când operatorul gateway-ului îl pornește; cât timp e oprit, numele e respins ca orice model necunoscut (HTTP 400). Nu apare niciodată în /v1/models și poate fi adresat de orice cheie care poate adresa codai.
Pentru fiecare cerere, gateway-ul:
- generează în paralel mai multe răspunsuri candidate (implicit 4, maximum 8);
- elimină candidații defecți și, când codul poate rula în sandbox, îi preferă pe cei al căror cod chiar rulează;
- cere unui singur judecător să compare deodată toți candidații rămași și să aleagă unul, cu un scor de încredere;
- când judecătorul e nesigur, întreabă o singură dată un model frontier și servește acel răspuns. Un răspuns verificat prin execuție nu este escaladat niciodată.
| Header de răspuns | Semnificație |
|---|---|
x-codai-max-n | Numărul de candidați ceruți |
x-codai-max-escalated | 1 când a răspuns reîntrebarea frontier |
x-codai-max-method | judge, exec, deterministic, escalated sau single |
x-codai-routed-to | Modelul care a produs răspunsul servit |
x-codai-cost-micro-usd | Suma tuturor apelurilor: candidați, judecător și escaladare |
Cost și latență
O cerere costă aproximativ cât N + 1 până la N + 2 apeluri simple, iar fiecare apel e contorizat pe cheia ta. Răspunsurile sunt bufferizate: cu stream: true nu se trimite nimic până la final, apoi răspunsul ales sosește ca o singură secvență în flux. Primul byte vine după cel mai lent candidat plus judecător. Folosește-l pentru probleme grele, de sine stătătoare, nu pentru bucle de agent.
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-speech | POST /v1/audio/speech | Google Chirp 3 HD — 30 de voci native în română (Aoede implicit), rapid |
codai-speech-expressive | POST /v1/audio/speech | Gemini 2.5 Flash TTS — română nativă, acceptă instructions |
codai-tts-ro | POST /v1/audio/speech/stream | Voci neurale Azure (ro-RO Alina / Emil) transmise în streaming cu viseme și momentele cuvintelor |
codai-music | POST /v1/audio/music | Lyria 3 Clip — 30 s cu voce și versuri |
codai-music-pro | POST /v1/audio/music | Lyria 3 Pro — piesă întreagă de până la 184 s cu voce, versuri, bpm |
codai-music-legacy | POST /v1/audio/music | Lyria 2 — WAV instrumental de 30 s |
codai-sfx | GET /v1/studio/sfx | Biblioteca de efecte sonore Studio — sunete CC0 selectate + completare CC0 din Freesound, gratuit (detalii) |
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; ?language=ro rulează pe Deepgram Nova-3 când e configurat |
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-5-5, gpt-6.1-sol, gemini-3.8-flash, grok-4.6 și așa mai departe — dacă planul tău îl permite. 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", "claude-opus-5", "claude-sonnet-5-5", "claude-sonnet-5", "claude-haiku-5-5", "claude-haiku-4-5"],
"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.
Catalogul public
GET /v1/public/models nu cere cheie. Întoarce lista curatoriată a modelelor pe care codai le numește public, filtrată după ce rutează gateway-ul chiar acum: un model scos din rutare dispare din răspuns în câteva minute. Include și modelele open-weight proprii codai, care rulează pe dispozitivul tău și nu trec niciodată prin gateway. CORS este deschis (*), iar răspunsurile pot fi păstrate în cache o oră, așa că site-urile îl pot citi direct.
curl https://ai.codai.ro/v1/public/models{
"object": "list",
"updated": "2026-10-11T12:00:00.000Z",
"live": true,
"aliases": [
{ "id": "codai", "description": "The default. Routes each request across Anthropic's current Claude models by task tier: …", "routesTo": ["claude-opus-5-5", "claude-fable-5-1", "claude-sonnet-5-5", "claude-haiku-5-5"] },
{ "id": "codai-fast", "description": "…", "routesTo": ["claude-haiku-5-5", "claude-haiku-4-5"] }
],
"data": [
{ "id": "claude-opus-5-5", "name": "Claude Opus 5.5", "provider": "Anthropic", "family": "Claude Opus", "via": ["Google Vertex AI", "Microsoft Azure AI Foundry"], "tier": "large", "kind": "chat", "released": "2026-09-22", "own": false, "highlight": true, "aliases": ["codai"] },
{ "id": "gpt-6.1-sol", "name": "GPT-6.1 Sol", "provider": "OpenAI", "family": "GPT-6", "via": ["Microsoft Azure AI Foundry"], "tier": "large", "kind": "chat", "own": false, "highlight": true, "aliases": [] },
{ "id": "codai-nano", "name": "codai-nano", "provider": "codai", "family": "codai-nano", "via": ["on-device"], "tier": "small", "kind": "chat", "own": true, "highlight": true, "aliases": [], "base": "google/gemma-4-E2B-it", "note": "Runs on your Android phone in the codai app (LiteRT-LM). …" }
]
}Textele description și note sunt în engleză.
| Câmp | Semnificație |
|---|---|
live | false când gateway-ul nu și-a putut citi tabela de rutare; data este atunci lista curatoriată completă, iar răspunsul se păstrează în cache doar 5 minute. |
aliases[].routesTo | Lanțul live al fiecărui alias public, fără duplicatele de lane. |
data[].aliases | Alias-urile publice care pot ruta către model. O listă goală înseamnă că îl apelezi după nume, pe planurile care îl permit. |
data[].tier | small, medium, large sau frontier. |
data[].preview | true cât timp furnizorul încă marchează modelul ca preview. |
data[].own, base, note | Modelele proprii codai: modelul de bază open-weight și unde rulează. |
Dacă cheia ta poate apela un model decide GET /v1/models, nu această listă.
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 unealtă, nu pornind o sarcină. Pe aceste ture de continuare cu unelte 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. |
Ultima actualizare: