Skip to main content
Generate dokumen di AI Mentor bukan “AI tulis satu file besar”. Pipeline-nya bertingkat: kumpulkan fakta → susun payload deterministik → AI perkaya bagian tertentu → validasi → render ke template.

Tiga keluarga dokumen

KeluargaFlow UIJumlah tipeAI
masterMaster / bukti pelatihanbukti-1bukti-8Sebagian (aiMode: assist)
trainerTrainer BNSP15 dokumen (trainer-*)Via section generator (4 gelombang)
brandingBranding trainer4 output teksPer dokumen (aiMode: assist)
Registry pusat: apps/api/src/generation/document-definitions/registry.ts

Diagram pipeline

Mode AI per dokumen

aiModeArti
none100% deterministik dari data WSP + canonical state
assistBase payload tetap; AI hanya mengisi field di enrichableFieldPaths
Field di exactFieldPaths tidak pernah diubah AI (nama trainer, kode unit, tanggal, dll.).

Multi-prompt enrichment (master)

Dokumen panjang (mis. bukti-1, bukti-6) tidak di-enrich sekali jadi. Mereka punya enrichmentGroups: 2–4 prompt terpisah, masing-masing fokus ke bagian (intro, analisis, rekomendasi). Hasilnya di-merge path-by-path ke payload. bukti-6 + bukti-6-deck berbagi enrichmentGroup yang sama — AI cukup jalan sekali untuk keduanya.

Trainer: dua lapisan AI

  1. Section generator — mengisi masterJson per section (organizer, curriculum, pretest, …) dalam 4 gelombang
  2. Composer per dokumen — memetakan masterJson → payload tiap file trainer (sebagian besar deterministik dari KUK/unit)

Chat sebelum generate

PromptFileFungsi
Interviewerapps/api/src/ai/prompts/interviewer.prompt.tsTanya fakta inti (trainer/master/branding)
Extractorapps/api/src/ai/prompts/extractor.prompt.tsParse jawaban user → field terstruktur
Unit SKKNI (elemen, KUK, peta kompetensi) tidak diekstrak dari chat — diambil dari WSP setelah user pilih unit.

Env yang mempengaruhi AI

DEEPSEEK_API_KEY=sk-...
DEEPSEEK_BASE_URL=https://api.deepseek.com/v1
AI_PROVIDER=deepseek
AI_MODEL=deepseek-v4-flash   # atau deepseek-v4-pro
GEMINI_API_KEY=...           # opsional, flow tertentu

Halaman terkait