PDF'i Markdown'a Dönüştürerek LLM Token'larından Tasarruf Edin: MarkItDown Rehberi
PDF'leri doğrudan Claude'a ya da herhangi bir LLM'e vermek sessizce token tüketir: her sayfa aynı zamanda görüntüye de dönüştürülür. Dosyayı önce Microsoft'un ücretsiz açık kaynak aracı MarkItDown ile Markdown'a çevirin ve token faturanızı %80'e varan oranda azaltın. CLI, Python ve MCP kurulumuyla eksiksiz rehber.
20 sayfalık bir PDF'i Claude'a bırakıyorsunuz, tek bir soru soruyorsunuz, cevap da sorunsuz geliyor. Görmediğiniz şey ise fatura. Sorunuz daha okunmadan önce bile, o belge on binlerce token'ı yutabilir. Bunu bir ekip ölçeğinde günde birkaç kez yapın, temiz metinle de gayet mutlu olacak bir modele ham PDF'leri kürekle doldurmak için gerçek para ödüyorsunuz demektir.
Ücretsiz bir çözüm var ve baştan beri ortada duruyor. Dosyayı önce Markdown'a çevirin. Bu rehber, PDF'lerin neden bu kadar pahalı olduğunu, ne kadar tasarruf ettiğinizi ve dönüşümü Microsoft'un açık kaynak dönüştürücüsü MarkItDown ile tek bir komutta nasıl yapacağınızı tam olarak açıklıyor.
Bir PDF neden bu kadar çok token harcar
İşte kimsenin size anlatmadığı kısım. Bir PDF'i bir LLM'e verdiğinizde, o sizin okuduğunuz gibi okunmaz. Anthropic'in kendi PDF dokümantasyonuna göre sistem her bir sayfa için iki şey yapar:
- Sayfadaki metni çıkarır.
- Sayfanın tamamını bir görüntüye dönüştürür, ardından bu görüntüyü metinle birlikte gönderir.
İşte bu ikinci adım, sessiz token kuyusudur. Model yalnızca kelimeleri okumakla kalmaz, grafikleri, tabloları ve düzeni anlayabilmek için her sayfanın bir fotoğrafına da bakar. İkisini de ödersiniz.
Anthropic'in rakamları maliyeti somutlaştırıyor. Tek başına çıkarılan metin, yoğunluğa bağlı olarak sayfa başına 1.500 ila 3.000 token tutar. Bunun üzerine her sayfa bir görüntü maliyeti de taşır. Amazon Bedrock entegrasyonundan çarpıcı bir veri: tam görsel PDF modu, 3 sayfalık bir PDF için yaklaşık 7.000 token kullanırken, aynı üç sayfanın düz metin çıkarımı yaklaşık 1.000 token kullanır. Bu, 7 kat bir fark ve tamamen sayfa başına görüntülerden kaynaklanıyor.
Bunu gerçek bir belgeye ölçekleyin. Yoğun 20 sayfalık bir rapor, her sayfa görüntüye dönüştürüldüğünde 40.000 ile 70.000 token arasında herhangi bir yere oturabilir. Henüz hiçbir şey sormadınız. Sadece dosyayı açtınız.
Turuncu kırmızı blok tamamen fazladan yük: sayfada görülmeye değer görsel olsun ya da olmasın, her sayfa için bir görüntü.
Çözüm: bunun yerine temiz Markdown verin
Çoğu belgenin görülmeye ihtiyacı yoktur. Bir sözleşme, bir teknik şartname, bir araştırma makalesi, madde madde dolu bir slayt destesi: bunların hepsi düzen giymiş metindir. Düzeni soyup yapıyı korursanız, model gerçekten ihtiyaç duyduğu hiçbir şeyi kaybetmez.
İşte Markdown'ın size verdiği tam olarak budur. Bir formatın düz metne olabileceği kadar yakındır, ama yine de önemli olan yapıyı kodlar: başlıklar, listeler, tablolar, bağlantılar, kod blokları, kalın ve vurgu. Yaygın LLM'ler devasa miktarda Markdown üzerinde eğitildiğinden, onu doğal olarak ve zahmetsizce ayrıştırırlar. MarkItDown'ı geliştiren Microsoft, durumu açıkça ifade ediyor: Markdown "düz metne son derece yakın, çok az işaretleme veya biçimlendirme içeren, ama yine de önemli belge yapısını temsil etmenin bir yolunu sunan" bir formattır.
PDF'inizi Markdown'a dönüştürün ve sayfa başına görüntüleri tamamen bırakın. Görüntüye dönüştürülmüş sayfalar yok, görme yükü yok, sadece modelin zaten okuyacağı yapılandırılmış metin var. Tasarrufun geldiği yer burası.
Tanışın: MarkItDown, Microsoft'un ücretsiz dönüştürücüsü
MarkItDown, Microsoft'un izin verici MIT lisansı altında yayınladığı hafif bir Python aracıdır ve 135.000'den fazla yıldızıyla GitHub'daki en çok yıldız alan geliştirici araçlarından biridir. Tek işi, dağınık gerçek dünya dosyalarını bir LLM'in ucuza okuyabileceği temiz Markdown'a çevirmektir.
Yalnızca bir PDF aracı değildir. Uzun bir format listesini dönüştürür:
- PDF belgeleri
- Word (
.docx) - Excel (
.xlsx,.xls) - PowerPoint (
.pptx) - Görüntüler, resmin içindeki metin için EXIF meta verileri ve OCR ile
- Ses, meta verileri ve konuşma transkripsiyonu ile
- HTML sayfaları
- CSV, JSON ve XML verileri
- ZIP arşivleri (içeriğini gezer)
- YouTube URL'leri (transkripti çeker)
- EPub e-kitapları
- Outlook mesajları (
.msg)
Tek bir araç, tek bir çıktı formatı, aksi takdirde bir modele ağır bir ikili dosya olarak fırlatabileceğiniz neredeyse her şey için.
MarkItDown'ı 30 saniyede kurun
Normal bir Python paketidir. Her şeyi almak için all ekstrasını kurun:
pip install 'markitdown[all]'
Yalnızca birkaç formatla ilgileniyorsanız ve daha hafif bir kurulum istiyorsanız, sadece o ekstraları isteyin:
pip install 'markitdown[pdf, docx, pptx]'
Mevcut seçenekler arasında diğerlerinin yanı sıra [all], [pdf], [docx], [pptx], [xlsx], [xls], [outlook], [audio-transcription] ve [youtube-transcription] bulunur.
Komut satırından bir PDF'i Markdown'a dönüştürün
En hızlı yol CLI'dır. Onu bir dosyaya yönlendirin ve çıktıyı istediğiniz yere gönderin:
markitdown report.pdf -o report.md
Ya da aynı işi yapan basit bir yönlendirme kullanın:
markitdown report.pdf > report.md
Bir dosyayı doğrudan boruya (pipe) da gönderebilirsiniz:
cat report.pdf | markitdown
İşte tüm iş akışı bu. Artık herhangi bir modele verebileceğiniz, bir depoya bırakabileceğiniz ya da bir sohbete yapıştırabileceğiniz bir report.md dosyanız var ve maliyeti orijinalinin küçük bir kesri.
Ağır dosya girer, ajana hazır Markdown çıkar, arada tek bir komut.
Python'da dönüştürün (ve bütün bir klasörü toplu işleyin)
Bunu bir boru hattına bağlıyorsanız, Python API'si de aynı derecede kısadır:
from markitdown import MarkItDown
md = MarkItDown(enable_plugins=False)
result = md.convert("report.pdf")
print(result.text_content)
result.text_content, diske yazmaya ya da bir modele beslemeye hazır Markdown dizinizdir. Bütün bir belge klasörünü tek seferde dönüştürmek için üzerinde döngü kurun:
from pathlib import Path
from markitdown import MarkItDown
md = MarkItDown(enable_plugins=False)
for src in Path("docs").glob("*.pdf"):
out = src.with_suffix(".md")
out.write_text(md.convert(str(src)).text_content, encoding="utf-8")
Bunu bir kez çalıştırın ve pahalı PDF'lerden oluşan bir dizin, herhangi bir ajanın görme vergisini yeniden ödemeden her turda okuyabileceği ucuz, yapılandırılmış Markdown'dan oluşan bir dizine dönüşür.
Gerçekte ne kadar tasarruf ediyorsunuz?
Dürüst cevap: belgeye bağlı, ama kazanç büyük ve tutarlı. İşte tipik, metin ağırlıklı bir dosya için genel görünümü.
| Modele gönderilen PDF | Markdown'a dönüştürülmüş | |
|---|---|---|
| Çıkarılan metin | evet | evet |
| Sayfa başına bir görüntü | evet, her sayfa | hayır |
| Görme yükü | tam | hiç yok |
| 3 sayfalık belge (Bedrock rakamı) | ~7.000 token | ~1.000 token |
| 20 sayfalık belge (tahmini) | 40.000 ila 70.000 token | 10.000 ila 15.000 token |
Değeri kelimelerinde olan bir belge için, Markdown'a dönüştürmek token maliyetini düzenli olarak yarıdan çok daha fazla, sıklıkla da %80 ya da daha fazla azaltır. Tasarruf sihirli değildir: model yalnızca metne ihtiyaç duyduğunda her sayfanın bir fotoğrafını göndermek için artık para ödemiyorsunuz, hepsi bu.
Markdown elbette tam anlamıyla ücretsiz değildir. Çıkarılan metin yine de token harcar. Ama o metin maliyeti, zaten ödeyeceğiniz tabandır. Kaldırdığınız şey, onun üstüne oturan sayfa başına görüntü yığınıdır.
PDF'i ne zaman saklamalı (aşırı optimize etmeyin)
Dönüştürme doğru varsayılan tercihtir, evrensel bir kural değil. Görsel düzenin tam da mesele olduğu durumlarda orijinal PDF'i saklayın:
- Modelin gerçekten okumasına ihtiyaç duyduğunuz grafikler ve çizelgeler. Anlam bir çubuk grafikte yaşıyorsa, görüntü gerçek bir iş yapıyordur.
- Metnin görüntüsü olan taranmış belgeler. MarkItDown bunları OCR'dan geçirebilir, ama tanıma şüpheliyse, modelin kendi görüşü sayfayı daha güvenilir okuyabilir.
- Konum ve hizalamanın Markdown'da düzleşen bir anlam taşıdığı karmaşık görsel tablolar ya da formlar.
- Düzenin tam da içerik olduğu infografikler ve tasarım ağırlıklı sayfalar.
Geri kalan her şey için, ki bu çoğu belge demek, Markdown kazanır.
Soru hiçbir zaman soyut anlamda "PDF mi Markdown mı" değildir. Soru şudur: "modelin bu sayfayı görmeye mi yoksa sadece okumaya mı ihtiyacı var?"
PDF'lerin ötesinde: Word, Excel, PowerPoint, hatta YouTube
Aynı tek satırlık komut, belge yığınınızın geri kalanında da çalışır. Bir Word belgesi, bir elektronik tablo, bir slayt destesi, bir web sayfası, hatta bir YouTube videosunun transkripti bile aynı şekilde temiz Markdown'a indirgenir:
markitdown deck.pptx -o deck.md
markitdown budget.xlsx -o budget.md
markitdown https://www.youtube.com/watch?v=VIDEO_ID -o transcript.md
İş akışınız düzenli olarak Office dosyalarından ya da web'den bağlam çekip onu bir modele vermeyi içeriyorsa, her şeyi önce Markdown'a standartlaştırmak edinebileceğiniz en ucuz, en yüksek getirili alışkanlıklardan biridir.
MarkItDown MCP sunucusuyla kod ajanlarınıza takın
Kod ajanlarıyla çalışıyorsanız, durum daha da iyileşir. MarkItDown resmi bir MCP (Model Context Protocol) sunucusu sunar, böylece ajanınız dosyaları görev ortasında, siz elle hiçbir şey çalıştırmadan kendisi dönüştürebilir.
Onu kurun ve stdio üzerinden çalıştırın:
pip install markitdown-mcp
markitdown-mcp
Sunucu tek bir araç sunar, convert_to_markdown(uri), burada uri herhangi bir http:, https:, file: ya da data: URI'si olabilir. Onu ajanınıza bir kez bağlayın ve ajan bir PDF'i, bir elektronik tabloyu ya da bir web sayfasını çekip talep üzerine Markdown'a dönüştürebilir, tüm süreç boyunca görme fiyatları yerine metin token'ı fiyatları ödeyerek.
Birden fazla ajan çalıştırdığınızda biriken türden bir şey tam olarak budur. Çok ajanlı kokpit AgentsRoom'da bir MCP sunucusunu bir kez yapılandırırsınız ve odadaki her ajan onu miras alır. Referans belgelerinizi .md'ye dönüştürün, onları depoya commit edin ve her ajan aynı PDF'i tekrar tekrar görüntüye dönüştürmek yerine her turda ucuz, yapılandırılmış metni okusun. Tek bir oturumu hafif tutan disiplin, bütün bir filoyu uygun fiyatlı tutar, ki bu kod ajanlarını paralel çalıştırırken ve her biri paylaşılan bağlamınızı okurken önemlidir.
Bu, iyi ajan kurulumlarının zaten bağlamı yönetme biçimiyle de doğal olarak eşleşir. Bir AGENTS.md bağlam dosyası tutuyorsanız, onu ham PDF'ler yerine hafif .md referanslarına yönlendirmek bağlam penceresini sıkı tutar, ki bu da bağlam kaymasını yakalama kanarya numarasında ele aldığımız gibi, herhangi bir uzun oturumda savaşın yarısıdır.
Özet
Ham PDF'leri bir LLM'e vermek, her sayfa sessizce bir görüntüye dönüştürüldüğü için fark etmeden ödediğiniz bir vergidir. MarkItDown bu vergiyi ücretsiz kaldırır: tek bir komut neredeyse her dosyayı temiz Markdown'a çevirir, token maliyetinin %80'e varan kısmını düşürürsünüz ve model en az o kadar iyi, çoğu zaman daha iyi yanıt verir, çünkü sayfa fotoğraflarına gözlerini kısarak bakmak yerine yapıyı okuyordur.
Önce dönüştürün, sonra sorun. Hem token faturanız hem de bağlam pencereniz size teşekkür edecek.
Bunu tek bir terminal yerine bütün bir ajan ekibinde çalıştırmaya hazır mısınız? AgentsRoom'u indirin, her ajanın neyi desteklediğini sağlayıcı uyumluluk matrisinde görün ve çok sağlayıcılı destek hakkında daha fazlasını okuyun.
AgentsRoom'u Indirin
Claude ajanlarinizi tum projelerinizde tek bir pencereden calistirin.
Yardımcı uygulama: hareket halindeyken ajanlarinizi izleyin
Claude, Codex, Gemini CLI veya başka bir AI sağlayıcı kullan.
Hataları ve istekleri doğrudan genel backlogunuza gönderin.
AgentsRoom'a kısa bir bakış.