Smaidošs kokvilnas tēls no oriģinālā Cotton logotipa, bez fona un uzraksta
Atpakaļ uz zāli

Cotton

Translation workflow

No ģenerētiem tulkojumiem — pārskatāmi rezultāti.

Tulkošanas darbplūsma spēļu dialogiem.

2026.05.06 — 2026.05.26

Darba projekts · tulkojumu apstrāde, spriedums un pārskatīšanas ceļš

  • Tīmekļa lietotneImplementēts · izstrāde

Cotton vocabulary

Lens
Refinement Loop
Translation
Quality Estimation
Workflow
Job Control
Human Review
  1. prompt layers
  2. glossary
  3. generation
  4. revision
  1. judge
  2. hard gate
  3. score
  1. intake
  2. checkpoint
  3. spend control
  4. stale sweep
  1. approval
  2. correction
  3. audit trail

Prompt Layers: SYSTEM_PROMPT_L0 · buildTranslateUserMessage · L1 CONTRACT · L3 SPEAKER · L6 SOURCE · L7 INSTRUCTION · ICU PLACEHOLDER · INLINE TAG · TARGET TEXT ONLY · FORCED MAPPING · L2 GLOSSARY · speaker_keyGlossary: glossary_term · fetchGlossaryHits · canonical_form · forbidden_translations · SUBSTRING MATCH · FORCED MAPPING · FORBIDDEN ALTERNATIVE · L2 GLOSSARY · glossary_hits · glossary_complianceGeneration: AdapterRegistry · anthropic-sdk · openai-sdk · claude-local · codex-local · llm_plan · PIVOT_VIA · shouldPivot · COTTON_ADAPTER_CONCURRENCY · NODE_OPTIONS · pivot_register_carry · translation.refinedRevision: buildTranslateUserMessage · L7 INSTRUCTION · runRefinementLoop · priorAttempt · priorCritique · REJECTED BY THE JUDGE · maxTurns · willRetry · RefinementHooks · HOOK ABORT · turn_count_to_final · critique_for_retry · failingDimensions · cost_ceiling_usd · needs_reviewJudge: glossary_hits · runJudge · JUDGE_SYSTEM_PROMPT · judgeModel · TEMPERATURE 0 · parseJudgeResponse · FOUR-SECTION XML · VERBATIM CHUNKS · severity · critique_for_retry · judge_citation · missingHardGates · TRIGGER ABSENT = PASS · judge.scoredHard Gate: ICU PLACEHOLDER · INLINE TAG · FORBIDDEN ALTERNATIVE · hard_gate_fail · hardGatePassed · glossary_compliance · cps_budget_compliant · icu_validity · inline_tag_preserved · length_constraint · HARD GATE FIRST · missingHardGates · TRIGGER ABSENT = PASSScore: HARD GATE FIRST · computeVerdict · cottonEvalScore · WEIGHTED AVERAGE · tone_register · personality_consistent · emotional_state_match · cultural_marker_preserved · accuracy · pivot_register_carry · auto_approve_threshold · failingDimensions · approval_gate · judge.scoredIntake: processXlsxBytes · classifySheetName · parseGoogleSheetsUrl · source_file · content_sha256 · extractStageDirection · speaker_key · ingest_session · segment.ingested · github.push.receivedCheckpoint: translation_progress · last_completed_step · turn_translated · turn_judged · finalized · jobEntryGuard · SELECT FOR UPDATE · attempt_count · DEFAULT_MAX_RESUME_ATTEMPTS · TWO-TX SPLIT · ON CONFLICT DO NOTHINGSpend Control: llm_plan · costCap · cost_ceiling_usd · rateLimit · FailoverDispatcher · haltOnQuota · detectQuotaFromStream · quota_daily_exhausted · auth_revoked · NO AUTO-SWAP · needs_credential · POST /:id/resumeStale Sweep: COTTON_ADAPTER_CONCURRENCY · NODE_OPTIONS · attempt_count · runStaleSweep · STALE_THRESHOLD_INTERVAL · DLQ_ATTEMPT_CAP · LIMIT 200 · re_enqueued · dead_lettered · ORPHAN RE-ENQUEUE · IN-FLIGHT SET · /health/queues · maxStalledCount · needs_reviewApproval: auto_approve_threshold · ingest_session · SELECT FOR UPDATE · needs_credential · POST /:id/resume · POST /:id/approve · POST /:id/unapprove · POST /:id/reject · APPROVE_FROM · REJECT_FROM · needs_review · reviewer_id · HITL · approval_gate · translation.approved · EDIT & APPROVE · actor_idCorrection: POST /:id/correct · corrected_text · CORRECT_FROM · EDIT & APPROVE · human_corrected_segments · human-corrected-after-mt · translation.human_corrected · supersedes · NEW REVISION · IMMUTABLE HISTORYAudit Trail: turn_count_to_final · severity · judge_citation · content_sha256 · segment.ingested · github.push.received · translation.approved · human_corrected_segments · translation.human_corrected · IMMUTABLE HISTORY · event_log · appendNextEvent · ULID · AGGREGATE VERSION · translation_state_log · actor_id · llm_call_log · telemetryHook · judge.scored · translation.refined

