list_altİçindekilerexpand_more
- 01İki Farklı Felsefe
- 02LlamaIndex: Veri Odaklı
- 03LangChain: Zincir ve Ajan Odaklı
- 04RAG Pipeline: Kod Karşılaştırması
- 05LlamaIndex ile Beş Satırda RAG
- 06LangChain ile Beş Satırda RAG
- 07Özellik Karşılaştırma Tablosu
- 08Agent ve Araç Desteği
- 09Öğrenme Eğrisi ve Ekosistem
- 10Hangisini Seçmelisin?
- 112026’da Ekosistem Durumu
- 12Kurulum ve İlk Adımlar
- 13Sonuç: Felsefe Seçimi
RAG projesi başlatmak isteyen her Python geliştiricisi aynı soruyla karşılaşıyor: LlamaIndex mi, LangChain mi?
İkisi de açık kaynak Python kütüphanesi, ikisi de LLM ekosistemiyle entegre. Ama tasarım felsefesi, beklenen öğrenme süreci ve hangi soruyu gerçekten iyi yanıtladıkları açısından aralarında ciddi farklar var. RAG mimarisinin temellerini biliyorsanız, bu yazı oradan devam ediyor.

İki Farklı Felsefe
İki kütüphane farklı sorulardan doğdu ve bu ayrım hâlâ kodlarının içinde oturuyor.
LlamaIndex: Veri Odaklı
LlamaIndex (eski adıyla GPT Index), 2022 sonunda Jerry Liu tarafından tek bir soruyu yanıtlamak için başlatıldı: “Kendi verilerinizi bir LLM’e nasıl verimli biçimde bağlarsınız?” Kütüphanenin her katmanı bu soruya göre tasarlanmış. Veriyi yüklemek, parçalamak, indekslemek ve sorgulamak için özel soyutlamalar içeriyor. Retrieval kalitesi, yani modele hangi bilginin sunulduğu, tasarımın merkezinde yer alıyor.
Bu yaklaşım, RAG pipeline’larını birkaç satırda çalıştırmayı mümkün kılıyor. Bedeliyse esneklik: Karmaşık bir akış tasarlamak istediğinizde LlamaIndex sizi kendi kavramsal çerçevesi içinde tutuyor.
LangChain: Zincir ve Ajan Odaklı
LangChain, Harrison Chase öncülüğünde 2022 sonunda farklı bir fikirle ortaya çıktı: LLM çağrılarını, araçları ve hafızayı birbirine zincirlemek. Framework, LLM’yi bir bileşen olarak ele alıyor ve bu bileşeni başka araçlarla orkestre etmeye odaklanıyor.
Bu yaklaşımın getirisi çok daha geniş bir yüzey alan: Web araması, veritabanı sorgusu, API çağrısı, kod çalıştırma — bunların hepsi LangChain zincirinin bir halkası olabiliyor. LangChain hakkında daha fazla bilgi için ilgili yazımıza bakabilirsiniz. Bu genişliğin bedeli de öğrenme eğrisi: Soyutlama katmanları fazla, terminoloji kendine özgü.
RAG Pipeline: Kod Karşılaştırması
Teorik farka rağmen her iki kütüphane de temel bir RAG pipeline kurmak için kullanılabiliyor. Fark, ne kadar kod yazmanız gerektiğinde ve neyi kontrol edebildiğinizde ortaya çıkıyor.
LlamaIndex ile Beş Satırda RAG
# pip install llama-index llama-index-llms-openai llama-index-embeddings-openai
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.llms.openai import OpenAI
# Dökümanları yükle (./data klasöründeki her şey)
documents = SimpleDirectoryReader("./data").load_data()
# Otomatik chunk + embed + indeksleme
index = VectorStoreIndex.from_documents(documents)
# Query engine oluştur ve sorgula
query_engine = index.as_query_engine(llm=OpenAI(model="gpt-4o-mini"))
response = query_engine.query("Vektör veritabanı nedir?")
print(response)
SimpleDirectoryReader PDF, Word, Markdown ve düzinelerce formatı otomatik ayrıştırıyor. VectorStoreIndex.from_documents() chunking, embedding ve depolama adımlarını tek çağrıda hallediyor. Çalışan bir RAG sistemi, birkaç satır.
LangChain ile Beş Satırda RAG
# pip install langchain langchain-openai langchain-community faiss-cpu
from langchain_community.document_loaders import DirectoryLoader
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.vectorstores import FAISS
from langchain.chains import RetrievalQA
# Yükleme + parçalama
loader = DirectoryLoader("./data")
docs = loader.load()
splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)
chunks = splitter.split_documents(docs)
# Embed + vektör depolama
embeddings = OpenAIEmbeddings()
vectorstore = FAISS.from_documents(chunks, embeddings)
# Retrieval zinciri
qa_chain = RetrievalQA.from_chain_type(
llm=ChatOpenAI(model="gpt-4o-mini"),
retriever=vectorstore.as_retriever()
)
result = qa_chain.invoke({"query": "Vektör veritabanı nedir?"})
print(result["result"])
LangChain yaklaşımı daha açık: her adımı kendiniz bağlıyorsunuz. Bu açıklık, bileşenleri değiştirme esnekliği veriyor; FAISS yerine Chroma veya Pinecone kullanmak tek satır değişiklik. Ama aynı zamanda daha fazla kod yazmak anlamına geliyor.
Özellik Karşılaştırma Tablosu
| Kriter | LlamaIndex | LangChain |
|---|---|---|
| Ana odak | Veri indeksleme / RAG | Zincir & ajan orkestrasyonu |
| RAG kurulum kolaylığı | Çok yüksek (az kod) | Orta (açık bileşenler) |
| Retrieval kalitesi | Yüksek (özel retriever’lar) | Orta-Yüksek (genel) |
| Agent desteği | Orta (LlamaAgents) | Güçlü (LangGraph ile) |
| Öğrenme eğrisi | Orta | Dik |
| Belgeleme kalitesi | Kapsamlı, örnekli | Çok kapsamlı, ama dağınık |
| Vektör DB entegrasyonu | 35+ adaptör | 50+ adaptör |
| LLM entegrasyonu | 50+ model | 100+ model ve sağlayıcı |
| Production olgunluğu | Yüksek | Yüksek |
| GitHub yıldızı (2026) | ~40k | ~95k |
| Lisans | MIT | MIT |
Vektör veritabanı entegrasyon seçenekleri için karşılaştırmalı veritabanı yazımıza bakabilirsiniz.
Agent ve Araç Desteği
RAG’ın ötesine geçtiğinizde, yani modelin kendi kararları doğrultusunda araçları çağırmasını istediğinizde, iki framework arasındaki fark belirginleşiyor.
LangChain + LangGraph, bu alanda en olgun çözümü sunuyor. LangGraph, stateful ve döngüsel iş akışlarını grafik tabanlı bir modelle yönetiyor. Bir adımın çıktısı koşullu olarak farklı bir düğüme yönlenebiliyor; hata durumunda otomatik yeniden deneme yapılabiliyor. Karmaşık çok adımlı ajan sistemleri için bu esneklik kritik. Detaylı bir framework karşılaştırması için AI agent framework yazımıza bakabilirsiniz.
LlamaIndex, 2024’te LlamaAgents ve ardından agentic workflow API’sını tanıttı. Temel ajan senaryoları için yeterli, ancak LangGraph’ın durum yönetimi ve checkpoint mekanizmasıyla kıyaslandığında daha kısıtlı. Buna karşın “retrieval + reasoning” akışları için LlamaIndex’in query pipeline’ı LangChain’den daha temiz bir API sunuyor.
LangGraph’ın checkpoint mekanizması şu anlama geliyor: bir ajan zinciri ortasında hata alırsa, kaldığı adımdan devam edebiliyor. “Baştan başlamak zorunda kalmak” yerine persistence layer’a kaydedilen durumdan geri dönüyor. Birden fazla harici API çağrısı içeren uzun akışlarda bu özellik, hem hata toleransı hem maliyet açısından fark yaratıyor. LlamaIndex’in agentic workflow’u bu düzeyde bir persistence sunmuyor; daha çok “tek seferlik retrieval + reasoning” senaryolarına yönelik.
Agentic RAG konusunu daha derinlemesine işlemek isteyenler için dinamik çok adımlı retrieval yazımız başlangıç noktası olabilir.
Öğrenme Eğrisi ve Ekosistem
LlamaIndex, sıfırdan başlayan bir geliştirici için daha hızlı bir ilk başarı deneyimi sunuyor. Temel kavramlar az: Document, Index, QueryEngine. İlk RAG sisteminizi birkaç saatte çalışır hale getirebilirsiniz.
LangChain’in öğrenme eğrisi daha dik, ama bu diklikteki gerekçe var. Kütüphane, zamanla çok sayıda kavramsal katman ekledi: Chain, Agent, Runnable, LCEL (LangChain Expression Language). Her sürümde API’ler değiştiğinden dokümantasyon bazen eskimiş örnekler içeriyor. Stack Overflow ve GitHub Issues’taki sorular incelendiğinde “hangi sürüm, hangi API?” başlığı öne çıkıyor.
Ekosistem büyüklüğü açısından LangChain öne geçiyor: 95k+ GitHub yıldızı, aktif topluluk ve şirketin kendi hosting hizmeti LangSmith, LangGraph Cloud ile production izleme ve deploy imkânı tanıyor. LlamaIndex de LlamaCloud adıyla benzer bir hosted çözüm sunuyor, ancak LangChain’in olgunluğuna henüz ulaşamadı.
Hangisini Seçmelisin?
Karar vermenin en pratik yolu kullanım senaryosundan başlamak:
LlamaIndex seç, eğer:
- Temel hedefin belge tabanlı soru-cevap veya bilgi tabanı sorgusu
- Hızlı prototip veya MVP önceliğin
- Retrieval kalitesini ince ayarlamak istiyorsun (özel re-ranker, hybrid search)
- Ajan karmaşıklığına ihtiyacın yok veya minimal
Somut örnek: Şirket içi döküman arşivini sorgulayan bir destek botu kuruyorsun. PDF’ler, Word dosyaları ve Confluence sayfaları veri kaynağı. Kullanıcı soru soruyor, ilgili belgeden yanıt geliyor. Bu senaryo için LlamaIndex’in VectorStoreIndex + QueryEngine kombinasyonu birkaç günlük çalışmayla production’a hazır hale gelebiliyor.
LangChain seç, eğer:
- Karmaşık çok adımlı ajan zincirleri kuruyorsun
- LangGraph ile stateful, döngüsel iş akışları gerekiyor
- Web arama, veritabanı, API gibi birden fazla harici aracı entegre edeceksin
- Geniş topluluk desteği ve uzun vadeli production olgunluğu önceliğin
Somut örnek: Kullanıcının sorusunu anlayan, gerekirse web araması yapan, veritabanından veri çeken ve farklı adımlara dallanan bir müşteri hizmetleri ajanı. Burada LangGraph’ın düğüm tabanlı akış yönetimi ve checkpoint persistence’ı LlamaIndex’ten çok daha uygun.
Her ikisini birlikte kullan, eğer:
- Retrieval katmanı için LlamaIndex’in kaliteli indeksleme altyapısını
- Orkestrasyon ve ajan yönetimi için LangChain/LangGraph’ı
- istiyorsan. Bu kombinasyon 2025-2026’da production ortamlarında artan sıklıkla görülüyor.
2026’da Ekosistem Durumu
İki kütüphane de aktif geliştirme altında. 2025 sonu itibarıyla LlamaIndex, veri bağlantı katmanına (data connectors) ve multi-modal retrieval’a yatırım yaptı. LangChain tarafında LangGraph 1.x, production-grade stateful agent’lar için gerçek bir seçenek haline geldi.
Dikkat çekici bir eğilim: kurumsal projeler giderek daha az “tek framework” kararı veriyor. Bunun yerine retrieval katmanı (LlamaIndex veya direkt vektör DB) ile orkestrasyon katmanı (LangGraph, açık agent kütüphaneleri) ayrı seçiliyor.
Benchmark karşılaştırmalarına bakıldığında LlamaIndex’in öne sürdüğü şey RAG kalitesi ölçümleri: RAGAS veya TruLens gibi RAG değerlendirme çerçeveleriyle entegrasyonu doğrudan pakete dahil. LangChain ise LangSmith aracılığıyla her zincir çağrısını trace etme ve production’da hata ayıklama konusunda güçlü bir izleme altyapısı sunuyor. Hangi metriğin daha kritik olduğu projenin doğasına bağlı.
Kurumsal tercihler 2025-2026’da biraz daha netleşti. Fintech ve hukuk gibi veri yoğun, hassas retrieval gerektiren sektörler LlamaIndex’i retrieval katmanı olarak kullanırken, orchestration için LangGraph’a yaslandı. Startup ve araştırma ekipleri ise LangChain’in geniş ekosistemine ve topluluk desteğine ağırlık verdi. Her iki kamptaki geliştirici anketleri benzer bir örüntü gösteriyor: ilk ay LlamaIndex daha kolay, altı ay sonra LangChain’e geçiş ya da hibrit bir mimariye evrilme yaygın.
Her iki kütüphane de MIT lisanslı olduğundan hibrit kullanımın önünde lisans engeli yok. Proje büyüdükçe bu esneklik değer kazanıyor.
Açık kaynak LLM çıkarım motorlarıyla ilgili bağlam için vLLM yazımıza bakabilirsiniz.
Kurulum ve İlk Adımlar
Her iki kütüphane de aktif PyPI paketlerine sahip:
# LlamaIndex
pip install llama-index llama-index-llms-openai llama-index-embeddings-openai
# LangChain
pip install langchain langchain-openai langchain-community faiss-cpu
LlamaIndex 0.10+ sürümünden itibaren modüler bir paket yapısına geçti: temel llama-index paketi artık minimal, LLM veya embedding entegrasyonlarını ayrı paketlerle kuruyorsunuz. Bu yapı paket boyutunu küçültüyor, ancak başlangıçta hangi ek paketlerin gerektiğini bilmek gerekiyor.
LangChain da benzer bir modülerleşmeye gitti: langchain-community, langchain-openai gibi sağlayıcıya özgü paketler core’dan ayrıldı.
Sonuç: Felsefe Seçimi
LlamaIndex ve LangChain aynı problemi çözmüyor. İkisini de “RAG kütüphanesi” diye tanımlamak mümkün ama bu tanım ikisine de haksızlık ediyor.
RAG kalitesi öncelikliyse ve ajan karmaşıklığına henüz ihtiyaç yoksa LlamaIndex daha az kurulum yükü ile başlatıyor. Karmaşık çok adımlı akışlar, stateful ajan sistemleri veya geniş araç entegrasyonu gerekiyorsa LangChain ve LangGraph daha sağlam bir temel sunuyor.
Her iki kütüphanenin API’leri hızlı değişiyor. Yılda birkaç kez breaking change ile karşılaşmaya hazır olun. Ama bu uyarı hangi framework’ü seçtiğinizden bağımsız.



