Tutorial Lengkap LlamaIndex: Membangun Aplikasi RAG dengan LLM

# Tutorial Lengkap LlamaIndex: Membangun Aplikasi RAG dengan LLM LlamaIndex adalah framework data yang powerful untuk membangun aplikasi berbasis LLM. Library ini menyediakan tools untuk mengimpor, m...

By Ruby Abdullah · · tutorial
LlamaIndexRAGLLMVector DatabasePythonAI

Tutorial Lengkap LlamaIndex: Membangun Aplikasi RAG dengan LLM

LlamaIndex adalah framework data yang powerful untuk membangun aplikasi berbasis LLM. Library ini menyediakan tools untuk mengimpor, menytruktur, dan mengakses data privat atau domain-spesifik, menjadikannya sempurna untuk membangun sistem Retrieval-Augmented Generation (RAG).

Mengapa LlamaIndex?

Keunggulan LlamaIndex:
  • Mudah impor data: Koneksi ke 100+ sumber data
  • Indexing fleksibel: Multiple tipe index untuk berbagai kebutuhan
  • Query engines: Natural language querying atas data Anda
  • Kemampuan agent: Bangun LLM agents otonom
  • Production ready: Scalable dan observable

Use Cases:
  • Question answering atas dokumen
  • Chatbot dengan knowledge base
  • Ringkasan dokumen
  • Semantic search
  • Agent analisis data

Instalasi

pip install llama-index

Dengan OpenAI

pip install llama-index-llms-openai llama-index-embeddings-openai

Dengan model lokal

pip install llama-index-llms-ollama llama-index-embeddings-huggingface

Verify

python -c "import llamaindex; print(llamaindex.version)"

Quick Start

1. Basic RAG Pipeline

from llamaindex.core import VectorStoreIndex, SimpleDirectoryReader

from llamaindex.llms.openai import OpenAI

import os

os.environ["OPENAIAPIKEY"] = "your-api-key"

Load dokumen

documents = SimpleDirectoryReader("./data").loaddata()

Buat index

index = VectorStoreIndex.fromdocuments(documents)

Query

queryengine = index.asqueryengine()

response = queryengine.query("Apa topik utama dari dokumen ini?")

print(response)

2. Dengan Custom LLM

from llamaindex.core import VectorStoreIndex, SimpleDirectoryReader, Settings

from llamaindex.llms.openai import OpenAI

from llamaindex.embeddings.openai import OpenAIEmbedding

Konfigurasi settings

Settings.llm = OpenAI(model="gpt-4", temperature=0.1)

Settings.embedmodel = OpenAIEmbedding(model="text-embedding-3-small")

Load dan index

documents = SimpleDirectoryReader("./data").loaddata()

index = VectorStoreIndex.fromdocuments(documents)

Query dengan streaming

queryengine = index.asqueryengine(streaming=True)

response = queryengine.query("Ringkas poin-poin utama")

for token in response.responsegen:

print(token, end="", flush=True)

3. Dengan Model Lokal (Ollama)

from llamaindex.core import VectorStoreIndex, SimpleDirectoryReader, Settings

from llamaindex.llms.ollama import Ollama

from llamaindex.embeddings.huggingface import HuggingFaceEmbedding

Gunakan model lokal

Settings.llm = Ollama(model="llama2", requesttimeout=300.0)

Settings.embedmodel = HuggingFaceEmbedding(modelname="BAAI/bge-small-en-v1.5")

Bangun RAG

documents = SimpleDirectoryReader("./data").loaddata()

index = VectorStoreIndex.fromdocuments(documents)

queryengine = index.asqueryengine()

response = queryengine.query("Apa yang dibahas dokumen ini?")

print(response)

Loading Data

1. File Readers

from llamaindex.core import SimpleDirectoryReader

Load dari direktori

documents = SimpleDirectoryReader(

inputdir="./data",

recursive=True,

requiredexts=[".pdf", ".txt", ".md"]

).loaddata()

Load file spesifik

documents = SimpleDirectoryReader(

inputfiles=["doc1.pdf", "doc2.txt"]

).loaddata()

Dengan metadata

documents = SimpleDirectoryReader(

"./data",

filemetadata=lambda filename: {"source": filename}

).loaddata()

2. Web Readers

from llamaindex.readers.web import SimpleWebPageReader, BeautifulSoupWebReader

Simple web reader

reader = SimpleWebPageReader()

documents = reader.loaddata(["https://example.com/page1", "https://example.com/page2"])

BeautifulSoup reader

reader = BeautifulSoupWebReader()

documents = reader.loaddata(

Artikel Terkait

Tutorial Lengkap Qdrant: Vector Database untuk Aplikasi AI

Tutorial Lengkap Qdrant: Vector Database untuk Aplikasi AI Qdrant adalah vector database performa tinggi yang dirancang ...

Tutorial Lengkap ChromaDB: Vector Database Sederhana untuk AI

Tutorial Lengkap ChromaDB: Vector Database Sederhana untuk AI ChromaDB adalah open-source vector database yang dirancang...

RAGAS: Framework Evaluasi untuk Pipeline RAG

RAGAS: Framework Evaluasi untuk Pipeline RAG Pendahuluan Retrieval-Augmented Generation (RAG) telah menjadi arsitektur s...

Tutorial Milvus: Distributed Vector Database untuk AI

Tutorial 10: Milvus - Database Vektor Terdistribusi untuk AI Daftar Isi Pendahuluan Prasyarat Arsitektur Milvus [Instala...