Vērtējumi, atkārtojumi un cilvēka pārskatīšana — katrs pie savas robežas.

Ģenerēšanai un spriedumam ir kopīgs glosārijs, un tiesneša modeļa ziņotu obligāto vārtu kļūmi nevar kompensēt ar vidējo rezultātu. Tulkojuma un sprieduma starpstāvokļi tiek reģistrēti, atkārtojumu un izmaksu ierobežojumi tiek turēti atsevišķi no izsmeltiem akreditācijas datiem, un iestrēguši darbi atgriežas rindā vai pārskatīšanā atkarībā no cēloņa.

Šis darba projekts vienā plūsmā savieno tulkojumu ģenerēšanu, modeļa ziņotu kvalitātes spriedumu, atkārtojumus un cilvēka pārskatīšanu.

No repozitorija sākuma līdz darbam, kas apstiprināts sadarbības laikā

Tīmekļa lietotne ar tulkojumu rediģēšanas un apstiprināšanas ekrāniem, API un darbu worker, kas darbojas izstrādes vidē.

Verdiktu plūsmas karte · pēc privātiem implementācijas ierakstiem
Cotton: tulkojuma spriedums · atkārtojums · atkopšanaAPI komitē avota tekstu un mērķa valodas datubāzē, pēc tam ievieto rindā darbu katrai mērķa valodai. Worker bloķē tabulas rindu, pārbauda mēģinājumu, izveido melnrakstu un progresa stāvokli, ģenerē tulkojumu ar glosāriju un atsevišķi izsauc tiesneša modeli ar to pašu glosāriju. Tulkojums (Tx1) un spriedums ar pierādījumiem (Tx2) tiek reģistrēti atsevišķās transakcijās. Kods apkopo spriedumu tā, lai obligāto vārtu kļūmi nekompensētu vidējais: izturējušais tiek pabeigts, neizturējušais saņem vēl vienu gājienu, gājienu vai izmaksu ierobežojums to nosūta cilvēka pārskatīšanai, un kvotas vai autentifikācijas signāls aptur izmaksas un gaida akreditācijas datu pārbaudi. Novecojušo darbu pārbaude aplūko līdz 200 melnrakstiem, kas vecāki par 10 minūtēm: tāds, kam vēl ir mēģinājumi, bet kura trūkst rindā, tiek atkārtoti ievietots rindā, un tāds, kas izsmēlis mēģinājumus, nonāk pārskatīšanā vai akreditācijas datu pārbaudē atkarībā no tā, vai ir rezultāts.Avots · mērķa valodasSaglabātie segmentiCilvēka pārskatīšananeeds_review · nav apstiprinājumsAkreditācijas datu pārbaudeneeds_credentialAPI · darba reģistrācijaRindā pēc komitaDarbu rindaBullMQ · darba IDDarba ieejaTabulas rindas bloķēšana · mēģinājuma pārbaudeGlosārijs · kontekstsDarbvietas glosārijsTulkošanas gājiensĢenerēšana · modeļa izsaukumsTiesneša modeļa izsaukums · parsēšanaVerdikta noteikumiObligātie vārti · svērtais vidējaisAtkārtojums · izmaksasGājieni · izmaksas · kvotaTulkojuma stāvoklisMelnraksts · progressTulkojuma · sprieduma rindasStāvoklis · izsaukumu žurnālsPabeigšanaGalīgā transakcijaRindas pārbaudeRindas stāvokļa salīdzināšanaNovecojušo darbu pārbaudeMelnraksti vecāki par 10 min · līdz 200Ievade · rindaĢenerēšana · spriedumsStāvoklis · pieņemšanaAtkopšana · cilvēka lēmums1avots2 pēc komita · Rindā pēc komita → BullMQ · darba ID23 darba nodošana · BullMQ · darba ID → Tabulas rindas bloķēšana · mēģinājuma pārbaude34progresa ieraksts5mēģinājums atļauts1glosārijs2 tas pats glosārijs · Darbvietas glosārijs → Tiesneša modeļa izsaukums · parsēšana23Tx1 · tulkojums4Tx2 · spriedums5 vērtējumi · vārti · Tiesneša modeļa izsaukums · parsēšana → Obligātie vārti · svērtais vidējais56verdikts7pass8galīgais ieraksts1verdikts2nākamais gājiens3ierobežojums · pārtraukšana4kvota · autentifikācija5manuāla atsākšana1novecojis melnraksts2 zem ierobežojuma · Melnraksti vecāki par 10 min · līdz 200 → Rindas stāvokļa salīdzināšana23atkārtoti rindā4 rezultāts ir · Melnraksti vecāki par 10 min · līdz 200 → Cilvēka pārskatīšana45rezultāta nav

