
Cotton
Translation workflow
Biến bản dịch được sinh ra thành kết quả có thể rà soát.
Một quy trình dịch cho lời thoại game.
Cotton vocabulary
- prompt layers
- glossary
- generation
- revision
- judge
- hard gate
- score
- intake
- checkpoint
- spend control
- stale sweep
- approval
- correction
- 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
Điểm số, thử lại và rà soát của con người, mỗi thứ ở ranh giới riêng.
Việc sinh và phán định dùng chung bảng thuật ngữ, và một lỗi hard gate do mô hình phán định báo cáo không thể bị bù trừ bởi điểm trung bình. Các trạng thái trung gian của bản dịch và phán định được ghi lại, giới hạn thử lại và chi phí được tách khỏi thông tin xác thực đã cạn, và công việc bị kẹt quay về hàng đợi hoặc rà soát tùy theo nguyên nhân.
Dự án công việc này nối việc sinh bản dịch, phán định chất lượng do mô hình báo cáo, thử lại và rà soát của con người trong một luồng.
Từ lúc khởi tạo kho mã đến công việc được xác nhận trong thời gian hợp tác
Một ứng dụng web gồm màn hình chỉnh sửa và phê duyệt bản dịch, một API và một worker công việc, chạy trong môi trường phát triển.
Đăng ký → vào
Được đưa vào hàng đợi sau commit cơ sở dữ liệu; một worker khóa hàng, kiểm tra lượt thử và tạo draft.
Nguồn · locale đíchDữ liệu: nguồnĐưa vào hàng đợi sau commit
API · đăng ký công việcCác phân đoạn nguồn và locale đích của dự án được lưu trong cơ sở dữ liệu. Dữ liệu khách hàng không được hiển thị.
Đưa vào hàng đợi sau commit
API · đăng ký công việcDữ liệu: sau commitBullMQ · ID công việcHàng đợi công việcSau khi commit cơ sở dữ liệu, một công việc có ID theo phạm vi yêu cầu được đưa vào hàng đợi cho mỗi locale đích đang hoạt động. Nếu đưa vào hàng đợi thất bại, chỉ một cảnh báo được ghi và commit không bị hoàn tác (không có outbox nguyên tử), đó là lý do có lần quét kẹt.
BullMQ · ID công việc
Hàng đợi công việcChạy · phán định: gửi công việcKhóa hàng · kiểm tra lượt thửVào công việcBullMQ chuyển công việc cho một worker một cách bất đồng bộ.
Khóa hàng · kiểm tra lượt thử
Vào công việcDữ liệu: hàng tiến độDraft · tiến độTrạng thái bản dịchTrong một giao dịch, hàng tiến độ bị khóa và một bản dịch draft được tạo. Việc tự động thử lại các công việc đã chốt hoặc đã tạm dừng vì thông tin xác thực được bỏ qua; yêu cầu thủ công được xử lý riêng.
Khóa hàng · kiểm tra lượt thử
Vào công việcChạy · phán định: cho phép lượt thửSinh · gọi mô hìnhLượt dịchSố lượt thử tăng thêm một trong giới hạn của nó, rồi lượt dịch bắt đầu.
Sinh → phán định → chốt
Việc sinh và phán định dùng cùng bảng thuật ngữ; bản dịch và phán định được ghi riêng, và mã tổng hợp phán định trước khi chốt.
Bảng thuật ngữ của workspace
Bảng thuật ngữ · ngữ cảnhDữ liệu: bảng thuật ngữSinh · gọi mô hìnhLượt dịchBảng thuật ngữ và ngữ cảnh của workspace được tra cứu và chuyển cho việc sinh bản dịch.
Bảng thuật ngữ của workspace
Bảng thuật ngữ · ngữ cảnhDữ liệu: cùng bảng thuật ngữGọi mô hình phán định · phân tíchLượt dịchViệc phán định nhận cùng các ràng buộc bảng thuật ngữ.
Sinh · gọi mô hình
Lượt dịchDữ liệu: Tx1 · bản dịchHàng bản dịch · phán địnhTrạng thái bản dịchMô hình được gọi trực tiếp hoặc qua pivot en-US, và lệnh gọi, sự kiện cùng tiến độ được ghi trong một giao dịch. Nếu công việc chạy lại sau sự cố, lệnh gọi dịch và chi phí của nó có thể lặp lại.
Gọi mô hình phán định · phân tích
Lượt dịchDữ liệu: Tx2 · phán địnhHàng bản dịch · phán địnhTrạng thái bản dịchĐiểm và bằng chứng của bộ phán định được chèn một lần cho mỗi bản dịch và lượt; một bản trùng sẽ tìm ra hàng đã có, và trích dẫn chỉ được ghi ở lần chèn đầu tiên. Không cùng giao dịch với bản dịch.
Gọi mô hình phán định · phân tích
Lượt dịchDữ liệu: điểm · gateHard gate · trung bình có trọng sốQuy tắc phán địnhCâu trả lời của mô hình phán định được phân tích thành điểm theo từng chiều và kết quả gate. Việc bảng thuật ngữ có đạt hay không là điều mô hình phán định báo cáo.
Hard gate · trung bình có trọng số
Quy tắc phán địnhChạy · phán định: phán địnhLượt · chi phí · quotaThử lại · chi tiêuBất kỳ lỗi hard gate nào được báo cáo đều nghĩa là không điểm và không đạt; chỉ sau đó mới áp dụng trung bình có trọng số và ngưỡng theo từng chiều. Ngưỡng tổng 8.0 là giá trị cấu hình mặc định, không phải chất lượng bản dịch quan sát được.
Lượt · chi phí · quota
Thử lại · chi tiêuChạy · phán định: passGiao dịch cuốiChốt kết quảKết quả đạt được chốt là translated.
Giao dịch cuối
Chốt kết quảDữ liệu: bản ghi cuốiTrạng thái · log lệnh gọiTrạng thái bản dịchỨng viên, trạng thái, điểm và số lượt được chốt, và progress finalized cùng log trạng thái được ghi trong một giao dịch. Sự kiện dịch xong chỉ được phát cho translated.
Thử lại · giới hạn chi tiêu
Không đạt nghĩa là thêm một lượt; chạm giới hạn nghĩa là rà soát của con người; quota hoặc xác thực dừng chi tiêu và chờ người vận hành cho tiếp tục.
Hard gate · trung bình có trọng số
Quy tắc phán địnhChạy · phán định: phán địnhLượt · chi phí · quotaThử lại · chi tiêuBất kỳ lỗi hard gate nào được báo cáo đều nghĩa là không điểm và không đạt; chỉ sau đó mới áp dụng trung bình có trọng số và ngưỡng theo từng chiều. Ngưỡng tổng 8.0 là giá trị cấu hình mặc định, không phải chất lượng bản dịch quan sát được.
Lượt · chi phí · quota
Thử lại · chi tiêuChạy · phán định: lượt tiếp theoSinh · gọi mô hìnhLượt dịchBản dịch không đạt được sinh lại cùng bản dịch và lời phê bình trước đó. Ngay cả lỗi hard gate cũng có thể được thử lại trước thay vì đi thẳng đến con người.
Lượt · chi phí · quota
Thử lại · chi tiêuChạy · phán định: giới hạn · hủyRà soát của con ngườiKhi hết lượt hoặc chạm trần chi phí, công việc được chốt là needs_review. Finalized nghĩa là việc xử lý đã kết thúc, không phải một người đã phê duyệt.
Lượt · chi phí · quota
Thử lại · chi tiêuLỗi · giới hạn: quota · xác thựcKiểm tra thông tin xác thựcMột tín hiệu quota hoặc xác thực dừng chi tiêu và đặt needs_credential. Không có việc tự động chuyển sang tài khoản hay nhà cung cấp khác. Lỗi truyền tải không có tín hiệu dừng quay về cơ chế thử lại của BullMQ.
Kiểm tra thông tin xác thựcChạy · phán định: tiếp tục thủ côngBullMQ · ID công việc
Hàng đợi công việcMột người vận hành đã kiểm tra thông tin xác thực khởi động lại một cách tường minh.
Khôi phục công việc bị kẹt
Các draft cũ được chia theo lý do: vắng khỏi hàng đợi nghĩa là đưa lại hàng đợi, hết lượt thử nghĩa là một quyết định của con người.
Draft · tiến độ
Trạng thái bản dịchQuan sát · báo cáo: draft bị kẹtDraft quá 10 phút · tối đa 200Quét kẹtTối đa 200 ứng viên đã là draft quá 10 phút được đọc, cũ nhất trước. Truy vấn không khóa và các thao tác cập nhật và ghi log chạy như các câu lệnh riêng, nên điều này không được mô tả là một lô không có race.
Draft quá 10 phút · tối đa 200
Quét kẹtChạy · phán định: dưới giới hạnSo sánh trạng thái hàng đợiKiểm tra hàng đợiKhi số lượt thử còn ít hơn giới hạn (3), công việc được so sánh với các trạng thái hàng đợi active, waiting, delayed và prioritized. Trong mã, nhánh hết lượt thử đứng trước bước kiểm tra hàng đợi này.
So sánh trạng thái hàng đợi
Kiểm tra hàng đợiChạy · phán định: đưa lại hàng đợiBullMQ · ID công việcHàng đợi công việcNếu công việc không có trong hàng đợi, nó được đưa vào lại. API dùng ID có hậu tố yêu cầu trong khi lần quét tìm theo ID phân đoạn và locale, nên điều này không được mô tả là khớp mọi yêu cầu đang chạy.
Draft quá 10 phút · tối đa 200
Quét kẹtChạy · phán định: có kết quảRà soát của con ngườiKhi đã dùng hết 3 lượt thử và có kết quả dịch, công việc đi đến needs_review.
Draft quá 10 phút · tối đa 200
Quét kẹtChạy · phán định: không có kết quảKiểm tra thông tin xác thựcKhi đã dùng hết 3 lượt thử và không có kết quả, công việc đi đến needs_credential.
Mọi kết nối có cùng độ đậm. Chọn một luồng để chỉ làm nổi bật đường đi của nó, kèm các bước được đánh số.
- Nét liền · hướng đi của đầu vào, kết quả và bản ghi
- Nét đứt · chạy, phán định, yêu cầu
- Chấm dài · quan sát và báo cáo, tách khỏi phán định
- Gạch ngắn · lỗi, dừng, giới hạn
- Nét đen đậm · luồng được chọn; số chỉ thứ tự
- Hộp · ranh giới mã hoặc trạng thái, tên ở phần đầu
- Chip bên trong · một thành phần của ranh giới đó
- Hộp chấm · bên ngoài ranh giới đó
- Viền cam · nơi một mô hình quyết định
- Sinh · chi tiêu · chốt
- Vào · quy tắc phán định · quét
- Hàng đợi · trạng thái · bản ghi
- Đăng ký · kiểm tra hàng đợi
Vẽ từ các bản ghi hiện thực và phát triển riêng tư. Dữ liệu khách hàng và đường dẫn mã không được hiển thị.
- Một lần quét
- May 26, 2026, một chu kỳ quét trong môi trường phát triển: kiểm tra 200, 106 lần chuyển trạng thái, 2 đưa lại hàng đợi. Một lần chuyển trạng thái không phải bản dịch thành công, và việc chia 106 theo trạng thái đích không được ghi lại.
- Vì sao không phải exactly once
- Bản ghi được ghi không trùng lặp, nhưng nếu công việc chạy lại sau sự cố, lệnh gọi mô hình và chi phí của chúng có thể lặp lại. Giới hạn đồng thời là theo từng tiến trình, không phải toàn cụm.
- Phạm vi của phán định
- Giữ cho trung bình không che một lỗi bảng thuật ngữ là một quy tắc tổng hợp trên các gate được báo cáo. Nó không chứng minh mọi từ cấm đều được phát hiện hay chất lượng đạt mức người bản ngữ.