Tutorial GraphRAG: Retrieval Augmented Generation Berbasis Graph Knowledge
Pendahuluan
Retrieval Augmented Generation (RAG) telah menjadi pendekatan standar untuk menghubungkan Large Language Model (LLM) dengan data eksternal. Namun, RAG tradisional memiliki keterbatasan signifikan: ia hanya melakukan pencarian berbasis kesamaan vektor (similarity search) tanpa memahami hubungan antar entitas dalam dokumen. Di sinilah GraphRAG hadir sebagai solusi.
GraphRAG, yang dikembangkan oleh Microsoft Research, menggabungkan kekuatan knowledge graph dengan RAG untuk menghasilkan jawaban yang lebih komprehensif dan kontekstual. Alih-alih hanya mencari potongan teks yang mirip dengan query, GraphRAG membangun graph pengetahuan dari dokumen, mengidentifikasi entitas dan hubungan antar entitas, lalu menggunakan struktur graph tersebut untuk menjawab pertanyaan yang membutuhkan pemahaman holistik.
Dalam tutorial ini, kita akan mempelajari cara menggunakan library graphrag dari Microsoft untuk membangun sistem RAG berbasis knowledge graph dari awal hingga siap digunakan.
Mengapa GraphRAG?
RAG tradisional bekerja dengan baik untuk pertanyaan yang jawabannya terdapat dalam satu atau beberapa potongan teks. Namun, RAG tradisional kesulitan menjawab pertanyaan yang membutuhkan sintesis informasi dari banyak sumber, seperti:
- "Apa tema utama yang dibahas dalam seluruh dokumen ini?"
- "Bagaimana hubungan antara departemen A dan departemen B dalam organisasi?"
- "Sebutkan semua proyek yang melibatkan teknologi X dan orang Y"
GraphRAG mengatasi keterbatasan ini dengan dua pendekatan query:
Instalasi
Prasyarat
- Python 3.10 atau lebih baru
- API key dari OpenAI atau Azure OpenAI (untuk LLM dan embedding)
- Minimal 8GB RAM (proses indexing membutuhkan memori yang cukup besar)
Instalasi Library
pip install graphrag
Untuk versi terbaru dari repository:
pip install git+https://github.com/microsoft/graphrag.git
Verifikasi instalasi:
import graphrag
print(graphrag.version)
Menyiapkan API Key
GraphRAG membutuhkan LLM untuk proses ekstraksi entitas dan pembuatan ringkasan. Siapkan API key OpenAI:
export GRAPHRAGAPIKEY="sk-your-openai-api-key"
Atau untuk Azure OpenAI:
export GRAPHRAGAPIKEY="your-azure-api-key"
export GRAPHRAGAPIBASE="https://your-resource.openai.azure.com"
export GRAPHRAGAPIVERSION="2024-06-01"
Inisialisasi Proyek
Membuat Struktur Proyek
mkdir graphrag-demo
cd graphrag-demo
python -m graphrag init --root .
Perintah ini akan menghasilkan struktur direktori:
graphrag-demo/
├── settings.yaml # Konfigurasi utama
├── .env # Environment variables
└── input/ # Folder untuk dokumen sumber
Menyiapkan Dokumen Input
Letakkan dokumen teks yang ingin diindeks ke dalam folder input/. GraphRAG mendukung file .txt dan .csv.
mkdir -p input
Sebagai contoh, kita akan membuat beberapa dokumen sampel tentang sebuah perusahaan teknologi fiktif:
# createsampledata.py
import os
documents = {
"companyoverview.txt": """
PT Teknologi Nusantara adalah perusahaan teknologi yang didirikan pada tahun 2020
di Jakarta. Perusahaan ini fokus pada pengembangan solusi kecerdasan buatan untuk
sektor perbankan dan kesehatan. CEO perusahaan adalah Budi Santoso yang sebelumnya
bekerja di Google selama 10 tahun.
Perusahaan memiliki tiga divisi utama: Divisi AI Research yang dipimpin oleh
Dr. Siti Rahayu, Divisi Product Development yang dipimpin oleh Ahmad Wijaya,
dan Divisi Business Development yang dipimpin oleh Maya Kusuma.
PT Teknologi Nusantara telah mendapatkan pendanaan Series B sebesar 50 juta USD
dari Sequoia Capital dan East Ventures pada tahun 2023. Perusahaan saat ini