RAG PDF parsing Docling LlamaParse Unstructured LLM vektör veritabanı

Docling vs LlamaParse vs Unstructured: PDF Parsing 2026

Orta
person Yapay Zeka Uzmanı
list_altİçindekilerexpand_more
  1. 01Neden PDF Parsing Bu Kadar Zor?
  2. 02Üç Araç: Hızlı Tanıtım
  3. 03Docling
  4. 04LlamaParse
  5. 05Unstructured.io
  6. 06Karşılaştırma Tablosu
  7. 07Kurulum ve Kod Örnekleri
  8. 08Docling ile PDF Parsing
  9. 09LlamaParse ile PDF Parsing
  10. 10Unstructured.io (Yerel Mod)
  11. 11Tablo, Şema ve Görsel Çıkarımı
  12. 12RAG Pipeline’ına Entegrasyon
  13. 13LangChain ile Docling
  14. 14LlamaIndex ile LlamaParse (Native)
  15. 15Unstructured.io ile Karma Format Pipeline
  16. 16Hangisini Seçmelisiniz?
  17. 17Üç Aracı Birlikte Kullanmak

Docling vs LlamaParse vs Unstructured: PDF parsing araçlarını karşılaştıran editorial illüstrasyon

Editorial tech-magazine cover illustration about document parsing and artificial intelligence, scattered digital documents transforming into structured glowing data flows, text extraction beams in cyan light, abstract artificial-intelligence motifs (glowing neural networks, flowing data, subtle circuitry), sophisticated modern concept art, clean balanced composition, soft cinematic studio lighting, rich depth of field, premium color grading in deep navy blues with cyan and magenta accents, highly detailed, polished editorial 8k. No text, no words, no letters, no captions, no logos, no watermark, no UI.

RAG pipeline’ı kurarken ilk kritik adım belge parsing’dir. “Garbage in, garbage out” ilkesi tam burada geçerli: dokümanı hatalı çıkaran bir parser, downstream’de ne kadar güçlü bir LLM kullanırsanız kullanın anlamsız yanıtlar üretir. Karmaşık tablolar, iki sütunlu akademik makaleler, taranmış sayfalar ve gömülü görseller içeren PDF’leri klasik PyPDF2 veya pdfminer güvenilir biçimde işleyemiyor.

Bu soruna 2026’da üç farklı yaklaşım öne çıkıyor: IBM Research’ün açık kaynak aracı Docling, LlamaIndex ekosisteminin cloud parsing servisi LlamaParse ve çok formatlı işleme odaklı Unstructured.io. Bu yazı üçünü kurulum, tablo çıkarımı, OCR kalitesi, maliyet ve RAG entegrasyonu açısından karşılaştırıyor.


Neden PDF Parsing Bu Kadar Zor?

PDF formatı baskıya hazır bir görsel düzenleme standardıdır; metin akışı için tasarlanmamış. Bir PDF dosyasını açtığınızda gördüğünüz paragraflar, altta yatan yapıda koordinat tabanlı konumlandırılmış karakter dizilerinden oluşur. Satır sonu nerede, sütun nerede, başlık mı yoksa gövde metni mi; bunların hiçbiri PDF spesifikasyonunda anlamsal olarak işaretlenmez.

Pratikte bu şu anlama gelir:

  • Dijital PDF: Metin katmanı varsa yüzeysel araçlar çalışıyor gibi görünür, ancak iki sütunlu layout’ta sütunlar birbirine karışır, tablo hücreleri yanlış sırayla okunur.
  • Taranmış PDF: Metin katmanı hiç yoktur, görüntü vardır. OCR olmadan tek bir kelime çıkaramazsınız.
  • Karma belgeler: Dijital metin ile taranmış sayfaların iç içe olduğu kurumsal belgeler, her iki durumu aynı anda yönetmeyi gerektirir.
  • Karmaşık tablolar: Birleştirilmiş hücreler, iç içe tablolar, başlıksız tablolar; klasik regex tabanlı yaklaşımlar bunları doğru ayrıştıramaz.

