Перетворення PDF у Markdown для збереження токенів LLM: Посібник MarkItDown
Передача PDF безпосередньо в Claude або будь-який LLM тихо спалює токени: кожна сторінка також перетворюється на зображення. Спочатку перетворіть файл у Markdown за допомогою MarkItDown, безкоштовного інструменту з відкритим кодом від Microsoft, і зменште витрати на токени до 80%. Повний посібник з налаштуванням CLI, Python та MCP.
Ви кидаєте 20-сторінковий PDF у Claude, задаєте одне питання, і відповідь повертається нормально. Що ви не бачите, так це рахунок. Перш ніж ваше питання навіть буде прочитане, цей документ може поглинути десятки тисяч токенів. Робіть це кілька разів на день у команді, і ви платите реальні гроші за те, щоб закидати сирі PDF у модель, яка була б так само задоволена чистим текстом.
Є безкоштовне рішення, яке весь час було на виду. Спочатку перетворіть файл у Markdown. Цей посібник пояснює, чому PDF такі дорогі, скільки ви економите, і як виконати перетворення однією командою за допомогою MarkItDown, конвертера з відкритим вихідним кодом від Microsoft.
Чому PDF коштує так багато токенів
Ось частина, про яку ніхто не говорить. Коли ви передаєте PDF LLM, він не читається так, як ви його читаєте. Згідно з власною документацією PDF від Anthropic, система робить дві речі з кожною сторінкою:
- Витягує текст зі сторінки.
- Перетворює всю сторінку на зображення, а потім відправляє це зображення разом із текстом.
Цей другий крок є тихим поглиначем токенів. Модель не лише читає слова, вона також дивиться на зображення кожної сторінки, щоб зрозуміти діаграми, таблиці та макет. Ви платите за обидва.
Числа від Anthropic роблять вартість конкретною. Витягнутий текст сам по собі займає 1,500 до 3,000 токенів на сторінку залежно від щільності. Крім того, кожна сторінка несе вартість зображення. Відкриваючий дані з інтеграції Amazon Bedrock: повний візуальний режим PDF використовує близько 7,000 токенів для 3-сторінкового PDF, тоді як простий текстовий витяг тих самих трьох сторінок використовує близько 1,000 токенів. Це розрив у 7 разів, і це повністю через зображення на сторінку.
Масштабуйте це до реального документа. Щільний 20-сторінковий звіт може зайняти від 40,000 до 70,000 токенів, коли кожна сторінка буде растеризована в зображення. Ви ще нічого не запитали. Ви просто відкрили файл.
Помаранчево-червоний блок - це чистий наклад: одне зображення на кожну сторінку, незалежно від того, чи є на сторінці якісь візуальні елементи, які варто побачити.
Рішення: подавайте чистий Markdown
Більшість документів не потрібно бачити. Контракт, специфікація, наукова стаття, презентація, повна маркерів: все це текст у макеті. Якщо ви знімаєте макет і зберігаєте структуру, модель не втрачає нічого, що їй дійсно потрібно.
Це те, що дає вам Markdown. Це майже так само близько до простого тексту, як формат може бути, але він все ще кодує важливу структуру: заголовки, списки, таблиці, посилання, блоки коду, жирний шрифт і наголоси. Основні LLM навчені на величезних обсягах Markdown, тому вони розбирають його природно і без зусиль. Microsoft, який створює MarkItDown, говорить просто: Markdown "дуже близький до простого тексту, з мінімальною розміткою або форматуванням, але все ще надає спосіб представити важливу структуру документа."
Перетворіть ваш PDF у Markdown, і ви повністю позбудетеся зображень на сторінку. Ніяких растеризованих сторінок, ніякого візуального накладу, лише структурований текст, який модель все одно збиралася прочитати. Ось звідки береться економія.
Знайомтеся з MarkItDown, безкоштовним конвертером від Microsoft
MarkItDown - це легка утиліта на Python від Microsoft, випущена під дозволяючою ліцензією 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 (і пакетна обробка цілого каталогу)
Якщо ви інтегруєте це в конвеєр, API Python такий же короткий:
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 може їх розпізнати, але якщо розпізнавання нестабільне, власне бачення моделі може прочитати сторінку більш надійно.
- Складні візуальні таблиці або форми, де позиція та вирівнювання несуть сенс, який втрачається в 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 файл контексту, вказуючи його на легкі .md посилання замість сирих PDF, зберігає контекстне вікно тісним, що, як ми обговорювали в трюку з канаркою для виявлення дрейфу контексту, є половиною битви в будь-якій довгій сесії.
Висновок
Передача сирих PDF LLM - це податок, який ви платили, не помічаючи, тому що кожна сторінка тихо перетворюється на зображення. MarkItDown видаляє цей податок безкоштовно: одна команда перетворює майже будь-який файл у чистий Markdown, ви знижуєте до 80% вартості токенів, і модель відповідає так само добре, часто краще, тому що вона читає структуру замість того, щоб вдивлятися в зображення сторінок.
Спочатку перетворіть, потім запитуйте. Ваш рахунок за токени і ваше контекстне вікно обидва подякують вам.
Готові запустити це на цілій команді агентів замість одного терміналу? Завантажте AgentsRoom, подивіться, що підтримує кожен агент у матриці сумісності провайдерів, і дізнайтеся більше про підтримку кількох провайдерів.
Продовжити читання
Трюк з канаркою: зловіть Claude (або будь-якого AI агента) до того, як він почне галюцинувати
Однолінійний трюк, щоб знати, коли ваш AI агент для кодування погіршується: змусьте його починати кожну відповідь з імені. Коли ім'я зникає, канарка мертва, і настав час для нової сесії. Працює на Claude, Codex, Antigravity CLI, Mistral Vibe та кожному LLM.
Читати статтюЯк масштабувати AI-кодувальні агенти в команді розробників
Один розробник з кодувальним агентом - це історія продуктивності. П'ять розробників з двадцятьма агентами - це проблема координації. Ось що ламається першим, коли команда масштабується, і налаштування, яке тримається: зафіксовані файли контексту, чітка власність файлів, огляд за радіусом вибуху і витрати, які ви дійсно можете побачити.
Читати статтюАгенти програмування у фоновому режимі: поставте свій AI на нічну зміну
Агент програмування не потребує вашого нагляду. Ось як запускати агентів у фоновому режимі, поки ви працюєте над чимось іншим, і як дозволити цілій флотилії програмувати вночі, поки ви спите.
Читати статтю
Завантажити AgentsRoom
Запускайте свої AI-агенти (Claude, Codex, Antigravity CLI, OpenCode, Aider, Grok Build, Mistral Vibe, Kimi Code) на всіх ваших проєктах з одного вікна.
Додаток-компаньйон: контролюйте своїх агентів на ходу
Використовуйте свого: Claude, Codex, Antigravity CLI або іншого AI-провайдера.
Надсилайте баги та запити прямо у свій публічний беклог.
Погляд на AgentsRoom в дії.