Czym jest i do czego służy ?
W dobie błyskawicznego rozwoju sztucznej inteligencji jednym z największych wyzwań inżynierów i programistów nie jest wcale wybór odpowiedniego modelu językowego, lecz dostarczenie mu czystych i zrozumiałych danych. Tutaj na scenę wkracza MarkItDown – otwartoźródłowy projekt od Microsoftu.
Jest to wysoce zoptymalizowane narzędzie (napisane w Pythonie), które służy do konwersji niemal dowolnego formatu plików cyfrowych na czysty tekst w formacie Markdown. W przeciwieństwie do tradycyjnych konwerterów, które starają się zachować wizualny układ strony (idealny dla oka ludzkiego), MarkItDown skupia się na zachowaniu logicznej struktury dokumentu – nagłówków, list, tabel czy linków.
Dlaczego akurat Markdown? Współczesne modele LLM (jak GPT, Claude czy lokalnie hostowane modele Llama i Mistral) zostały wytrenowane na potężnych zbiorach danych zawierających ten właśnie format. Rozumieją go natywnie, a do tego jest on niezwykle oszczędny pod kątem zużycia tokenów w oknie kontekstowym. MarkItDown to idealny element potoku przetwarzania danych (data pipeline) w systemach RAG (Retrieval-Augmented Generation).
Kluczowe funkcjonalności
Projekt wyróżnia się na tle konkurencji przede wszystkim wszechstronnością i lekkością. Najważniejsze funkcje to:
- Szerokie wsparcie dla formatów biurowych: Bez problemu radzi sobie z plikami Word (.docx), PowerPoint (.pptx) oraz Excel (.xlsx, .xls), łącznie z przetwarzaniem wielu arkuszy.
- Przetwarzanie PDF i OCR: Oprócz standardowego wyciągania tekstu z PDF, dzięki systemowi wtyczek można podłączyć modele Vision (np. przez API OpenAI), aby wykonywały OCR na zeskanowanych dokumentach i obrazach.
- Wsparcie dla multimediów: Narzędzie potrafi wyciągać metadane EXIF ze zdjęć, a także automatycznie transkrybować pliki audio (np. .wav, .mp3) oraz filmy prosto z YouTube.
- Obsługa danych strukturalnych i archiwów: Konwertuje HTML, CSV, JSON, XML, a nawet potrafi wejść w głąb plików ZIP, aby rekursywnie przetworzyć ich zawartość.
- Wysoka integracja: Może działać jako samodzielne narzędzie wiersza poleceń (CLI) lub jako biblioteka Pythona do wpięcia w większy kod (np. w aplikacjach opartych o LangChain czy LlamaIndex).
Instrukcja instalacji za pomocą docker compose (Linux, macOS, Windows)
MarkItDown to natywnie narzędzie CLI/Pythonowe, więc uruchamianie go jako usługi działającej w tle (daemon) mija się z celem. Znacznie lepszym i czystszym podejściem jest stworzenie własnego obrazu i wykorzystanie Docker Compose do jednorazowych wywołań (tzw. efemerycznych kontenerów) z podmontowanym lokalnym katalogiem na pliki.
Aby to zrobić, utwórz nowy katalog na swoim komputerze, a w nim dwa poniższe pliki.
1. Dockerfile – definicja lekkiego środowiska:
FROM python:3.12-slim RUN pip install --no-cache-dir 'markitdown[all]' ENTRYPOINT ["markitdown"]
2. docker-compose.yml – konfiguracja środowiska:
services:
markitdown:
build: .
volumes:
# Montujemy lokalny katalog ./docs do wnętrza kontenera
- ./docs:/docs
Instrukcja użycia:
- Utwórz w tym samym miejscu katalog
docs(mkdir docs) i wrzuć do niego plik, który chcesz przekonwertować (np.raport.pdf). - Uruchom narzędzie za pomocą Docker Compose, kierując strumień wyjścia (stdout) do nowego pliku Markdown:
docker compose run --rm markitdown /docs/raport.pdf > docs/wynik.md
Dzięki temu środowisko na Twoim serwerze lub stacji roboczej (niezależnie czy to Linux, macOS, czy Windows z WSL2/Docker Desktop) pozostaje czyste, a wszystkie zależności Pythona są izolowane w kontenerze.
Link do Repozytorium GitHub
Ponieważ MarkItDown jest biblioteką programistyczną i narzędziem CLI, Microsoft nie udostępnia oficjalnego, klikalnego dema w przeglądarce. Cały kod źródłowy, dokumentację oraz przykłady użycia znajdziesz bezpośrednio w repozytorium:
🔗 Repozytorium GitHub: https://github.com/microsoft/markitdown


