PDF को Markdown में बदलकर LLM टोकन बचाएं: MarkItDown गाइड
PDF को सीधे Claude या किसी भी LLM को भेजना चुपचाप टोकन जलाता है: हर पेज एक इमेज में भी बदल जाता है। फाइल को पहले Microsoft के मुफ्त ओपन-सोर्स टूल MarkItDown से Markdown में बदलें, और अपना टोकन बिल 80% तक घटाएं। पूरा गाइड: CLI, Python और MCP सेटअप।
आप एक 20-पेज का PDF Claude में डालते हैं, एक सवाल पूछते हैं, और जवाब बढ़िया आ जाता है। जो आप नहीं देखते, वह है बिल। आपका सवाल पढ़े जाने से पहले ही, वह दस्तावेज़ हज़ारों टोकन निगल सकता है। इसे एक टीम भर में दिन में कुछ बार करें और आप असली पैसे खर्च कर रहे हैं, सिर्फ कच्चे PDF को एक ऐसे मॉडल में ठूँसने के लिए जो साफ टेक्स्ट से भी उतना ही खुश रहता।
इसका एक मुफ्त उपाय है, और वह शुरू से ही सबके सामने पड़ा था। फाइल को पहले Markdown में बदल दें। यह गाइड ठीक-ठीक समझाता है कि PDF इतने महंगे क्यों होते हैं, आप कितना बचाते हैं, और MarkItDown, Microsoft के ओपन-सोर्स कन्वर्टर, से एक ही कमांड में यह कन्वर्ज़न कैसे करें।
एक PDF इतने टोकन क्यों खाता है
यह वह हिस्सा है जो कोई आपको नहीं बताता। जब आप एक PDF किसी LLM को देते हैं, तो उसे वैसे नहीं पढ़ा जाता जैसे आप पढ़ते हैं। Anthropic के अपने PDF दस्तावेज़ीकरण के अनुसार, सिस्टम हर एक पेज के साथ दो काम करता है:
- यह पेज से टेक्स्ट निकालता है।
- यह पूरे पेज को एक इमेज में बदलता है, फिर उस इमेज को टेक्स्ट के साथ भेजता है।
वह दूसरा कदम ही चुपचाप टोकन सोख लेने वाला गड्ढा है। मॉडल सिर्फ शब्द नहीं पढ़ रहा, वह हर पेज की एक तस्वीर भी देख रहा है ताकि चार्ट, टेबल और लेआउट समझ सके। आप दोनों के लिए भुगतान करते हैं।
Anthropic के आँकड़े इस लागत को ठोस बना देते हैं। अकेला निकाला गया टेक्स्ट घनत्व के हिसाब से प्रति पेज 1,500 से 3,000 टोकन तक चलता है। इसके ऊपर, हर पेज एक इमेज की लागत साथ लाता है। Amazon Bedrock इंटीग्रेशन से एक चौंकाने वाला आँकड़ा: पूरा विज़ुअल PDF मोड 3-पेज के PDF के लिए लगभग 7,000 टोकन इस्तेमाल करता है, जबकि उन्हीं तीन पेजों का सादा टेक्स्ट एक्सट्रैक्शन लगभग 1,000 टोकन लेता है। यह 7 गुना का फासला है, और यह पूरी तरह प्रति-पेज इमेजों से आता है।
इसे एक असली दस्तावेज़ पर बढ़ाकर देखिए। एक घना 20-पेज का रिपोर्ट, जब हर पेज एक इमेज में बदल चुका हो, 40,000 से 70,000 टोकन के बीच कहीं भी पहुँच सकता है। आपने अभी कुछ पूछा भी नहीं है। आपने बस फाइल खोली है।
नारंगी-लाल ब्लॉक शुद्ध फालतू बोझ है: हर पेज के लिए एक इमेज, चाहे उस पेज पर देखने लायक कोई विज़ुअल हो या न हो।
उपाय: इसके बजाय साफ Markdown भेजें
ज़्यादातर दस्तावेज़ों को देखे जाने की ज़रूरत नहीं होती। एक अनुबंध, एक स्पेक, एक शोध-पत्र, बुलेट पॉइंट से भरा एक स्लाइड डेक: यह सब लेआउट पहने हुए टेक्स्ट ही है। अगर आप लेआउट हटा दें और संरचना रखें, तो मॉडल को सच में जिसकी ज़रूरत थी, उसमें से कुछ नहीं खोता।
Markdown आपको यही देता है। यह जितना सादा टेक्स्ट के करीब कोई फॉर्मेट हो सकता है, उतना करीब है, फिर भी वह उस संरचना को एनकोड करता है जो मायने रखती है: हेडिंग, लिस्ट, टेबल, लिंक, कोड ब्लॉक, बोल्ड और ज़ोर। मुख्यधारा के LLM Markdown की भारी मात्रा पर प्रशिक्षित होते हैं, इसलिए वे इसे मूल रूप से और बिना मेहनत के पार्स करते हैं। MarkItDown बनाने वाली Microsoft इसे सीधे शब्दों में कहती है: Markdown "सादा टेक्स्ट के बेहद करीब है, बहुत कम मार्कअप या फॉर्मेटिंग के साथ, फिर भी किसी दस्तावेज़ की अहम संरचना को दर्शाने का एक तरीका देता है।"
अपने PDF को Markdown में बदलें और आप प्रति-पेज इमेजों को पूरी तरह हटा देते हैं। कोई रास्टराइज़ किए गए पेज नहीं, कोई विज़न का फालतू बोझ नहीं, बस वही संरचित टेक्स्ट जो मॉडल वैसे भी पढ़ने वाला था। बचत वहीं से आती है।
मिलिए MarkItDown से, Microsoft का मुफ्त कन्वर्टर
MarkItDown Microsoft की एक हल्की Python यूटिलिटी है, जो उदार MIT लाइसेंस के तहत जारी की गई है और GitHub पर डेवलपर्स के सबसे ज़्यादा स्टार वाले टूल्स में से एक है, जिसके 135,000 से ज़्यादा स्टार हैं। इसका एकमात्र काम है: असली दुनिया की बिखरी, भारी फाइलों को साफ Markdown में बदलना जिसे एक LLM कम खर्च में पढ़ सके।
यह सिर्फ एक PDF टूल नहीं है। यह फॉर्मेट्स की एक लंबी सूची बदलता है:
- PDF दस्तावेज़
- Word (
.docx) - Excel (
.xlsx,.xls) - PowerPoint (
.pptx) - इमेज, EXIF मेटाडेटा और तस्वीर के भीतर के टेक्स्ट के लिए OCR के साथ
- ऑडियो, मेटाडेटा और स्पीच ट्रांसक्रिप्शन के साथ
- HTML पेज
- CSV, JSON और XML डेटा
- ZIP आर्काइव (यह उसकी सामग्री में घुसकर चलता है)
- YouTube URL (यह ट्रांसक्रिप्ट खींच लेता है)
- EPub ई-बुक्स
- Outlook संदेश (
.msg)
एक टूल, एक आउटपुट फॉर्मेट, उस लगभग हर चीज़ के लिए जिसे आप वरना एक भारी बाइनरी के रूप में किसी मॉडल पर फेंक देते।
MarkItDown को 30 सेकंड में इंस्टॉल करें
यह एक सामान्य Python पैकेज है। सब कुछ पाने के लिए, all एक्स्ट्रा इंस्टॉल करें:
pip install 'markitdown[all]'
अगर आपको सिर्फ कुछ फॉर्मेट्स की परवाह है और आप एक हल्की इंस्टॉल चाहते हैं, तो सिर्फ उन्हीं एक्स्ट्राज़ की माँग करें:
pip install 'markitdown[pdf, docx, pptx]'
उपलब्ध विकल्पों में अन्य के अलावा [all], [pdf], [docx], [pptx], [xlsx], [xls], [outlook], [audio-transcription] और [youtube-transcription] शामिल हैं।
कमांड लाइन से एक PDF को Markdown में बदलें
सबसे तेज़ रास्ता CLI है। इसे एक फाइल की ओर इशारा करें और आउटपुट जहाँ चाहें वहाँ भेजें:
markitdown report.pdf -o report.md
या एक सादा रीडायरेक्ट इस्तेमाल करें, जो वही काम करता है:
markitdown report.pdf > report.md
आप एक फाइल को सीधे पाइप में भी भेज सकते हैं:
cat report.pdf | markitdown
बस यही पूरा वर्कफ़्लो है। अब आपके पास एक report.md है जिसे आप किसी भी मॉडल को दे सकते हैं, किसी रिपॉज़िटरी में डाल सकते हैं, या किसी चैट में पेस्ट कर सकते हैं, और इसकी लागत मूल का एक अंश भर है।
भारी फाइल अंदर, एजेंट-तैयार Markdown बाहर, बीच में एक ही कमांड।
Python में बदलें (और पूरे फोल्डर को बैच में निपटाएं)
अगर आप इसे किसी पाइपलाइन में जोड़ रहे हैं, तो Python API भी उतना ही छोटा है:
from markitdown import MarkItDown
md = MarkItDown(enable_plugins=False)
result = md.convert("report.pdf")
print(result.text_content)
result.text_content आपकी Markdown स्ट्रिंग है, जो डिस्क पर लिखने या किसी मॉडल को देने के लिए तैयार है। एक ही पास में दस्तावेज़ों का पूरा फोल्डर बदलने के लिए, उस पर एक लूप चलाएं:
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")
इसे एक बार चलाएं और महंगे PDF का एक डायरेक्ट्री सस्ते, संरचित Markdown के एक डायरेक्ट्री में बदल जाती है, जिसे कोई भी एजेंट हर बारी पर विज़न टैक्स दोबारा चुकाए बिना पढ़ सकता है।
आप असल में कितना बचाते हैं?
ईमानदार जवाब: यह दस्तावेज़ पर निर्भर करता है, लेकिन फायदा बड़ा और लगातार होता है। एक आम, टेक्स्ट-भारी फाइल के लिए इसका रूप कुछ ऐसा है।
| मॉडल को भेजा गया PDF | Markdown में बदला हुआ | |
|---|---|---|
| निकाला गया टेक्स्ट | हाँ | हाँ |
| प्रति पेज एक इमेज | हाँ, हर पेज | नहीं |
| विज़न का फालतू बोझ | पूरा | कोई नहीं |
| 3-पेज दस्तावेज़ (Bedrock आँकड़ा) | ~7,000 टोकन | ~1,000 टोकन |
| 20-पेज दस्तावेज़ (अनुमान) | 40,000 से 70,000 टोकन | 10,000 से 15,000 टोकन |
जिस दस्तावेज़ का मूल्य उसके शब्दों में है, उसके लिए Markdown में बदलना नियमित रूप से टोकन लागत को आधे से कहीं ज़्यादा घटा देता है, और अक्सर 80% या उससे ज़्यादा। बचत में कोई जादू नहीं है: आप बस हर पेज की तस्वीर भेजने के लिए अब भुगतान नहीं कर रहे, जबकि मॉडल को सिर्फ टेक्स्ट चाहिए था।
Markdown सचमुच मुफ्त नहीं है, बेशक। निकाला गया टेक्स्ट अब भी टोकन खर्च करता है। पर वह टेक्स्ट लागत वह न्यूनतम है जो आप वैसे भी चुकाने वाले थे। जो आप हटाते हैं, वह उसके ऊपर बैठी प्रति-पेज इमेजों का ढेर है।
PDF कब रखें (हद से ज़्यादा ऑप्टिमाइज़ न करें)
कन्वर्ज़न सही डिफ़ॉल्ट है, कोई सार्वभौमिक नियम नहीं। मूल PDF तब रखें जब विज़ुअल लेआउट ही असली बात हो:
- चार्ट और ग्राफ़ जिन्हें मॉडल को सचमुच पढ़ना ज़रूरी है। अगर मतलब किसी बार चार्ट में बसता है, तो इमेज एक असली काम कर रही है।
- स्कैन किए गए दस्तावेज़ जो टेक्स्ट की इमेज होते हैं। MarkItDown इन्हें OCR कर सकता है, पर अगर पहचान कमज़ोर हो, तो मॉडल की अपनी विज़न पेज को ज़्यादा भरोसेमंद ढंग से पढ़ सकती है।
- जटिल विज़ुअल टेबल या फॉर्म जहाँ स्थिति और संरेखण ऐसा अर्थ रखते हैं जो Markdown में चपटा हो जाता है।
- इन्फोग्राफिक्स और डिज़ाइन-भारी पेज जहाँ लेआउट ही सामग्री है।
बाकी हर चीज़ के लिए, जो कि अधिकांश दस्तावेज़ हैं, Markdown जीतता है।
सवाल कभी भी अमूर्त रूप में "PDF या Markdown" नहीं होता। यह है "मॉडल को इस पेज को देखना है, या बस पढ़ना है?"
PDF से आगे: Word, Excel, PowerPoint, यहाँ तक कि YouTube
वही एक-लाइन कमांड आपके बाकी दस्तावेज़ों के ढेर पर भी काम करती है। एक Word डॉक, एक स्प्रेडशीट, एक स्लाइड डेक, एक वेब पेज, यहाँ तक कि एक YouTube वीडियो का ट्रांसक्रिप्ट, सब उसी तरह साफ Markdown में सिमट जाते हैं:
markitdown deck.pptx -o deck.md
markitdown budget.xlsx -o budget.md
markitdown https://www.youtube.com/watch?v=VIDEO_ID -o transcript.md
अगर आपके वर्कफ़्लो में Office फाइलों या वेब से नियमित रूप से संदर्भ निकालकर किसी मॉडल को देना शामिल है, तो हर चीज़ को पहले Markdown में मानकीकृत करना सबसे सस्ती और सबसे ज़्यादा फायदा देने वाली आदतों में से एक है जो आप बना सकते हैं।
MarkItDown MCP सर्वर से इसे अपने कोडिंग एजेंट्स में जोड़ें
अगर आप कोडिंग एजेंट्स के साथ काम करते हैं, तो यह और भी बेहतर हो जाता है। MarkItDown एक आधिकारिक MCP (Model Context Protocol) सर्वर के साथ आता है, ताकि आपका एजेंट खुद, काम के बीच में ही, फाइलें बदल सके, बिना आपके हाथ से कुछ चलाए।
इसे इंस्टॉल करें और stdio पर चलाएं:
pip install markitdown-mcp
markitdown-mcp
यह सर्वर एक अकेला टूल उजागर करता है, convert_to_markdown(uri), जहाँ uri कोई भी http:, https:, file:, या data: URI हो सकता है। इसे अपने एजेंट में एक बार जोड़ दें और यह एक PDF, एक स्प्रेडशीट, या एक वेब पेज खींचकर उसे माँग पर Markdown में बदल सकता है, और इस पूरे दौरान विज़न की कीमतों के बजाय टेक्स्ट-टोकन की कीमतें चुकाता है।
यह ठीक उसी तरह की चीज़ है जो तब और बढ़ती जाती है जब आप एक से ज़्यादा एजेंट चला रहे हों। AgentsRoom में, मल्टी-एजेंट कॉकपिट, आप एक MCP सर्वर एक बार कॉन्फ़िगर करते हैं और कमरे का हर एजेंट उसे विरासत में पा लेता है। अपने संदर्भ दस्तावेज़ों को .md में बदलें, उन्हें रिपॉज़िटरी में कमिट करें, और हर एजेंट उसी PDF को बार-बार रास्टराइज़ करने के बजाय हर बारी पर सस्ता, संरचित टेक्स्ट पढ़ता है। वही अनुशासन जो एक अकेली सेशन को हल्का रखता है, एक पूरे बेड़े को किफायती रखता है, जो तब मायने रखता है जब आप कोडिंग एजेंट्स को समानांतर में चला रहे हों और उनमें से हर एक आपका साझा संदर्भ पढ़ रहा हो।
यह उस तरीके के साथ भी स्वाभाविक रूप से जुड़ता है जिससे अच्छे एजेंट सेटअप पहले से संदर्भ संभालते हैं। अगर आप एक AGENTS.md संदर्भ फाइल रखते हैं, तो उसे कच्चे PDF के बजाय हल्के .md संदर्भों की ओर इशारा कराना संदर्भ विंडो को कसा हुआ रखता है, जो कि, जैसा हमने संदर्भ बहाव पकड़ने के लिए कैनरी ट्रिक में बताया था, किसी भी लंबी सेशन में आधी लड़ाई है।
निष्कर्ष
कच्चे PDF को किसी LLM को देना एक ऐसा टैक्स है जो आप बिना ध्यान दिए चुकाते आए हैं, क्योंकि हर पेज चुपचाप एक इमेज में बदल दिया जाता है। MarkItDown इस टैक्स को मुफ्त में हटा देता है: एक कमांड लगभग किसी भी फाइल को साफ Markdown में बदल देती है, आप टोकन लागत का 80% तक छोड़ देते हैं, और मॉडल उतना ही अच्छा जवाब देता है, अक्सर बेहतर, क्योंकि वह पेज की तस्वीरों पर आँखें सिकोड़ने के बजाय संरचना पढ़ रहा होता है।
पहले बदलें, फिर पूछें। आपका टोकन बिल और आपकी संदर्भ विंडो, दोनों आपको धन्यवाद देंगे।
एक ही टर्मिनल के बजाय एजेंट्स की पूरी टीम पर इसे चलाने के लिए तैयार हैं? AgentsRoom डाउनलोड करें, प्रोवाइडर कम्पैटिबिलिटी मैट्रिक्स में देखें कि हर एजेंट क्या सपोर्ट करता है, और मल्टी-प्रोवाइडर सपोर्ट के बारे में और पढ़ें।
AgentsRoom डाउनलोड करें
अपने सभी प्रोजेक्ट्स पर Claude एजेंट्स को एक ही विंडो से चलाएं।
कंपेनियन ऐप: चलते-फिरते अपने एजेंट्स मॉनिटर करें
Claude, Codex, Gemini CLI या किसी अन्य AI प्रदाता का उपयोग करें।
बग और अनुरोध सीधे अपने सार्वजनिक बैकलॉग में भेजें।
AgentsRoom को कार्य करते देखें।