Do kraja 2025. sve vezano uz chat pokretali smo izravno putem OpenAI. Jedan račun, jedan ključ, jedan račun. U siječnju 2026. migrirali smo na multi-modelni agregator. Evo što se zapravo dogodilo.

Što smo imali

  • OpenAI enterprise razina — $~$8k/mjesečno na svim površinama
  • Sva chat dovršavanja na gpt-4o ili gpt-4o-mini
  • Jedan model za ugradnju, jedan model za slike (DALL-E 3)
  • Izravna SDK integracija u četiri usluge

Što je potaknulo prelazak

  • Claude Opus 4.6 postizao je primjetno bolje rezultate na našim evaluacijama agentnog kodiranja
  • Gemini 3 Pro postao je jasan pobjednik za analizu dokumenata s dugim kontekstom
  • Željeli smo testirati open-source modele (DeepSeek, Llama 4) bez postavljanja infrastrukture za inferenciju
  • Pokretanje pet pružatelja značilo je pet ugovora, pet ciklusa naplate, pet nadzornih ploča za ograničenje brzine

Migracija

Prešli smo na OpenAI-kompatibilni agregator (ovaj, zapravo — koristimo vlastiti proizvod u produkciji). Cijela promjena bila je zamjena baseURL i apiKey u SDK-u. Razlika u kodu bila je 8 linija u četiri usluge.

// Prije
const openai = new OpenAI({ apiKey: process.env.OPENAI_KEY });

// Poslije
const openai = new OpenAI({
  apiKey: process.env.AIGEN_KEY,
  baseURL: 'https://aimarcus.eu/aigenerate/api/v1',
});

Što se promijenilo na računu

  • Chat (GPT-4o → mješoviti GPT-4o + Claude Sonnet ovisno o zadatku): -22%
  • Agentno kodiranje (prešlo na Claude Opus): +8%, ali evaluacije su poboljšane za 15 bodova
  • Analiza s dugim kontekstom (prešlo na Gemini 3 Pro): -40%
  • Generiranje slika (prešlo s DALL-E 3 na Nano Banana): -65%

Neto učinak na mjesečni račun: -28%. Bolji izbor modela na svakoj površini + niže cijene po tokenu od agregatora uzvodno s kojima ne moramo izravno pregovarati.

Tri stvari koje su pošle po zlu

  • Razlike u formatu strujanja SSE. Claude struji malo drugačije od OpenAI. Naša logika međuspremnika na strani klijenta prekinula se na oko 10 minuta dok nismo dodali kompatibilni shim.
  • Brojanje tokena. Različiti modeli tokeniziraju drugačije. Naša interna metrika "iskorišteni tokeni po razgovoru" trebala je biti rekalibrirana po modelu.
  • Keširanje s ključem na temelju imena modela. Naša predmemorija upita koristila je gpt-4o kao ključ. Kada smo počeli usmjeravati neke zahtjeve na Claude, dobili smo zastarjele pogotke predmemorije. Pouka: uvijek uključite model u ključeve predmemorije.

Bismo li to ponovili?

Da — iz tri razloga koja nisu povezana s troškovima.

  • Opcionalnost. Kada je OpenAI imao prekid od 40 minuta 3. travnja, naša chat površina nastavila je raditi jer je promet automatski preusmjeren na Anthropic i Gemini. To samo po sebi vrijedi migracije.
  • Paritet modela je gotov. U 2026. ne postoji "najbolji model". Postoji najbolji model za svaki zadatak. Agregacija je način na koji zapravo koristite tu činjenicu.
  • Jedan račun. Financije su to željele više nego inženjering. Jedan račun, jedan odnos s dobavljačem, jedan ugovor za 12 pružatelja.

Ako imate bilo kakav značajan volumen na jednom pružatelju, prelazak se isplati već prvog mjeseca.