Bozuk parsing doğrudan embedding kalitesini etkiler. Hatalı çıkarılmış metin parçaları benzer içeriği farklı vektör uzaylarına iter, RAG sisteminin alaka puanı hesapları çöker. LLM ne kadar iyi olursa olsun, bozuk girdi bozuk çıktı verir.


Üç Araç: Hızlı Tanıtım

Docling

IBM Research’ün 2024 sonunda açık kaynak yaptığı Docling, yerel çalışan, API gerektirmeyen bir belge dönüştürme aracı. Farkını yapan şey layout analizini DocLayNet adlı görsel bir model üzerinden yapması: başlık, paragraf, tablo, şekil gibi öğeleri piksel düzeyinde ayırt ediyor.

Öne çıkan özellikler:

  • Markdown, JSON ve HTML çıktı formatları
  • Tablo çıkarımı (başlık hizalama ve birleşik hücre desteği)
  • OCR entegrasyonu: EasyOCR veya Tesseract ile taranmış PDF desteği
  • DOCX, PPTX, HTML ve görüntü formatı desteği
  • MIT lisansı, tamamen ücretsiz
  • LangChain ve LlamaIndex ile doğrudan entegrasyon
pip install docling

LlamaParse

LlamaParse, LlamaIndex ekosisteminin resmi cloud PDF parsing servisi. PDF dosyanız LlamaCloud sunucularına gönderilir, parse edilmiş markdown veya JSON olarak geri döner. Karmaşık tablo yapılarını ve çok sütunlu layout’ları çözümlemek için LLM destekli bir parsing katmanı kullanıyor.

Öne çıkan özellikler:

  • Gelişmiş tablo ve karmaşık layout desteği (LLM destekli)
  • Markdown ve JSON çıktı
  • LlamaIndex ve LangChain ile native entegrasyon
  • Ücretsiz tier: 1.000 sayfa/gün; ücretli: sayfa başı ~$0,003 (kaynak: LlamaCloud fiyatlandırma)
  • Python paketi: llama-parse
pip install llama-parse llama-index-core

Unstructured.io

Unstructured.io, yalnızca PDF değil 20’den fazla format işleyen bir belge ayrıştırma çerçevesi. Hem açık kaynak yerel sürümü hem de kurumsal API planları var. “hi_res” modu gelişmiş layout analizi ve OCR için Detectron2 tabanlı model kullanıyor.

Öne çıkan özellikler:

  • PDF, Word, HTML, e-posta (EML/MSG), PowerPoint, Excel ve daha fazlası
  • hi_res modunda tablo tanıma ve layout analizi
  • Yerel kurulum (ücretsiz) + Unstructured API (ücretli, kurumsal)
  • LangChain ve LlamaIndex entegrasyonu
  • Chroma, Pinecone, Weaviate gibi vektör veritabanı konnektörleri
pip install "unstructured[pdf]"

Karşılaştırma Tablosu

ÖzellikDoclingLlamaParseUnstructured.io
DeploymentYerel (open-source)Cloud APIYerel + Cloud API
FiyatÜcretsiz1.000 sayfa/gün ücretsiz, sonrası ~$0,003/sayfaYerel ücretsiz; API ücretli
Tablo çıkarımıİyiÇok iyi (LLM destekli)Çok iyi (hi_res mod)
Taranmış PDF (OCR)EasyOCR / TesseractAPI içinde (bulut)Tesseract / unstructured
Çok format desteğiPDF, DOCX, PPTX, HTMLAğırlıklı PDF20+ format
Çıktı formatıMarkdown, JSON, HTMLMarkdown, JSONJSON, metin
LangChain entegrasyonuEvetEvetEvet
LlamaIndex entegrasyonuEvetEvet (native)Evet
Veri gizliliğiTam (yerel işleme)Veri API’ye gönderilirYerel seçenek mevcut
LisansMITTescilli (cloud)Apache 2.0 (yerel)

Bu tablo genel yetenek karşılaştırmasıdır. Fiyat verileri için: LlamaCloud pricing, Unstructured API pricing. Hız ve doğruluk sonuçları doküman tipine ve donanıma göre değişir.


Kurulum ve Kod Örnekleri