Reģistrācija → ieeja

Rindā pēc datubāzes komita; worker bloķē tabulas rindu, pārbauda mēģinājumu un izveido melnrakstu.

  1. Avots · mērķa valodasDati: avotsRindā pēc komitaAPI · darba reģistrācija

    Avota segmenti un projekta mērķa valodas tiek saglabāti datubāzē. Klientu dati netiek rādīti.

  2. Rindā pēc komitaAPI · darba reģistrācijaDati: pēc komitaBullMQ · darba IDDarbu rinda

    Pēc datubāzes komita katrai aktīvajai mērķa valodai rindā tiek ievietots darbs ar pieprasījuma ID. Ja ievietošana rindā neizdodas, tiek reģistrēts tikai brīdinājums un komits netiek atsaukts (nav atomāra outbox), tāpēc pastāv novecojušo darbu pārbaude.

  3. BullMQ · darba IDDarbu rindaIzpilde · spriedums: darba nodošanaTabulas rindas bloķēšana · mēģinājuma pārbaudeDarba ieeja

    BullMQ asinhroni nodod darbu worker.

  4. Tabulas rindas bloķēšana · mēģinājuma pārbaudeDarba ieejaDati: progresa ierakstsMelnraksts · progressTulkojuma stāvoklis

    Transakcijas iekšienē progresa ieraksts tiek bloķēts un izveidots tulkojuma melnraksts. Jau pabeigtu vai akreditācijas datu dēļ apturētu darbu automātiskie atkārtojumi tiek izlaisti; manuāli pieprasījumi tiek apstrādāti atsevišķi.

  5. Tabulas rindas bloķēšana · mēģinājuma pārbaudeDarba ieejaIzpilde · spriedums: mēģinājums atļautsĢenerēšana · modeļa izsaukumsTulkošanas gājiens

    Mēģinājumu skaits ierobežojuma robežās palielinās par vienu, un tad sākas tulkošanas gājiens.

Ģenerēšana → spriedums → pabeigšana

