|
Dokumentace
Rezervovat demoPlatforma
PlatformaMCPCLIAPI
Workflows
NávodyChangelog

Vítejte

  • Přehled
  • Autentizace
  • Chyby a stavové kódy
  • Podpisy webhooků

Lokalizace

  • Přehled
  • Vytvořit úlohy
  • Uzamčení nepřekládaných klíčů
  • Sledování skupiny úloh
  • Získání jednoho jobu
  • Seznam úloh
  • Doručování webhooků
  • Průběh v reálném čase (WebSocket)

Pipeline

  • Přehled
  • AI úprava před lokalizací
  • Lidská kontrola
  • AI hodnocení (post-edit)
  • Úprava do přirozeného znění
  • Kontrola zpětného překladu
  • Nastavení pipeline
  • Sledujte běhy pipeline

Provisioning

  • Přehled
  • Vytvoření provisioning jobu
  • Typy zdrojů
  • Co AI extrahuje
  • Doručování webhooků
  • Průběh v reálném čase (WebSocket)

Synchronní

  • Localize
  • Rozpoznání

Správa engine

  • Návrhy engine

Průběh provisioningu v reálném čase

Vytvořili jste provisioning job a během milisekund dostali zpět ID jobu pjb_ a ID enginu eng_. Engine je už použitelný, ale stále se doplňuje: AI agent prochází vaše zdroje a zapisuje do něj hlas značky, položky glosáře a instrukce. Během toho chcete ukazovat, co se děje – řádek typu „Procházíme váš style guide… konfigurujeme engine… hotovo“, podobně jako v instalačním průvodci, místo spinneru, který nic neříká.

WebSocket vám dává přesně tenhle přehled. Připojte se k jobu a server pošle snapshot aktuálního stavu, pak událost provisioning.progress pokaždé, když workflow přejde do dalšího kroku. A protože server při připojení posílá aktuální stav a dokončený job hned poté uzavírá, můžete se připojit kdykoli, i po jeho dokončení – není tu žádné okno, které byste museli stihnout.

text
GET /jobs/provisioning/:jobId/ws

jobId je hodnota pjb_ z create call. S asynchronním provisioningem teprve začínáte? Začněte v Přehled, kde najdete základní mentální model.

Na této stránce

  • Typy zpráv
  • Snapshot při připojení
  • Události průběhu
  • Připojení po dokončení jobu
  • Jak to zapojit do UI
  • API klíč nechte na serveru

Typy zpráv#

Přes socket chodí dva typy zpráv. První dorazí jednou při připojení, druhý pak opakovaně podle toho, jak job postupuje.

TypKdyKlíčová pole
provisioning.snapshotPři prvním připojeníjobId, status, errorMessage
provisioning.progressPři spuštění nebo dokončení každého kroku workflowjobId, step, detail

Tohle je feed o živém stavu, ne o výsledcích: řekne vám, kde se job nachází a jestli selhal, ale ne které záznamy AI vytvořila. Souhrn všeho, co se provisionovalo – ID hlasu značky, glosáře a instrukcí – dorazí zvlášť, v completion webhooku nebo načtením jobu po jeho dokončení. Socket si nechte pro progress bar; pro payload použijte webhook.

Snapshot při připojení#

Jakmile se připojíte, server načte z databáze aktuální stav jobu a pošle ho. Není potřeba, aby předtím dorazila nějaká událost průběhu – snapshot funguje sám o sobě.

json
{
  "type": "provisioning.snapshot",
  "jobId": "pjb_A1b2C3d4E5f6G7h8",
  "status": "in_progress",
  "errorMessage": null
}
PolePopis
statusin_progress, completed nebo failed.
errorMessagePopis selhání, když je status failed, jinak null.

Snapshot je jediná zpráva, kterou máte zaručeně dostat. Pokud job stále běží, po ní přijdou události průběhu; pokud už job skončil, dostanete snapshot a nic víc (viz níže).

Události průběhu#

Jak workflow běží, server vysílá událost provisioning.progress pokaždé, když vstoupí do nového kroku. Každá událost pojmenuje step a nese čitelný detail pro člověka.

json
{
  "type": "provisioning.progress",
  "jobId": "pjb_A1b2C3d4E5f6G7h8",
  "step": "crawling",
  "detail": "Crawling source URLs..."
}
stepKdyPříklad detail
crawlingNačítají se zdrojové URL"Crawling source URLs..." nebo "Retrying crawl (attempt 2)..."
configuringAI agent analyzuje obsah a zapisuje konfiguraci enginu"AI agent analyzing content and configuring engine..." nebo "Retrying configuration (attempt 2)..."
completedJob úspěšně doběhl"Provisioning complete"
failedJob selhalChybová zpráva popisující důvod selhání

Retry není selhání

