Kembali ke Semua Artikel
Web Architecture

Implementasi RAG LLM Hybrid Architecture untuk Chatbots Customer Service B2B

G
Gentha Arya Pratama
•
13 November 2026
•
8 menit baca
•
0 views
Implementasi RAG LLM Hybrid Architecture untuk Chatbots Customer Service B2B
Lihat Gambar Penuh

Mengapa Naive RAG Gagal di Lingkungan Enterprise B2B?

Retrieval-Augmented Generation (RAG) sederhana yang hanya membagi teks (chunking) berdasarkan panjang karakter lalu melakukan pencarian vektor kosinus sering kali menghasilkan halusinasi atau informasi usang.

Dalam use-case Customer Service B2B, kesalahan jawaban 1% saja dapat berujung pada komplain kontrak atau sanksi kepatuhan SLA. Oleh karena itu, kita membutuhkan Hybrid RAG Architecture yang menggabungkan pencarian semantik (dense retrieval) dengan pencarian kata kunci pasti (sparse lexical retrieval seperti BM25).

Arsitektur Hybrid RAG Dua Jalur (Two-Stage Pipeline)

flowchart TD
    Query["User Support Query"] --> Embed["Vector Embedding (text-embedding-3-large)"]
    Query --> BM25["Sparse Keyword Search (BM25)"]
    Embed --> VecDB["Vector DB (Qdrant / Milvus)"]
    VecDB --> HybridScore["Reciprocal Rank Fusion (RRF)"]
    BM25 --> HybridScore
    HybridScore --> ReRanker["Cross-Encoder Reranker (Cohere / BGE)"]
    ReRanker --> ContextFilter["Top-K Context Filtering"]
    ContextFilter --> LLM["LLM Generation with Strict Citation"]

1. Reciprocal Rank Fusion (RRF) untuk Menggabungkan Skor

Dense search sangat baik dalam menangkap arti kontekstual, tetapi lemah saat mencari kode error spesifik (misal: ERR_CONN_TIMEOUT_992). Kombinasi keduanya menggunakan algoritma RRF:

export function reciprocalRankFusion(
  vectorResults: Array<{ id: string; rank: number }>,
  keywordResults: Array<{ id: string; rank: number }>,
  k = 60
) {
  const scores: Record<string, number> = {};

  vectorResults.forEach((doc) => {
    scores[doc.id] = (scores[doc.id] || 0) + 1 / (k + doc.rank);
  });

  keywordResults.forEach((doc) => {
    scores[doc.id] = (scores[doc.id] || 0) + 1 / (k + doc.rank);
  });

  return Object.entries(scores)
    .sort(([, a], [, b]) => b - a)
    .map(([id, score]) => ({ id, score }));
}

2. Guardrails & Strict Citation Enforcement

Pastikan bot tidak mengarang jawaban di luar dokumen referensi dengan teknik Negative Constraint Prompting dan verifikasi kutipan otomatis. Jika skor kesesuaian di bawah ambang batas (threshold 0.72), bot wajib mengarahkan user ke tim human support secara elegan.

Kesimpulan

Hybrid RAG menjembatani akurasi pencarian leksikal klasik dengan pemahaman bahasa alami model bahasa besar, menjadikannya standar baku untuk sistem asisten B2B yang dapat diandalkan.

G

Ditulis oleh Gentha Arya Pratama

Fullstack Developer berdedikasi membangun aplikasi web & mobile modern dengan fokus pada performa, arsitektur bersih, dan user experience.

Bagaimana pendapat Anda tentang artikel ini?

Beri reaksi instan atau bagikan ilmu ini ke rekan sesama developer.