Každá aktivní fáze pipeline zanechá u úlohy jeden záznam, takže si můžete přečíst, co skutečně proběhlo, místo abyste tomu jen věřili.
Zapnuli jste několik fází pipeline – třeba pre-edit pro vyčištění zdroje a back-translation pro zachycení posunu významu – a úloha se vrátila jako completed_with_warnings. Která fáze vypadla? Ujal se jí vůbec člověk v rámci kontroly, nebo vypršel časový limit? Kolik stály další fáze? Pipeline, která pro každý jazyk provádí několik AI i lidských kroků, je přesně ten typ věci, ze které se snadno stane černá skříňka: na výstupu něco dostanete a jen doufáte, že všechny mezikroky odvedly svou práci.
Tady ale nemusíte věřit naslepo. Každá aktivní fáze zapíše jeden záznam do pole steps[] úlohy – která fáze, s jakým stavem, za jakou cenu a kdy začala a skončila. Čtete, co která fáze udělala; nespoléháte se jen na to, že proběhla. To je smysl celé této stránky.
Jste v pipeline noví? Začněte na stránce Přehled pipeline.
Na této stránce
- Kde záznamy najdete
- Pole steps
- Mapování stepId na fázi
- Stav kroku: completed, failed, skipped
- Jak se ze selhání kroku stane varování úlohy
Kde záznamy najdete#
Pole steps[] je součástí lokalizační úlohy. Nenačítáte ho zvlášť – dostanete ho pokaždé, když čtete úlohu:
GET /jobs/localization/:jobIdOvěřte se pomocí svého API klíče v hlavičce X-API-Key. Kompletní endpoint, hodnoty stavu úlohy i payload outputData jsou popsané na stránce o jedné úloze; tahle stránka se věnuje jednomu poli v této odpovědi – stopě po jednotlivých fázích – a tomu, co vám říká.
Pravidlo je tedy jednoduché: každá úloha, kterou čtete, už obsahuje vlastní auditní log. Úloha bez aktivní pipeline zobrazí jediný záznam, protože základní lokalizace běží vždy. Zapnete dvě nepovinné fáze a dostanete tři záznamy. Pole roste spolu s pipeline, jeden záznam na fázi, v pořadí, v jakém fáze proběhly.
Pole steps#
Každá položka v steps[] je záznam jedné fáze. Tohle jsou pole, která při auditu běhu čtete – která fáze proběhla, s jakým výsledkem, za jakou cenu a kdy:
"steps": [
{
"stepId": "preEdit",
"type": "action",
"status": "completed",
"errorMessage": null,
"costUsd": 0.0012,
"externalRefType": null,
"externalRefId": null,
"externalRefUrl": null,
"createdAt": "2026-03-16T10:30:01.000Z",
"startedAt": "2026-03-16T10:30:01.000Z",
"completedAt": "2026-03-16T10:30:02.000Z"
},
{
"stepId": "localize",
"type": "action",
"status": "completed",
"errorMessage": null,
"costUsd": 0.0184,
"externalRefType": null,
"externalRefId": null,
"externalRefUrl": null,
"createdAt": "2026-03-16T10:30:02.000Z",
"startedAt": "2026-03-16T10:30:02.000Z",
"completedAt": "2026-03-16T10:30:05.000Z"
}
]| Pole | Popis |
|---|---|
stepId | Ke které fázi pipeline tento záznam patří. Viz mapovací tabulka níže. |
type | Typ kroku. action pro automatizovanou fázi. |
status | completed, failed nebo skipped pro tuto fázi – nezávisle na stavu úlohy. |
errorMessage | Proč tato fáze selhala. null, pokud status není failed. |
costUsd | Kolik tato fáze stála v USD – JSON číslo nebo null. |
externalRefType, externalRefId, externalRefUrl | Odkaz na externí záznam u fází, které předávají práci třetí straně – fáze lidské kontroly. null u plně automatizovaných fází. |
createdAt, startedAt, completedAt | Kdy byla fáze vytvořena, převzata a dokončena. |
Každý záznam obsahuje také pole outputData – obsah, který tato fáze vytvořila, ve stejném tvaru jako outputData úlohy. Tento payload je překlad, ne auditní stopa, takže je zdokumentovaný na stránce o jedné úloze spolu s polem outputData na úrovni úlohy; výše uvedená pole čtete tehdy, když chcete zjistit, co pipeline udělala.
Tyto záznamy vám dávají dvě věci, které jedno pole outputData dát nemůže. Zaprvé, náklady jsou rozepsané po jednotlivých fázích, ne jen souhrnně za celou úlohu – takže když zapnete back-translation a účet se změní, přesně vidíte, která fáze za tím stojí. Zadruhé, časování je po fázích – záznam humanEdit, jehož startedAt a completedAt dělí hodiny, vám řekne, že čekání způsobil člověk, ne engine.
Čtěte steps podle stepId, ne podle pozice
Záznamy se objevují v pořadí provedení, ale neindexujte pole podle pozice – které fáze proběhnou závisí na tom, které jste aktivovali, takže pozice není napříč úlohami stabilní. Fázi hledejte podle jejího stepId (steps.find(s => s.stepId === "humanEdit")). Množina hodnot stepId je pevná; to, které z nich se u konkrétní úlohy objeví, závisí jen na tom, co jste zapnuli.
Mapování stepId na fázi#
Každé stepId označuje jednu fázi pipeline. Tohle je přehled, který mapuje hodnotu v záznamu na fázi, kterou reprezentuje, a na stránku, kde je popsané, co tato fáze dělá:
stepId | Fáze |
|---|---|
preEdit | AI úprava před lokalizací |
localize | Základní lokalizace |
humanEdit | Lidská kontrola po lokalizaci |
postEdit | AI hodnocení po lokalizaci |
rephrase | Přeformulování do přirozeného znění |
backTranslation | Kontrola zpětným překladem |
localize je jediné stepId, které se objeví u každé úlohy, ať už pipeline používá, nebo ne – je to základní krok překladu a běží vždy. Ostatních pět se objeví jen tehdy, když jste danou fázi aktivovali v engine nebo v požadavku.
Stav kroku: completed, failed, skipped#
Každý krok má vlastní status, nastavený nezávisle na úloze i na všech ostatních krocích. Jsou tři hodnoty:
Krok status | Význam |
|---|---|
completed | Fáze proběhla a vytvořila svůj výstup. |
failed | Fáze proběhla a skončila chybou. errorMessage říká proč. |
skipped | Fáze se tentokrát nedokončila, i když byla aktivní. |
completed a failed se čtou přesně tak, jak čekáte. U skipped stojí za to se zastavit, protože to není totéž co „neaktivní“. Fáze, kterou jste nikdy nezapnuli, nevytvoří vůbec žádný záznam. Záznam skipped znamená, že fáze byla aktivní, ale pipeline ji z důvodu, který sama definuje, přeskočila – nejjasnější případ je lidská kontrola: pokud se okno pro kontrolu uzavře bez reakce člověka, tato fáze je označena jako skipped a AI překlad pokračuje dál jako finální. Záznam tam ale zůstává, takže přeskočení je viditelné, ne tiché.
Stav kroku není stav úlohy
Krok failed nemusí vždy znamenat úlohu failed. Většina nepovinných fází není kritická: když některá z nich selže, její záznam se čte jako failed, engine přenese poslední dobrý výstup dál a úloha se i tak dokončí s plnohodnotným outputData. Výsledný stav úlohy – completed_with_warnings – je vysvětlený na stránce o jedné úloze. Stav kroku vám říká, co se stalo s jednou fází; stav úlohy říká, zda jste dostali překlad.
Jak se ze selhání kroku stane varování úlohy#
Když selže nekritická fáze, projeví se to současně na dvou místech, a jde o dva pohledy na stejnou událost. Záznam v steps[] se čte jako failed s errorMessage – to je detailní pohled. Stejné selhání se zároveň objeví jako jedna položka v poli warnings na nejvyšší úrovni úlohy – to je souhrnný pohled, podle kterého větví váš kód pro zpracování stavu:
{
"id": "ljb_A1b2C3d4E5f6G7h8",
"status": "completed_with_warnings",
"outputData": { "title": "Hallo" },
"warnings": [
{ "step": "backTranslation", "message": "Back-translation check did not complete" }
],
"steps": [
{ "stepId": "localize", "type": "action", "status": "completed", "errorMessage": null, "costUsd": 0.0184, "completedAt": "2026-03-16T10:30:05.000Z" },
{ "stepId": "backTranslation", "type": "action", "status": "failed", "errorMessage": "Back-translation check did not complete", "costUsd": 0.0031, "completedAt": "2026-03-16T10:30:11.000Z" }
]
}Každá položka warnings má tvar { step, message }, kde step je stejné stepId, jaké najdete v neúspěšném záznamu. Obě pole tak jdou ruku v ruce: warnings je stručný seznam toho, co se pokazilo, a steps[] je místo, kam jdete pro detail ke každé položce. Čtěte warnings, když chcete rozhodnout, zda jazyk označit pro lidskou kontrolu; odpovídající záznam v steps[] čtěte, když chcete znát errorMessage, cenu a časování, které za tím stojí.
Tohle je mechanismus za completed_with_warnings: základní překlad uspěl, takže máte použitelný outputData, ale alespoň jedna nekritická fáze zanechala záznam failed a odpovídající varování. Výstup berte jako připravený k nasazení a varování jako signál kvality, který stojí za to ukázat. Jen status úlohy s hodnotou failed znamená, že není k dispozici žádný překlad – a toto rozhodnutí spolu s úplnou tabulkou stavů úlohy najdete na stránce o jedné úloze.
Souhrnné zdraví fází je samostatná vrstva
steps[] odpovídá na otázku „co pipeline udělala u této úlohy“. Když vás zajímá trend napříč mnoha úlohami – jak často selhává pre-edit, jak často back-translation opraví překlad – je to agregovaná otázka a odpověď najdete na stránce Reports, ne v odpovědi pro jednu úlohu. Tady záznamy po úlohách, tam souhrny.