Ģenerēšana un spriedums izmanto to pašu glosāriju; tulkojums un spriedums tiek reģistrēti atsevišķi, un kods apkopo spriedumu pirms pabeigšanas.

  1. Darbvietas glosārijsGlosārijs · kontekstsDati: glosārijsĢenerēšana · modeļa izsaukumsTulkošanas gājiens

    Darbvietas glosārijs un konteksts tiek atrasti un nodoti ģenerēšanai.

  2. Darbvietas glosārijsGlosārijs · kontekstsDati: tas pats glosārijsTiesneša modeļa izsaukums · parsēšanaTulkošanas gājiens

    Spriedums saņem tos pašus glosārija ierobežojumus.

  3. Ģenerēšana · modeļa izsaukumsTulkošanas gājiensDati: Tx1 · tulkojumsTulkojuma · sprieduma rindasTulkojuma stāvoklis

    Modelis tiek izsaukts tieši vai caur en-US pivot, un izsaukums, notikums un progress tiek ierakstīti vienā transakcijā. Ja darbs pēc avārijas tiek palaists vēlreiz, tulkošanas izsaukums un tā izmaksas var atkārtoties.

  4. Tiesneša modeļa izsaukums · parsēšanaTulkošanas gājiensDati: Tx2 · spriedumsTulkojuma · sprieduma rindasTulkojuma stāvoklis

    Tiesneša vērtējumi un pierādījumi tiek ievietoti vienreiz katram tulkojumam un gājienam; dublikāts atrod esošo ierakstu, un citāti tiek ierakstīti tikai pirmajā ievietošanā. Tā nav tā pati transakcija, kas tulkojumam.

  5. Tiesneša modeļa izsaukums · parsēšanaTulkošanas gājiensDati: vērtējumi · vārtiObligātie vārti · svērtais vidējaisVerdikta noteikumi

    Tiesneša modeļa atbilde tiek parsēta vērtējumos pa dimensijām un vārtu rezultātos. Vai glosārijs ir izturēts, ziņo tiesneša modelis.

  6. Obligātie vārti · svērtais vidējaisVerdikta noteikumiIzpilde · spriedums: verdiktsGājieni · izmaksas · kvotaAtkārtojums · izmaksas

    Jebkura ziņota obligāto vārtu kļūme nozīmē nulli un neizturētu pārbaudi; tikai tad tiek piemērots svērtais vidējais un sliekšņi pa dimensijām. Kopējais slieksnis 8.0 ir konfigurācijas noklusējuma vērtība, nevis novērota tulkojuma kvalitāte.

  7. Gājieni · izmaksas · kvotaAtkārtojums · izmaksasIzpilde · spriedums: passGalīgā transakcijaPabeigšana

    Izturējušais tiek pabeigts ar statusu translated.

  8. Galīgā transakcijaPabeigšanaDati: galīgais ierakstsStāvoklis · izsaukumu žurnālsTulkojuma stāvoklis

    Kandidāts, statuss, vērtējums un gājieni tiek pabeigti, un pabeigtais progress kopā ar statusa žurnālu tiek ierakstīts vienā transakcijā. Notikums par pabeigtu tulkojumu tiek izsūtīts tikai statusam translated.

Atkārtojums · izmaksu ierobežojumi

Neizturēts nozīmē vēl vienu gājienu; ierobežojums nozīmē cilvēka pārskatīšanu; kvota vai autentifikācija aptur izmaksas un gaida, kad operators atsāks.

  1. Obligātie vārti · svērtais vidējaisVerdikta noteikumiIzpilde · spriedums: verdiktsGājieni · izmaksas · kvotaAtkārtojums · izmaksas

    Jebkura ziņota obligāto vārtu kļūme nozīmē nulli un neizturētu pārbaudi; tikai tad tiek piemērots svērtais vidējais un sliekšņi pa dimensijām. Kopējais slieksnis 8.0 ir konfigurācijas noklusējuma vērtība, nevis novērota tulkojuma kvalitāte.

  2. Gājieni · izmaksas · kvotaAtkārtojums · izmaksasIzpilde · spriedums: nākamais gājiensĢenerēšana · modeļa izsaukumsTulkošanas gājiens

    Tulkojums, kas neiztur pārbaudi, tiek ģenerēts vēlreiz kopā ar iepriekšējo tulkojumu un kritiku. Pat obligāto vārtu kļūmi var vispirms mēģināt vēlreiz, nevis nosūtīt tieši cilvēkam.

  3. Gājieni · izmaksas · kvotaAtkārtojums · izmaksasIzpilde · spriedums: ierobežojums · pārtraukšanaCilvēka pārskatīšana

    Kad gājieni beidzas vai tiek sasniegts izmaksu griesti, darbs tiek pabeigts ar statusu needs_review. Pabeigts nozīmē, ka apstrāde beidzās, nevis ka cilvēks to apstiprināja.

  4. Gājieni · izmaksas · kvotaAtkārtojums · izmaksasKļūme · ierobežojums: kvota · autentifikācijaAkreditācijas datu pārbaude

    Kvotas vai autentifikācijas signāls aptur izmaksas un iestata statusu needs_credential. Automātiskas pārslēgšanās uz citu kontu vai modeļu nodrošinātāju nav. Transporta kļūdas bez apturēšanas signāla atgriežas BullMQ atkārtojumā.

  5. Akreditācijas datu pārbaudeIzpilde · spriedums: manuāla atsākšanaBullMQ · darba IDDarbu rinda

    Operators, kurš pārbaudījis akreditācijas datus, palaiž darbu no jauna skaidri norādot.

Novecojušo darbu atkopšana

