Skip to main content
Halaman ini fokus pada alur teknis job generate — antrian, worker, renderer. Detail prompt & composer: Alur generate dokumen.

Sequence end-to-end

Endpoint utama

MethodPathFungsi
POST/documents/:documentId/generateEnqueue multi-doc (max 20 types)
POST/documents/:documentId/generate/:documentTypeSatu dokumen
GET/generation-jobs/:jobIdStatus job
POST/generation-jobs/:jobId/retryRetry job gagal (rate limit 10/15min)
GET/documents/:documentId/generated-filesList file + stale detection
Kode: apps/api/src/generation/generation.routes.ts, generation-worker.service.ts

Status job

Worker membungkus generateFromJob() dalam try/catch — kegagalan update status failed + pesan error (tidak stuck active).

Rate limiting

EndpointLimit
POST .../generate20 req / 15 menit
POST .../retry10 req / 15 menit

Retry behavior

Tombol Retry di frontend memanggil handleGenerate() dengan documentTypes yang benar per flow (master bukti-1..8, trainer 14 types) — bukan reuse job lama dengan tipe salah.

Renderer

Service terpisah (apps/renderer) — menerima payload + template, mengembalikan DOCX/PPTX.
DOCX_RENDERER_URL=http://127.0.0.1:8787   # dev
Production: Cloudflare Worker renderer.
KomponenKondisi
SidebarSedangGenerateJob queued / active
SidebarGenerateGagalJob failed + tombol retry
SidebarSiapDiunduhFile ready — detect trainer vs master labels

Env AI

DEEPSEEK_API_KEY=sk-...
AI_PROVIDER=deepseek
AI_MODEL=deepseek-v4-flash
DOCX_RENDERER_URL=...

Halaman terkait