Перетворення 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, система робить дві речі з кожною сторінкою:

  1. Витягує текст зі сторінки.
  2. Перетворює всю сторінку на зображення, а потім відправляє це зображення разом із текстом.

Цей другий крок є тихим поглиначем токенів. Модель не лише читає слова, вона також дивиться на зображення кожної сторінки, щоб зрозуміти діаграми, таблиці та макет. Ви платите за обидва.

Числа від Anthropic роблять вартість конкретною. Витягнутий текст сам по собі займає 1,500 до 3,000 токенів на сторінку залежно від щільності. Крім того, кожна сторінка несе вартість зображення. Відкриваючий дані з інтеграції Amazon Bedrock: повний візуальний режим PDF використовує близько 7,000 токенів для 3-сторінкового PDF, тоді як простий текстовий витяг тих самих трьох сторінок використовує близько 1,000 токенів. Це розрив у 7 разів, і це повністю через зображення на сторінку.

Масштабуйте це до реального документа. Щільний 20-сторінковий звіт може зайняти від 40,000 до 70,000 токенів, коли кожна сторінка буде растеризована в зображення. Ви ще нічого не запитали. Ви просто відкрили файл.

Гістограма, що порівнює вартість токенів одного 20-сторінкового документа, надісланого як PDF, з тим самим документом, перетвореним у Markdown. PDF складає токени витягнутого тексту плюс токени зображення на сторінку приблизно на 48,000 токенів, тоді як версія Markdown використовує лише текстові токени приблизно на 11,000 токенів, що на 77 відсотків менше.

Помаранчево-червоний блок - це чистий наклад: одне зображення на кожну сторінку, незалежно від того, чи є на сторінці якісь візуальні елементи, які варто побачити.

Рішення: подавайте чистий 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, який ви можете передати будь-якій моделі, завантажити в репозиторій або вставити в чат, і це коштує частку від оригіналу.

Діаграма робочого процесу: вихідні файли, такі як PDF, DOCX, XLSX і PPTX, потрапляють у MarkItDown, який виводить один чистий файл Markdown, який потім передається великій мовній моделі або агенту кодування. Маркер токенів рухається по шляху, показуючи, як документ проходить через конвеєр.

Важкий файл на вході, готовий до агента 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 виграє.

Діаграма прийняття рішень: запитайте, чи дійсно вам потрібен візуальний макет документа, такий як діаграми, скановані сторінки або складні візуальні таблиці. Якщо ні, перетворіть його в Markdown, щоб заощадити токени, рекомендований шлях. Якщо так, зберігайте PDF, щоб модель могла читати зображення сторінок безпосередньо.

Питання ніколи не "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, подивіться, що підтримує кожен агент у матриці сумісності провайдерів, і дізнайтеся більше про підтримку кількох провайдерів.

Продовжити читання

Завантажити AgentsRoom

Запускайте свої AI-агенти (Claude, Codex, Antigravity CLI, OpenCode, Aider, Grok Build, Mistral Vibe, Kimi Code) на всіх ваших проєктах з одного вікна.

БезкоштовноЗавантажити AgentsRoom

Додаток-компаньйон: контролюйте своїх агентів на ходу

Використовуйте свого: Claude, Codex, Antigravity CLI або іншого AI-провайдера.

Отримати розширення
Chrome Web Store

Надсилайте баги та запити прямо у свій публічний беклог.

Погляд на AgentsRoom в дії.

Кілька проектів
Багато постачальників
Кілька агентів
Статус в реальному часі
Різниця файлів і коміт
Мобільний компаньйон
Попередній перегляд в реальному часі
Команди агентів
Автоматизація браузера
Розробка, орієнтована на беклог
Бібліотека підказок
Бібліотека навичок
Переглянути всі функції