Kroky crawling a configuring se můžou objevit víckrát – dočasná chyba při načítání nebo analýze se zkusí znovu a retry se projeví jako událost průběhu s detail typu "Retrying crawl (attempt 2)...". To znamená, že se job zotavuje, ne že selhal. Za konečný považujte jen krok failed; jeho detail nese skutečný důvod.

Počítejte i s kroky, které neznáte

Nové hodnoty step mohou časem přibývat. Přepínejte podle kroků, které znáte, completed a failed berte jako dva kroky, které uzavírají socket, a všechno ostatní ignorujte jako informativní – dopředně kompatibilní klient bude fungovat i bez aktualizace.

Připojení po dokončení jobu#

Zásadní otázka u každého progress socketu zní: co se stane, když se připojíte pozdě – po dokončení crawlu, po tom, co se panel znovu připojí po deployi, nebo když job už mezitím selhal? Tady je odpověď zabudovaná přímo do toho, jak funguje snapshot.

Pokud job už dosáhl stavu completed nebo failed, server pošle snapshot s tímto finálním status (a errorMessage, pokud selhal) a spojení okamžitě uzavře. Nejsou tu žádné události průběhu k přehrání, protože finální stav je právě snapshot. Job, který je stále v běhu, nechá spojení otevřené a streamuje průběh; dokončený job vám předá výsledek a zavěsí.

V obou případech vám první zpráva řekne, na čem jste. Připojte se kdykoli, i po dokončení – nemůžete se připojit ani příliš brzy, ani příliš pozdě.

Jak to zapojit do UI#

Otevřete socket nad ID jobu pjb_, ze snapshotu nastavte počáteční stav, pak stav aktualizujte při každé události průběhu a spojení zavřete, jakmile job dosáhne completed nebo failed:

javascript
import WebSocket from "ws";

const jobId = "pjb_A1b2C3d4E5f6G7h8";
const ws = new WebSocket(
  `wss://api.lingo.dev/jobs/provisioning/${jobId}/ws`,
  { headers: { "X-API-Key": process.env.LINGO_API_KEY } }
);

ws.on("message", (raw) => {
  const event = JSON.parse(raw);

  switch (event.type) {
    case "provisioning.snapshot":
      console.log(`status: ${event.status}`);
      break;

    case "provisioning.progress":
      console.log(`${event.step}: ${event.detail}`);
      if (event.step === "completed" || event.step === "failed") {
        ws.close();
      }
      break;
  }
});

Spusťte to na jobu, který projde crawlingem bez problémů a krok za krokem vypisuje, jak konfigurace probíhá:

text
status: in_progress
crawling: Crawling source URLs...
configuring: AI agent analyzing content and configuring engine...
completed: Provisioning complete

To je celý průběh na obrazovce: job se otevře ve stavu in_progress, sledujete crawling a pak konfiguraci a completed vám řekne, že engine je plně provisionovaný. Stejná smyčka funguje správně i při pozdním připojení – dokončený job pošle jeden snapshot se svým finálním status a socket se zavře, takže kód, který zpracovává živý běh, zvládne i replay bez speciální podmínky.

API klíč nechte na serveru#

Socket se autentizuje vaším API klíčem – stejným organization-scoped key, který používají REST endpointy. Tento klíč dává přístup ke každému enginu ve vaší organizaci, takže prohlížeč je pro otevření spojení to poslední správné místo: kdokoli, kdo si zobrazí zdrojový kód, by ho uviděl.

Připojujte se z backendu, ne z prohlížeče

Otevřete WebSocket ze serveru, kde už klíč máte, a pak předejte průběh do prohlížeče přes vlastní kanál – WebSocket nebo stream server-sent events, který máte pod kontrolou. Frontend ukazuje, jak se engine konfiguruje; klíč nikdy neopustí vaši infrastrukturu.

Je to stejný model jako u webhooku: spojení, které komunikuje s Lingo.dev, běží na serveru a k uživateli dorazí jen to, co se vaše aplikace rozhodne poslat dál.

Kam to zapadá#

WebSocket je živý pohled – je navázaný na jeden job a zavře se, jakmile je hotovo. Pokud chcete trvalý server-to-server záznam výsledku, který přežije zavřený panel nebo deploy, spárujte ho s completion webhookem: socket pohání progress bar, zatímco je job na obrazovce, webhook doručí souhrn všeho, co AI vytvořila, ve chvíli, kdy je hotovo. Obojí zapojíte ze stejného create call.

Doručování webhooků
Completion a failure payloady s úplným souhrnem hlasů značky, položek glosáře a instrukcí – včetně ověření podpisu.
Vytvoření provisioning jobu
POST /jobs/provisioning – odtud pochází ID jobu pjb_, ke kterému se tady připojujete.
Překládejte s novým enginem
Jakmile job doběhne, pošlete obsah do všech jazyků přes asynchronní Localization API.

Byla tato stránka užitečná?

Max PrilutskiyMax Prilutskiy·Aktualizováno před 12 dny·5 min čtení