Veci melnraksti tiek sadalīti pēc cēloņa: ja trūkst rindā — atkārtoti rindā, ja mēģinājumi izsmelti — cilvēka lēmums.

  1. Melnraksts · progressTulkojuma stāvoklisNovērošana · ziņojums: novecojis melnrakstsMelnraksti vecāki par 10 min · līdz 200Novecojušo darbu pārbaude

    Tiek nolasīti līdz 200 kandidātiem, kas melnraksta stāvoklī ir ilgāk par 10 minūtēm, sākot ar vecākajiem. Vaicājums neņem bloķējumu, un atjauninājumi un žurnalēšana notiek kā atsevišķi priekšraksti, tāpēc tas netiek aprakstīts kā pakešapstrāde bez sacensību stāvokļiem.

  2. Melnraksti vecāki par 10 min · līdz 200Novecojušo darbu pārbaudeIzpilde · spriedums: zem ierobežojumaRindas stāvokļa salīdzināšanaRindas pārbaude

    Ja mēģinājumu ir mazāk par ierobežojumu (3), darbs tiek salīdzināts ar rindas stāvokļiem active, waiting, delayed un prioritized. Kodā izsmelto mēģinājumu zars ir pirms šīs rindas pārbaudes.

  3. Rindas stāvokļa salīdzināšanaRindas pārbaudeIzpilde · spriedums: atkārtoti rindāBullMQ · darba IDDarbu rinda

    Ja darba nav rindā, tas tiek atkārtoti ievietots rindā. API izmanto ID ar pieprasījuma sufiksu, bet pārbaude meklē segmenta un valodas ID, tāpēc netiek apgalvots, ka tā atrod katru notiekošo pieprasījumu.

  4. Melnraksti vecāki par 10 min · līdz 200Novecojušo darbu pārbaudeIzpilde · spriedums: rezultāts irCilvēka pārskatīšana

    Kad visi 3 mēģinājumi ir izmantoti un tulkojuma rezultāts ir, darbs nonāk statusā needs_review.

  5. Melnraksti vecāki par 10 min · līdz 200Novecojušo darbu pārbaudeIzpilde · spriedums: rezultāta navAkreditācijas datu pārbaude

    Kad visi 3 mēģinājumi ir izmantoti un rezultāta nav, darbs nonāk statusā needs_credential.

Visi savienojumi ar vienādu svaru. Izvēlieties plūsmu, lai izceltu tikai tās ceļu ar numurētiem soļiem.

  • Nepārtraukta · ievades, rezultātu un ierakstu virziens
  • Raustīta · izpilde, spriedums, pieprasījums
  • Gari punkti · novērošana un ziņošana, nošķirti no sprieduma
  • Īsas svītras · kļūme, apstāšanās, ierobežojums
  • Bieza melna līnija · izvēlētā plūsma; skaitļi norāda secību
  • Rāmis · koda vai stāvokļa robeža, nosaukums galvenē
  • Iekšējā plāksnīte · šīs robežas komponents
  • Punktēts rāmis · ārpus šīs robežas
  • Oranža kontūra · vieta, kur lemj modelis
  • Ģenerēšana · izmaksas · pabeigšana
  • Ieeja · verdikta noteikumi · pārbaude
  • Rinda · stāvoklis · ieraksti
  • Reģistrācija · rindas pārbaude

Pamatā privāti implementācijas un izstrādes ieraksti. Klientu dati un koda ceļi netiek rādīti.

Viena pārbaudes kārta
2026. gada 26. maijs, viena izstrādes vides pārbaudes kārta: 200 pārbaudīti, 106 stāvokļa pārejas, 2 atkārtoti rindā. Stāvokļa pāreja nav veiksmīgs tulkojums, un 106 sadalījums pa mērķa stāvokļiem nav reģistrēts.
Kāpēc ne tieši vienreiz
Ieraksti tiek rakstīti bez dublikātiem, taču, ja darbs pēc avārijas tiek palaists vēlreiz, modeļa izsaukumi un to izmaksas var atkārtoties. Paralēlisma ierobežojums ir katram procesam, nevis visam klasterim.
Verdikta tvērums
Tas, ka vidējais nevar aizsegt glosārija kļūmi, ir apkopošanas noteikums pār ziņotajiem vārtiem. Tas nepierāda, ka tiek atrasts katrs aizliegtais termins vai ka kvalitāte ir dzimtās valodas līmenī.