Přeskočit na obsah
Codedock
SlužbyJak pracujemeReferenceInsightsKariéraKontakt
Zpět na všechny články
AI & Automatizace

·

7 min čtení

·

Napsal Tomáš Mikeš

Claude Batch API na překlady: 50 % levnější, ale je to fronta

V překladové pipeline pro The Clinic jsme ze synchronního Claude API přešli na Batch API. 50 % discount plus prompt caching = zhruba 80 % úspora. Háček je v orchestraci fronty — a v pár situacích, kdy je batch ta špatná volba.

AIClaudeBatch APIPřeklady

Pro The Clinic Praha — zubní kliniku s mezinárodní klientelou z Německa, Francie, Ruska i arabského světa — jsme stavěli překladovou pipeline. Web běží v šesti jazycích (čeština jako zdroj + pět překladů včetně RTL arabštiny). Každý článek, služba a ošetření je dlouhý text, typicky 2 až 5 tisíc tokenů. Editor upraví češtinu, pipeline musí doplnit pět překladů.

První iterace byla synchronní Claude API. Pět paralelních requestů, čekáš na všechny, uložíš. Fungovalo. Dvě bolesti se ale začaly ukazovat: cena a tlak na kontextové okno u článků s dlouhými FAQ sekcemi, které se blížily k limitům.

Co je Batch API

Anthropic má Messages Batches API. Pošleš batch až 10 000 requestů najednou jako JSONL payload, dostaneš batch_id, Anthropic zpracovává na pozadí (inzerované SLA 24 hodin, v praxi typicky desítky minut) a ty si po dokončení výsledky vyzvedneš.

Cena: 50 % discount na input i output tokeny. Háček: batch je async.

Ekonomika v reálu

Pro typický článek The Clinic (~4 000 tokenů vstupu, ~4 000 tokenů výstupu × 5 jazyků) vypadá matematika takto:

  • Sync: 5× (4 k input + 4 k output) za plnou cenu.
  • Batch: totéž s 50 % slevou → jednorázová 50 % úspora.

Skutečný trik je ale kombinace s prompt caching. Všech pět volání sdílí stejný zdrojový český text, liší se jen language instrukcí. Když zdroj cachuješ:

  • 1× cache write (1,25× cena input tokenů)
  • 4× cache read (0,1× cena input tokenů)
  • + 50 % batch discount na všem

Konkrétní dopad na 4k-tokenovém článku do pěti jazyků: z ~$0,32 za sync běh na ~$0,07 za batch + cache běh. Zhruba 80 % úspora proti naivnímu sync řešení. Při desítkách článků měsíčně to začíná být reálný provozní rozdíl.

Práce s frontou — daň za slevu

Sync je fire-and-forget. Batch vyžaduje pořádný orchestrator. Co jsme pro The Clinic museli postavit:

1. Persistentní stav jobu

Tabulka TranslationJob v DB: batchId, status (PENDING, IN_PROGRESS, COMPLETED, FAILED), articleId, submittedAt, completedAt. Bez toho nevíš, co je v letu, a restart služby ti rozbije celou běžící dávku.

2. Polling nebo webhook

Anthropic nabízí obojí. Pro The Clinic polujeme každých 60 s přes background job v .NET (IHostedService). Bezpečnostní timeout — job, který běží víc než 4 hodiny, zfailujeme a pošleme alert. Inzerovaných 24 hodin je nejhorší případ a při provozu se do něj dostaneš jen vzácně, ale pipeline ho musí unést.

3. Idempotence a kolize verzí

Když editor během zpracovávání batche klikne „přeložit znovu“ (typicky proto, že si všimnul překlepu ve zdroji), nový batch musí buď zrušit ten předchozí, nebo jeho výsledek zahodit. Jinak se ti v DB přepíšou nové překlady starými, které se stihly dokončit později. Pragmaticky: každý job nese sourceVersion zdroje, a když se při aplikaci výsledku zjistí, že už se posunul, výsledek se zahodí.

4. Partial failures uvnitř batche

Jeden z pěti requestů může selhat — rate limit, model error, divný input. Anthropic vrátí JSONL, kde každý řádek má vlastní status. Pipeline musí úspěšné aplikovat a neúspěšné zařadit na individuální retry — typicky už přes sync API, protože jedno volání už za další batch nestojí.

5. Status směrem k editorovi

Admin portál ukazuje u každého článku štítek „překlad running“, „překlad done“ nebo „překlad failed: <jazyk>“. Bez toho editor nerozumí, proč článek, který právě publikoval, ještě pár minut (nebo hodin) nevypadá v cizí jazykové mutaci.

Kdy batch není správná volba

  • Urgence. Editor vytvořil službu a chce ji teď hned publikovat ve všech jazycích. Sync, ne batch.
  • Malý objem. Pár requestů za den. Orchestrace fronty je overhead bez úspory. Sync.
  • Striktní SLA na latenci. Chat, real-time asistent, interaktivní autoring. Batch je nepoužitelný.

Hybrid, který nám vyšel

Pro The Clinic platí: editor vytvoří nebo výrazně upraví článek → batch job. Pokud někdo klikne „urgentně přeložit“ pro jeden jazyk (třeba potřebuje rychle německou verzi k tiskové zprávě), jde to přes sync API. 90 % provozu teče batchem, 10 % sync.

Tohle dělení bere 100 % úspory, kterou batch nabízí, a zároveň nechává pipeline reaktivní, když to musí být.

Co si z toho vzít

Batch API není skok dopředu ve funkcích — je to posun v ekonomice. Kdykoli máš workload tvaru „velký objem, není to urgentní“, je to první věc k uvážení. Překlady, bulk sumarizace, klasifikace starého obsahu, generování metadat pro tisíce položek — všechno to sedí.

Cena změny je v orchestraci: zhruba jeden až dva inženýrské dny na čistě postavený job layer, pak je to udržovatelné. Pro The Clinic se to vrátilo během prvního měsíce provozu.

Řešíš něco podobného?

Domluvme si 30min technický call. Bez obchodních procesů — přímá architekturní zpětná vazba.

Vybrat termín

Architektura, cloud a integrace pro komplexní systémy. Senior architekt na každém projektu.

Navigace

SlužbyJak pracujemeReferenceInsightsKariéraKontaktSrovnání s agenturou

Služby

VývojCloudDevOpsAI & DataKonzultaceŘízení

Kontakt

CodeDock s.r.o.

Zlenická 863/9, 104 00 Praha 22

Česká republika

info@codedock.com

IČO: 14292769

DIČ: CZ14292769


© 2026 Codedock

KontaktOchrana osobních údajů
Domluvit call