Docling ile PDF Parsing

from docling.document_converter import DocumentConverter

converter = DocumentConverter()
result = converter.convert("rapor.pdf")

# Markdown çıktısı al
markdown_text = result.document.export_to_markdown()
print(markdown_text)

# JSON çıktısı için
json_data = result.document.export_to_dict()

Docling’in en çok tercih edilen özelliği tablo yapısını koruyarak Markdown’a dönüştürmesi. Birleşik hücreleri olan tablolar bile çoğu durumda doğru Markdown tablosuna dönüşüyor.

LlamaParse ile PDF Parsing

from llama_parse import LlamaParse
from llama_index.core import SimpleDirectoryReader

parser = LlamaParse(
    api_key="<LLAMA_CLOUD_API_KEY>",
    result_type="markdown",
    verbose=True
)

# Tek dosya
documents = parser.load_data("rapor.pdf")

# Dizin içindeki tüm PDF'ler
reader = SimpleDirectoryReader(
    "./belgeler",
    file_extractor={".pdf": parser}
)
documents = reader.load_data()

LlamaParse karmaşık layout’larda tablo yapısını LLM çıkarımıyla yorumladığı için dijital PDF’lerde doğruluk oranı yüksek. Her sayfa API’ye gönderildiğinden veri gizliliği kritikse bu önemli bir kısıt.

Unstructured.io (Yerel Mod)

from unstructured.partition.pdf import partition_pdf

elements = partition_pdf(
    filename="rapor.pdf",
    strategy="hi_res",          # Gelişmiş layout analizi
    infer_table_structure=True  # Tablo yapısını çıkar
)

for element in elements:
    print(type(element).__name__, ":", element.text[:100])

hi_res modu ek model indirmesi gerektiriyor ve “fast” moda göre belirgin şekilde yavaş; ancak tablo ve çok sütunlu layout’larda çok daha doğru sonuç veriyor. Yüksek hacimli işlem için “fast” mod çoğu durumda yeterli.


Tablo, Şema ve Görsel Çıkarımı

Üç araç arasındaki farklar en çok tablo çıkarımında belirginleşiyor.

LlamaParse’ın LLM destekli yaklaşımı, başlıksız veya birleşik hücreli tablolarda en tutarlı Markdown tablosu üretiyor. Unstructured’ın hi_res modu benzer kalitede çalışıyor, ama yerel makinede çalıştığı için donanım gereksinimi daha yüksek. Docling’in DocLayNet modeli iki sütunlu akademik makalelerde özellikle güçlü.

Grafik ve şemalar farklı bir mesele. Hiçbiri PDF içindeki grafikleri anlamsal olarak yorumlayamıyor. Görseller metadata (resim koordinatları, boyut) olarak çıkarılıyor ya da görüntü dosyası olarak kaydediliyor. Çok modlu yapay zeka tabanlı pipeline gerekiyorsa bu aşamada ayrı bir vision model şart. Multimodal RAG yaklaşımı bu konuyu ayrıntılı ele alıyor.

OCR tarafında: Docling EasyOCR veya Tesseract arasında seçim yapma esnekliği tanıyor. LlamaParse OCR’ı API tarafında hallediyor, yerel kurulum gerekmez. Unstructured, Tesseract ile geliyor; strategy="ocr_only" modu da mevcut.

Çok dilli belgeler söz konusu olduğunda Docling ve Unstructured, OCR engine’i değiştirerek farklı dil desteği sağlıyor. LlamaParse çok dilli belgeleri API içinde otomatik algılıyor.


RAG Pipeline’ına Entegrasyon

LangChain ile Docling

from langchain_docling import DoclingLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_chroma import Chroma

# Belge yükleme ve parsing
loader = DoclingLoader("belgeler/")
docs = loader.load()

# Chunklama
splitter = RecursiveCharacterTextSplitter(
    chunk_size=1000,
    chunk_overlap=200
)
chunks = splitter.split_documents(docs)

# Vektör veritabanına yükleme
vectorstore = Chroma.from_documents(chunks, OpenAIEmbeddings())
retriever = vectorstore.as_retriever()

