TPToolpazar

Yazılım Geliştirici

LangChain ve LlamaIndex Rehberi

LangChain ve LlamaIndex framework karşılaştırması, LCEL/LangGraph, RAG mimarisi, agent zincirleri ve Türkçe projelerde pratik kullanım örnekleri.

LangChain ve LlamaIndex, LLM uygulamaları yazmayı kolaylaştıran iki ana orchestration framework’üdür. RAG, agent, çoklu-LLM zincirleri, tool-use gibi yaygın kalıpları sıfırdan yazmak yerine hazır blokları birleştirirsiniz. Bu rehber iki framework’ü karşılaştırır, ne zaman hangisini seçmeniz gerektiğini ve Türkçe projelerde pratik kullanım örneklerini anlatır.

Niye Framework Kullanmalı (Veya Kullanmamalı)?

Avantajları:

  • Hızlı prototipleme — basit RAG 30 satır kodla.
  • LLM/Vector DB sağlayıcı bağımsızlığı — Claude’dan GPT’ye geçiş bir parametre.
  • Hazır integrasyonlar — 100+ LLM, 50+ vector DB, 200+ tool.
  • Topluluk örnekleri ve dokümanı zengin.

Dezavantajları:

  • Soyutlama maliyeti — basit görevde fazla katman.
  • Hızlı değişen API — güncel olmak iş.
  • Hata ayıklama zor — hata mesajları derinlerden gelir.

Pratik öneri: prototip için framework, üretim için “sadece SDK + birkaç yardımcı fonksiyon” kalıbı yaygın. Anthropic ve OpenAI’ın resmi SDK’ları + Pydantic/Zod yapı doğrulayıcısı çoğu projeye yeter.

LangChain Nedir?

LangChain (Python ve JS), “chain” (zincir) kavramı etrafında kuruludur: bir LLM çağrısının çıktısını başka bir çağrıya/işlemine bağlamak için LCEL (LangChain Expression Language) kullanılır. LangGraph alt-projesi karmaşık agentic akışlar için graf-tabanlı orchestration sunar.

# Python örnek — basit zincir
from langchain_anthropic import ChatAnthropic
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser

prompt = ChatPromptTemplate.from_template(
  "Şu konuyu Türkçe 3 madde halinde özetle: {topic}"
)
chain = prompt | ChatAnthropic(model="claude-sonnet-4-5") | StrOutputParser()
print(chain.invoke({"topic": "Konut kredisi 2026"}))

LlamaIndex Nedir?

LlamaIndex, RAG ve veri-yoğun LLM uygulamalarına odaklanmış framework. “Index” (vector store + metadata + sorgu motoru) yapı taşı. LangChain’den daha kıdemli RAG soyutlamaları ve veri yükleyiciler (200+ format) sunar.

# Python örnek — basit RAG
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from llama_index.llms.anthropic import Anthropic
from llama_index.embeddings.openai import OpenAIEmbedding

documents = SimpleDirectoryReader("./tr-belgeler").load_data()
index = VectorStoreIndex.from_documents(
  documents,
  embed_model=OpenAIEmbedding(model="text-embedding-3-small")
)
qe = index.as_query_engine(llm=Anthropic(model="claude-sonnet-4-5"))
print(qe.query("KDV oranlarındaki son değişiklikler nelerdir?"))

Hangisini Seçmeli?

  • RAG ana iş ise: LlamaIndex daha kısa kodla profesyonel sonuç verir.
  • Karmaşık agent / tool zincirleri: LangGraph veya LangChain LCEL daha esnek.
  • Hızlı prototip / öğrenme: LangChain’in örnek havuzu ve YouTube kaynağı geniş.
  • Üretim hazırlığı: Üretim için tipik kalıp framework prototipi → kritik yolu sade SDK ile yeniden yazma.

Alternatifler: Microsoft Semantic Kernel (.NET + Python), Haystack (Almanca araştırma kökenli, kurumsal RAG için güçlü), Anthropic’in resmi SDK’sı + tool-use (en sade, en şeffaf).

Türkçe Veriyle Pratik İpuçları

  • Embedding modeli: çoklu-dilli olsun (text-embedding-3, BGE-M3, Qwen3-Embedding). Türkçe-only embedding karışık veride kayıp yapar.
  • Text splitter: LangChain’inRecursiveCharacterTextSplitter’ı Türkçe cümle/paragraf sınırlarını korur. tiktoken tabanlı token-bazlı bölme da iyi.
  • Metadata filtre: kaynak, tarih, kategori metadatalarını kullanın; “sadece 2026 mevzuatı” filtresi RAG kalitesini artırır.
  • Trace / observability: LangSmith veya LangFuse ile trace tutun. Halüsinasyon ve gecikme analizi kritik.

Sık Sorulan Sorular

Yeni başlıyorum, hangisini öğreneyim?
RAG odaklıysanız LlamaIndex; genel LLM uygulaması ise LangChain. İkisinin de bir hafta içinde öğrenip kıyaslamak makul.
LangChain üretim için stabil mi?
API olgunlaştı (LCEL ile birlikte). Ancak büyük major sürümler arasında breaking change geçmişi var. Pin etmek + düzenli güncelleme stratejisi izleyin.
Sadece Anthropic SDK ile yazsam yetmez mi?
Çoğu basit proje için yeter. Karmaşık RAG, çok-agent, çok-vector-DB karışık projelerde framework kazandırır. Anthropic SDK + Pydantic + birkaç yardımcı fonksiyon orta karmaşıklığa kadar ideal.
LangGraph ne zaman gerekli?
Multi-agent koordinasyon, koşullu döngüler, insan-in-the-loop adımları olan akışlar için. Basit lineer zincir LCEL ile yeter.
Türkçe için özel framework var mı?
Yerli orchestration framework henüz yok; LangChain ve LlamaIndex Türkçe çalışır. Trendyol, Akbank gibi büyük TR şirketleri kendi içinde sade SDK kalıbını tercih ediyor.
Maliyeti nasıl izlerim?
LangSmith / LangFuse trace + cost tracking. Veya Anthropic ve OpenAI’ın kendi dashboardları. Üretim için trace mutlaka.

İlgili rehberler

  • RAG Rehberi RAG mimarisi, embedding, vector DB seçenekleri (pgvector, Qdrant, Pinecone), Tür
  • Agentik Yapay Zeka Rehberi Agent nedir, sohbet botundan farkı, kod/tarayıcı/araştırma agent türleri, MCP ve
  • Prompt Mühendisliği Rehberi Few-shot, chain of thought, format kontrolü, Türkçe için ipuçları — LLM'lerden s