AI Class

Membangun Prompt Compression Pipeline di n8n untuk RAG: Hemat Token, Pertahankan Konteks, Tingkatkan Latency

· 4 menit baca

Membangun Prompt Compression Pipeline di n8n untuk RAG: Hemat Token, Pertahankan Konteks, Tingkatkan Latency

Ringkasan: Artikel ini menjelaskan cara membangun pipeline prompt compression di n8n untuk sistem Retrieval-Augmented Generation (RAG). Fokus pada pengurangan penggunaan token, mempertahankan konteks penting, dan mempercepat respon LLM tanpa kehilangan kualitas jawaban.

Apa itu Prompt Compression dan Mengapa Penting untuk RAG?

Prompt compression adalah teknik merangkum atau menyusun ulang konteks yang dikirim ke LLM sehingga jumlah token berkurang tetapi informasi relevan tetap terjaga. Dalam arsitektur RAG (Retrieval-Augmented Generation), dokumen yang diambil cenderung besar — mengirim semuanya ke model LLM mahal dan lambat. Compression membantu:

  • Menurunkan biaya inferensi (token)
  • Mengurangi latency dengan konteks yang lebih ringkas
  • Meningkatkan robustnes terhadap context window terbatas
  • Menghindari pengiriman data sensitif yang tidak relevan

Strategi Prompt Compression yang Efektif

Berikut pendekatan yang umum dan terbukti efektif:

  1. Extractive Summarization — ambil kalimat/paragraf paling relevan dari dokumen.
  2. Abstractive Compression — gunakan model kecil untuk meringkas konten panjang ke bentuk yang lebih padat.
  3. Query-aware Compression — kompres berdasarkan pertanyaan pengguna; hanya ambil context yang relevan dengan embedding similarity.
  4. Chunking & Relevance Scoring — pecah dokumen menjadi chunk, hitung relevansi via embedding, lalu gabungkan top-k chunk.
  5. Instruction-Preserving Compression — sertakan ringkasan plus petunjuk penting (legal, safety) agar LLM tetap taat aturan.
  6. Cache Compressed Prompts — simpan hasil kompresi yang sering dipakai untuk menghemat biaya komputasi.

Arsitektur Pipeline di n8n

Contoh arsitektur minimal yang akan kita bangun di n8n:

  • Trigger: Webhook atau Scheduler
  • Node: Retrieve Documents (DB / Vector DB)
  • Node: SplitInBatches (pecah chunk)
  • Node: Embedding similarity (HTTP Request ke embedding API)
  • Node: Function (scoring + pick top-k)
  • Node: Compress (kecilkan teks dengan model ringkas atau prompt compression)
  • Node: Build Prompt (gabungkan ringkasan + user question + instruction)
  • Node: LLM Request (final inference)
  • Node: Cache & Store (opsional) dan Response

Mengapa gunakan dua langkah compress & LLM?

Dengan memisahkan compression (menggunakan model murah atau teknik extractive) dari inference akhir (model besar), kita mengurangi biaya. Compression bisa dilakukan oleh model 1/8 biaya model final atau dengan heuristik scripting.

Implementasi Praktis di n8n — Step-by-step

1. Trigger dan Ambil Dokumen

Gunakan Webhook node untuk menerima pertanyaan pengguna. Lalu panggil node yang mengambil top-N dokumen dari vector DB berdasarkan embedding query.

2. Split & Score

Pecah dokumen panjang menjadi chunk ~200-600 token dengan node SplitInBatches. Untuk tiap chunk, hitung similarity menggunakan embedding API (HTTP Request). Simpan skor dan chunk.

3. Pilih Top-K dan Lakukan Compression

Pilih top-k chunk (mis. k=5) berdasarkan skor relevansi. Kemudian kompres tiap chunk. Ada dua metode yang bisa diimplementasikan di n8n:

  • Heuristik Extractive (Function node): Pilih kalimat yang mengandung kata kunci query, batas 2-3 kalimat/ chunk.
  • Model Ringkas (HTTP Request): Kirim chunk ke model kecil (mis. distil-LLM atau model lokal) dengan prompt: "Ringkas ke 50-80 kata, pertahankan fakta dan tanggal".