Parsing sonrası chunklama ve vektör veritabanı yükleme adımları için RAG Nasıl Kurulur rehberine bakabilirsiniz.

LlamaIndex ile LlamaParse (Native)

LlamaParse, LlamaIndex için en sorunsuz entegrasyonu sunuyor. Parsing ve indeksleme aynı ekosistem içinde kalıyor:

from llama_index.core import VectorStoreIndex
from llama_parse import LlamaParse
from llama_index.core import SimpleDirectoryReader

parser = LlamaParse(result_type="markdown")
reader = SimpleDirectoryReader(
    "./belgeler",
    file_extractor={".pdf": parser}
)

documents = reader.load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()

response = query_engine.query("Q3 geliri ne kadar?")
print(response)

LlamaIndex vs LangChain karşılaştırmasında hangi framework’ün hangi durumda daha uygun olduğunu inceleyebilirsiniz.

Unstructured.io ile Karma Format Pipeline

Unstructured’ın asıl gücü veri kaynağı türünden bağımsız tek bir pipeline kurmanıza izin vermesi:

from unstructured.partition.auto import partition
from unstructured.chunking.title import chunk_by_title

# PDF, DOCX, HTML veya e-posta fark etmez
elements = partition("belge.docx", strategy="hi_res")

# Başlık bazlı chunklama
chunks = chunk_by_title(elements, max_characters=1500)

# Her chunk bir LangChain Document'a dönüştürülebilir
from langchain_core.documents import Document
langchain_docs = [
    Document(page_content=str(chunk)) for chunk in chunks
]

Hangisini Seçmelisiniz?

Kararı veren iki faktör var: veri gizliliği ve doküman türü çeşitliliği.

Docling: Verilerin dışarıya çıkmaması gerekiyorsa, ölçek büyükse ya da çok dilli akademik makaleler işliyorsanız Docling doğal tercih. MIT lisansı kurumsal ortamlarda lisans kaygısını ortadan kaldırıyor.

LlamaParse: Karmaşık finans tabloları, yasal dokümanlar veya teknik raporlar işliyorsanız ve cloud API kabul edilebilirse LlamaParse en yüksek tablo doğruluğunu veriyor. LlamaIndex zaten kullanıyorsanız ek kurulum neredeyse sıfır.

Unstructured.io: PDF dışı kaynakları da (e-posta arşivi, Word, HTML) aynı pipeline’a dahil etmek istiyorsanız Unstructured kaçınılmaz seçim. Kurumsal destek gerektiren projelerde enterprise planı da var.

SenaryoÖneri
Veri gizliliği / yerel işleme zorunluDocling
Karmaşık tablolar + cloud API kabul edilebilirLlamaParse
PDF + DOCX + HTML + e-posta karışık kaynakUnstructured.io
LlamaIndex native pipelineLlamaParse
Yüksek hacim, düşük maliyetDocling
Kurumsal destek gereksinimiUnstructured.io (enterprise)

Üç Aracı Birlikte Kullanmak

Seçim ikili olmak zorunda değil. Pratikte hibrit yaklaşımlar da işe yarar: standart dijital PDF’ler için Docling, karmaşık tablo içeren kritik dokümanlar için LlamaParse, PDF dışı formatlar için Unstructured. Ortak LangChain veya LlamaIndex arayüzü üzerinden her araçtan gelen dokümanları aynı vektör veritabanına besleyebilirsiniz.

Parsing adımında kalite kontrol için küçük bir doğrulama seti tutmak işe yarıyor: birkaç temsili belgeyi her araçla çalıştırın, tablo çıktılarını karşılaştırın, embedding benzerlik skorlarına bakın. “Hangi araç genel olarak daha iyi?” sorusundan çok “hangi araç benim doküman tipimde daha iyi?” sorusu doğru çerçeve.

Embedding modelleri seçimi de parsing kalitesiyle doğrudan bağlantılı: çok dilli dokümanlarla çalışıyorsanız dil-agnostik embedding modeli tercih etmek, parsing katmanındaki küçük hataların etkisini azaltır.

auto_stories İlgili Makaleler