ASAL AI

AI Summarizer Dokumen

Tempel artikel atau laporan panjang, dapat ringkasan berjenjang: satu kalimat, poin utama, dan detail penting — plus tombol 'tanya lanjut'.

Next.jsStructured Output≈ 60 menit

Menjumlah ringkasan itu kasus penggunaan LLM yang paling langsung terasa manfaatnya — dan paling gampang diangkat jadi produk.

1. Strategi ringkas yang tidak asal

Satu prompt "ringkas dokumen ini" akan kehilangan detail di dokumen panjang (ingat lost in the middle). Pola yang lebih andal — ringkasan berlapis:

  1. Ringkasan 1 kalimat — apa intinya.
  2. Ringkasan poin — 3–5 butir utama.
  3. Detail penting — angka, nama, tanggal, keputusan.

Semua minta dalam SATU output JSON terstruktur — kombinasikan dengan materi structured output:

const res = await fetch("/api/chat", {
  method: "POST",
  body: JSON.stringify({
    messages: [
      { role: "system", content:
        'Kembalikan JSON: {"satu_kalimat": string, "poin": string[], ' +
        '"detail": {angka: string[], nama: string[], keputusan: string[]}}. ' +
        "Bahasa Indonesia." },
      { role: "user", content: dokumen },
    ],
    jsonMode: true,
  }),
});

2. Dokumen yang melebihi context window

Dua strategi, urut dari termurah:

Map-reduce: pecah dokumen per bagian → ringkas tiap bagian → ringkas gabungan ringkasannya. Kuat untuk dokumen ratusan halaman.

RAG ringan: kalau user punya fokus tertentu, ambil saja bagian relevan, ringkas itu.

3. Tombol "tanya lanjut"

Nilai tambah yang membuat summarizer terasa hidup: setelah ringkasan tampil, user bisa bertanya ("Angka laba Q2 berapa?") — sistem menjawab dengan dokumen lengkap sebagai konteks (pola RAG lagi).

4. Antarmuka

  • Tempel teks / unggah file (batasi ukuran, mis. 1 MB).
  • Tampilkan hasil bertingkat: kalimat besar di atas, poin di tengah, detail di bawah dalam tabel.
  • Badge "≈ N token" biar user paham biayanya.
  • Setiap butir ringkasan bisa diklik → scroll ke bagian dokumen asal (simpan posisi chunk saat chunking).

5. Jangan lupakan halusinasi

Minta model memasukkan hanya klaim yang ada di teks, dan tambahkan langkah verifikasi murah: cocokkan angka-angka di ringkasan dengan angka di dokumen asli secara terprogram. Kalau ada angka ringkasan yang tidak ada di asli → tandai merah.

Tantangan

Dukung URL: user tempel link artikel, server mengambil dan membersihkan HTML-nya (mis. pakai @mozilla/readability), lalu ringkas.