4. Query-aware Merging & Instruction Injection

Gabungkan compressed chunks menjadi satu konteks terstruktur. Tambahkan bagian instruction seperti:

INSTRUCTION: Jawab singkat dan faktual. Jika tidak ada informasi, katakan "Tidak ada data".

5. Build Prompt & Final Inference

Buat prompt akhir:

User Question: {question}
Context:
- {compressed_chunk_1}
- {compressed_chunk_2}

INSTRUCTION: ...

Kirim ke LLM (HTTP Request node). Jika response terlalu panjang atau token usage tinggi, gunakan fallback model atau batched prompting.

6. Cache Compressed Result

Simpan mapping (query hash => compressed prompt) di Redis atau DB. Saat ada pertanyaan serupa, ambil dari cache untuk menghindari kompresi ulang.

Contoh Prompt Compression: Sebelum & Sesudah

Contoh singkat, sebelum compression:

"Dokumen: ...[5000 kata]..."

Setelah compression (extractive):

"Ringkasan konteks: 1) Fitur A diluncurkan 2022, berfungsi X. 2) Batas rate pada API 100 req/min. 3) Isu keamanan terkait PII ditangani dengan enkripsi."

Hasil: token turun drastis, jawaban tetap relevan.

Praktik Terbaik & Perangkap yang Harus Dihindari

  • Jaga Fidelity: Pastikan kompresi tidak menghapus fakta krusial (tanggal, angka, klaim legal).
  • Audit & Human-in-the-loop: Perkenalkan review untuk domain kritikal (legal/medical).
  • Safety Instructions: Sertakan policy/ constraint di prompt untuk menghindari jawaban berbahaya.
  • Monitoring Token Usage: Catat token pre- dan post-compression untuk mengevaluasi ROI.
  • Fallback: Bila kompresi menyebabkan penurunan kualitas jawaban, fallback ke mode full-context terbatas (hanya untuk user berbayar/approval).

Contoh Workflow n8n (Pseudo-Configuration)

{
  "nodes": [
    { "type": "Webhook", "name": "trigger" },
    { "type": "HTTP Request", "name": "get-embeddings" },
    { "type": "SplitInBatches", "name": "split-chunks" },
    { "type": "HTTP Request", "name": "emb-similarity" },
    { "type": "Function", "name": "select-top-k" },
    { "type": "HTTP Request", "name": "compress-chunk" },
    { "type": "Function", "name": "build-prompt" },
    { "type": "HTTP Request", "name": "call-llm" }
  ]
}

Metric untuk Evaluasi Keberhasilan

Beberapa metrik yang perlu dipantau:

  • Token per query (avg)
  • Latency end-to-end
  • Quality score (human evaluation / BLEU / ROUGE vs baseline)
  • Fallback rate (berapa kali kompresi gagal memuaskan)
  • Cache hit rate

Kesimpulan

Prompt compression adalah teknik penting untuk membuat RAG lebih hemat biaya dan responsif. Dengan n8n kita dapat merangkai pipeline modular: retrieval → scoring → compression → inference → caching. Implementasi yang baik menggabungkan metode extractive dan abstractive, query-aware selection, dan policy-preserving instructions. Mulai dari eksperimen sederhana (top-k chunk + extractive compression) lalu iterasi ke model-based compression dan caching untuk mendapatkan manfaat maksimal.

Langkah selanjutnya: Coba implementasikan pipeline sederhana di n8n dengan top-k selection + Function extractive compression. Pantau perubahan token usage, dan kembangkan model compression bila perlu.

Dipublikasikan oleh JIPRAKS Classroom — Tutorial Automation & AI untuk Praktisi Indonesia.

Artikel terkait