Peta file
| Mau ubah apa | File |
|---|---|
| System prompt enricher master | apps/api/src/generation/enrichers/ai-enricher.ts → SYSTEM_PROMPT |
| Fokus grup per bukti | apps/api/src/generation/document-definitions/master-definitions.ts → enrichmentGroups |
| Prompt section trainer | apps/api/src/generation/trainer-section-generator.service.ts → buildPrompt() |
| Prompt Classroom bukti-5 | apps/api/src/generation/composers/master/generate-classroom-assignment-content.ts |
| Branding knowledge & panduan dokumen | apps/api/src/ai/prompts/branding-knowledge.ts |
| Chat interviewer | apps/api/src/ai/prompts/interviewer.prompt.ts |
| Chat extractor | apps/api/src/ai/prompts/extractor.prompt.ts |
| Field boleh/k tidak boleh AI | exactFieldPaths / enrichableFieldPaths di definisi dokumen |
| Skeleton sebelum AI | apps/api/src/generation/composers/master/compose-bukti-*.ts |
| Validasi output | apps/api/src/generation/schemas/ |
Versi prompt
Enricher menyimpan provenance:Parameter model
| Parameter | Nilai umum | Lokasi |
|---|---|---|
| Model | deepseek-v4-flash | AI_MODEL di .env |
| Temperature enricher | ~0.3–0.7 | ai-enricher.ts callAI() |
| Temperature section trainer | 0.3 | trainer-section-generator.service.ts |
| Max tokens section | 4000 | idem |
| Response format | { type: 'json_object' } | DeepSeek native |
deepseek-v4-pro untuk kualitas lebih tinggi (biaya lebih).
Checklist setelah edit prompt
Tes lokal
Menambah dokumen baru
- Buat composer + schema Zod
registerDocument()dimaster-definitions.ts/trainer-definitions.ts/branding-definitions.ts- Tambah route renderer di
apps/renderer - Jika
aiMode: assist— definisikanenrichableFieldPaths+enrichmentGroups - Update frontend catalog jika perlu (biasanya auto dari API)
Anti-patterns
Jangan minta AI ubah kode unit / nama trainer
Jangan minta AI ubah kode unit / nama trainer
Taruh di
exactFieldPaths. AI hanya narasi.Jangan satu prompt untuk dokumen 20 halaman
Jangan satu prompt untuk dokumen 20 halaman
Pakai
enrichmentGroups seperti bukti-1 dan bukti-6.Jangan hardcode prompt di frontend
Jangan hardcode prompt di frontend
Semua prompt server-side di
apps/api.Debug job gagal
- Cek status job di DB / UI sidebar “Generate Gagal”
- Log worker:
generation-worker.service.ts - Jika
PAYLOAD_VALIDATION_FAILED— bandingkan output AI vs schema Zod - Retry di UI memanggil
handleGenerate()fresh (bukan reuse job input lama)