codai docs
Gateway

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: 0 este ignorat pentru alias-urile codai* (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 (max e la un pas pe buton). Vezi effort și thinking.

`codai` (automat) sau un model fixat

codaiNume fixat (codai-fast, codai-max, claude-sonnet-5-5, …)
Cine răspundeAstăzi, un lanț de modele Claude actuale; câștigă primul deployment sănătosMereu 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
CostVariază cu modelul care a răspunsPrevizibil per model
Cum verificix-codai-routed-to, plus x-codai-cost-micro-usd când se știeAceleaș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)

codaicodai-1-beta
Ce esteNumele implicit; astăzi un lanț de modele Claude actuale ale Anthropic, cu failoverModelul propriu codai, în beta: o versiune DeepSeek-V4.1-Flash (licență MIT) ajustată prin RL, servită de codai
Cum îl obțiiOrice cheie, orice clientOpt-in: ceri codai-1-beta după nume. Nu apare în GET /v1/models și nu face niciodată parte din lanțul codai
Input și unelteText, imagini, apeluri de unelteDoar text; apelurile de unelte sunt oprite în beta
StabilitateNume stabil; modelele din spate se pot schimbaBeta: checkpoint-ul din spatele numelui se poate schimba fără notificare, iar disponibilitatea poate fi limitată
Cum verificix-codai-routed-toAcelaș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.

AliasServeșteÎl folosești pentru
codaiAstăzi, modelele Claude actuale ale Anthropic, cu failover automat (modelul care a răspuns apare în x-codai-routed-to)Orice. Implicitul.
codai-labsAceeaș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.

AliasServeșteNote
codai-fastClaude 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-explorerClaude Sonnet 5.5 (failover: Sonnet 5)Citire și căutare în codebase — multe ture scurte în care latența bate deliberarea.
codai-agentLa fel ca codaiImplementare cu multe unelte.
codai-deepLa fel ca codaiRaționament profund.
codai-maxClaude Fable 5.1 (failover: Opus 5.5)Pin de escaladare: raționament greu, orizont lung.
codai-visionLa fel ca codaiInput de imagini activat.
codai-smartClaude Sonnet 5Tier echilibrat.
codai-opusClaude Opus 5.5Fixare explicită pe clasa Opus.
codai-flashGemini 2.5 FlashMultimodal ieftin.
codai-latestLa fel ca codaiNume 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:

  1. generează în paralel mai multe răspunsuri candidate (implicit 4, maximum 8);
  2. elimină candidații defecți și, când codul poate rula în sandbox, îi preferă pe cei al căror cod chiar rulează;
  3. cere unui singur judecător să compare deodată toți candidații rămași și să aleagă unul, cu un scor de încredere;
  4. 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ăspunsSemnificație
x-codai-max-nNumărul de candidați ceruți
x-codai-max-escalated1 când a răspuns reîntrebarea frontier
x-codai-max-methodjudge, exec, deterministic, escalated sau single
x-codai-routed-toModelul care a produs răspunsul servit
x-codai-cost-micro-usdSuma 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

AliasSuprafațăServește
codai-embedPOST /v1/embeddingsvoyage-code-3
codai-transcribePOST /v1/audio/transcriptionsWhisper
codai-ttsPOST /v1/audio/speechVoce TTS neutră (alloy implicit)
codai-tts-expressivePOST /v1/audio/speechgpt-4o-mini-tts — acceptă instructions
codai-speechPOST /v1/audio/speechGoogle Chirp 3 HD — 30 de voci native în română (Aoede implicit), rapid
codai-speech-expressivePOST /v1/audio/speechGemini 2.5 Flash TTS — română nativă, acceptă instructions
codai-tts-roPOST /v1/audio/speech/streamVoci neurale Azure (ro-RO Alina / Emil) transmise în streaming cu viseme și momentele cuvintelor
codai-musicPOST /v1/audio/musicLyria 3 Clip — 30 s cu voce și versuri
codai-music-proPOST /v1/audio/musicLyria 3 Pro — piesă întreagă de până la 184 s cu voce, versuri, bpm
codai-music-legacyPOST /v1/audio/musicLyria 2 — WAV instrumental de 30 s
codai-sfxGET /v1/studio/sfxBiblioteca de efecte sonore Studio — sunete CC0 selectate + completare CC0 din Freesound, gratuit (detalii)
codai-realtimeWSS /v1/realtimegpt-realtime-2.1 (protocol OpenAI Realtime)
codai-transcribe-liveWSS /v1/realtimeDoar STT în streaming, fără răspuns de model; ?language=ro rulează pe Deepgram Nova-3 când e configurat
codai-voiceWSS /v1/realtimeGemini 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âmpSemnificație
livefalse 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[].routesToLanțul live al fiecărui alias public, fără duplicatele de lane.
data[].aliasesAlias-urile publice care pot ruta către model. O listă goală înseamnă că îl apelezi după nume, pe planurile care îl permit.
data[].tiersmall, medium, large sau frontier.
data[].previewtrue cât timp furnizorul încă marchează modelul ca preview.
data[].own, base, noteModelele 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:

TierBuget de thinkingCând
minimalniciunulCăutări, formatare, clasificare.
low4 096 tokeniEditări mici.
medium8 192 tokeniImplicitul. Cod și scris de zi cu zi.
high16 384 tokeniBug-uri grele, întrebări de design.
max32 768 tokeniDemonstraț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

HeaderSemnificație
x-codai-effortTier-ul de effort pe care l-a rezolvat gateway-ul.
x-codai-effort-appliedtrue când tier-ul a schimbat apelul upstream; false când modelul nu acceptă un parametru de effort.
x-codai-effort-continuation-dampened1 când s-a aplicat limitarea pe continuare.
x-codai-routed-toModelul upstream concret.

Ultima actualizare:

Pe această pagină