Blog

PDF dalam Claude Code: penukaran, token dan pengekalan struktur

Markdown

MarkItDown, PyMuPDF4LLM, MCP, skrip penukaran lengkap, had PDF dan keadaan apabila analisis visual lebih penting daripada penjimatan token.

Baca artikel penuh

Inti pati

Setiap halaman PDF dalam Claude Code menggunakan 1,500–3,000 token sebelum soalan pertama—dan Anthropic menyatakannya dengan jelas dalam dokumentasinya. Dalam pengiraan ilustrasi di bawah, laporan 15 halaman dalam 4 sembang berbeza menggunakan 135,000 token input PDF pada kira-kira $0.40, berbanding 18,000 token input Markdown pada $0.054—kira-kira 87% kurang. Ini mengandaikan 2,250 token PDF atau 300 token Markdown setiap halaman pada kadar input contoh; dokumen sebenar berbeza. Panduan ini merangkumi tiga kaedah penukaran (MarkItDown, PyMuPDF4LLM dan pelayan MCP) serta skrip bash sedia guna untuk folder dokumen.

Arahan praktikal untuk menggunakan Ailoot terdapat dalam dokumentasi.

Apakah yang berlaku kepada PDF dalam Claude, dan mengapa setiap halaman menggunakan 1,500–3,000 token?

Inti pati

Apabila anda memuat naik PDF ke Claude Code, ia tidak membacanya sebagai fail teks. Mula-mula, setiap halaman ditukar menjadi imej, kemudian teks diekstrak daripadanya, dan kedua-dua lapisan—imej dan teks—ditambahkan bersama-sama ke dalam konteks. Itulah sebabnya satu halaman menggunakan 1,500–3,000 token, dan dokumen 50 halaman boleh menggunakan 75,000–150,000 token sebelum anda bertanya soalan pertama.

Dokumentasi rasmi Anthropic menerangkan proses ini dalam tiga langkah mudah:

Sistem menukar setiap halaman dokumen menjadi imej. Teks daripada setiap halaman diekstrak dan disediakan bersama imej halaman tersebut. Claude menganalisis teks dan imej untuk memahami dokumen dengan lebih baik.

— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support

Proses ini kedengaran logik, tetapi kos pemprosesan meningkat secara linear dengan bilangan halaman. Dan angka ini menjelaskan sebab had langganan anda habis hanya dengan satu PDF:

Setiap halaman biasanya menggunakan 1,500–3,000 token, bergantung pada kepadatan kandungan. Oleh sebab setiap halaman ditukar menjadi imej, kos yang sama seperti imej biasa dikenakan.

— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support

Untuk melihat jumlahnya, Anthropic mengukur PDF 3 halaman yang sama di Bedrock dalam dua mod. Dalam mod teks (Converse Document Chat), ia menggunakan kira-kira 1,000 token. Dengan analisis visual (Claude PDF Chat), ia menggunakan kira-kira 7,000 token. Menyertakan imej menjadikan pemprosesan 7 kali lebih mahal.

Tangkapan skrin halaman lebih membebankan. Tangkapan skrin berukuran 1000×1000 piksel berharga kira-kira 1,300 token.

Mekanismenya mudah: PDF mahal kerana Claude tidak mempercayai OCRnya. Ia menggunakan teks dan imej supaya boleh membandingkan kedua-duanya—dan anda membayar untuk kedua-dua lapisan serentak. Untuk dokumen besar, anda boleh menggunakan kaedah lain: simpan fail sebagai Markdown dalam folder projek anda dan beritahu Claude, “ini dokumen yang mengandungi maklumat—agihkannya.” Claude akan menyebarkan kandungannya ke dalam failnya sendiri dan terus bekerja dengan teks yang tersusun, dan bukannya menggunakan semuanya serentak.

Berapa banyak token yang digunakan oleh PDF dalam tugasan biasa?

Inti pati

Pertimbangkan laporan awam 15 halaman dalam 4 konteks berbeza—analisis, petikan, terjemahan dan ringkasan. Andaikan 2,250 token input setiap halaman PDF, 300 setiap halaman Markdown ditukar dan kadar input sama untuk kedua-duanya. Muat naik PDF semula menghasilkan 135,000 token input, kira-kira $0.40; Markdown menghasilkan 18,000, atau $0.054. Penjimatan kira-kira 87% datang daripada andaian itu, bukan ukuran setiap PDF.

Angka khusus (model Sonnet 4.x, input pada kadar $3 bagi setiap sejuta token):

KaedahToken (15 halaman, 4 sembang)Kos
PDF dimuat naik terus sebanyak 4 kali15 × 2250 × 4 = 135,000~$0.40
PDF → Markdown + 4 sembang15 × 300 × 4 = 18,000~$0.054
Penjimatan−87%−$0.35

Itu baru satu kitaran 4 permintaan. Selepas itu, caching prompt mula berfungsi (TTL lalai 5 minit, sehingga 1 jam pada peringkat lanjutan, dengan diskaun sehingga 90% untuk panggilan berulang dalam tempoh tersebut)—penjimatan bertambah berlipat kali ganda.

Setiap kali anda memuat naik PDF yang sama dalam sembang baharu, Claude membacanya sekali lagi; cache tidak dibawa antara sembang.

Jika PDF 15 halaman yang sama ditukar sekali kepada Markdown dan dibawa ke setiap satu daripada empat sembang baharu sebagai fail .md, contoh ini menggunakan 15 × 300 × 4 = 18,000 token input, bukan 135,000. Angka 300 token setiap halaman ditukar dan 2,250 token setiap halaman PDF ialah andaian pengiraan ini, bukan pemalar diukur bagi setiap PDF. Kira dokumen sebenar serta sahkan kualiti penukaran sebelum menganggarkan penjimatan.

Pengiraan ini lebih penting lagi dengan langganan Claude Pro. Satu laporan 100 halaman boleh menghabiskan keseluruhan had 5 jam. Selepas ditukar kepada Markdown, lebih daripada 10 dokumen seperti ini boleh dimuatkan dalam bajet yang sama.

Apakah had API Anthropic untuk PDF pada 2026?

Inti pati

Anthropic menetapkan had yang ketat: maksimum 32 MB setiap permintaan (termasuk semua kandungan, bukan PDF sahaja) dan maksimum 600 halaman setiap permintaan. Namun, hadnya lebih rendah untuk model Sonnet 4.x dan Opus 4.x semasa dengan konteks 200K: 100 halaman. Anda boleh menghantar PDF melalui tiga cara: menggunakan URL, dalam Base64, atau melalui Files API untuk digunakan semula dengan file_id. Files API bersama pemecahan kepada bahagian digunakan untuk dokumen panjang.

Dokumentasi Anthropic menyenaraikan had ini di bahagian atas (terkini pada 31 Mei 2026):

KeperluanHad
Saiz maksimum permintaan32 MB (berbeza mengikut platform)
Halaman maksimum bagi setiap permintaan600 (100 untuk model dengan konteks 200K token)
FormatPDF standard tanpa kata laluan atau penyulitan

Kedua-dua had terpakai pada keseluruhan isi permintaan, termasuk kandungan yang dihantar bersama PDF. Untuk PDF besar, gunakan Files API dan rujuk fail tersebut dengan file_id supaya isi permintaan kekal kecil.

— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support

Claude.ai (aplikasi web untuk pengguna) mempunyai had yang berbeza: maksimum 500 MB setiap fail dan sehingga 20 fail dalam satu sembang. Namun, analisis visual hanya berfungsi untuk PDF sehingga 100 halaman—bagi dokumen yang lebih panjang, Claude hanya melihat teks tanpa carta dan rajah.

Tiga cara menghantar PDF melalui API:

  1. Melalui URL - "source": {"type": "url", "url": "..."} - paling mudah apabila dokumen tersedia dalam talian.
  2. Dalam Base64 - "source": {"type": "base64", "media_type": "application/pdf", "data": "..."} - untuk fail setempat.
  3. Melalui Files API - "source": {"type": "file", "file_id": "file_abc123"} - untuk permintaan berulang; memerlukan pengepala beta anthropic-beta: files-api-2025-04-14.

Files API ialah cara utama untuk berjimat apabila menggunakan PDF yang sama dalam sembang berlainan. Muat naik sekali, dapatkan file_id, kemudian gunakan ID itu untuk semua interaksi. Dengan cache_control: ephemeral, permintaan berulang berharga 10% daripada harga biasa.

Anthropic turut menyediakan nasihat rasmi untuk mengurangkan penggunaan:

PDF yang padat (dengan banyak teks kecil, jadual kompleks atau grafik yang berat) mungkin memenuhi tetingkap konteks sebelum had halaman dicapai. Cuba bahagikan dokumen kepada beberapa bahagian; bagi fail besar, kurangkan resolusi imej terbenam sebelum memuat naiknya.

— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support

Kaedah 1: Bagaimanakah cara menyediakan MarkItDown dalam 5 minit?

Inti pati

MarkItDown ialah utiliti Python daripada pasukan Microsoft AutoGen yang menukar PDF, DOCX, PPTX, XLSX, HTML, audio, imej malah video YouTube kepada Markdown yang kemas. Ia mempunyai 134 ribu bintang di GitHub, lesen MIT dan boleh dipasang dengan satu arahan: pip install 'markitdown[all]'. Penggunaannya juga sama mudah: markitdown document.pdf > document.md. Inilah alat paling serba boleh untuk menukar fail sebelum menggunakan Claude Code.

MarkItDown ialah projek rasmi Microsoft yang diselenggarakan oleh pasukan AutoGen. Di GitHub, ia mempunyai 134 ribu bintang dan 9.2 ribu fork (pada penghujung Mei 2026). Tujuannya dinyatakan terus dalam README:

Utiliti Python ringan untuk menukar fail kepada Markdown bagi digunakan dengan LLM dan saluran paip analisis teks.

— Microsoft, https://github.com/microsoft/markitdown

Format yang disokong:

  • Dokumen: PDF, DOCX, PPTX, XLSX
  • Web: HTML, JSON, XML, CSV
  • Media: audio dengan transkripsi, imej dengan EXIF dan OCR, video YouTube (melalui kapsyen)
  • Arkib: ZIP, EPub
  • Lain-lain: semua lampiran dalam fail Outlook MSG

Pemasangan

Keperluan: Python 3.10+ (biasanya sudah dipasang pada macOS; anda perlu memasangnya secara berasingan pada Windows).

pip install 'markitdown[all]'

Jika anda tidak memerlukan semua format, anda boleh memasang format tertentu sahaja:

pip install 'markitdown[pdf, docx, pptx]'

Kes paling mudah:

markitdown document.pdf > document.md

Selepas itu, document.md akan muncul dalam folder semasa. Bawa fail itu ke Claude Code menggunakan @document.md atau letakkannya sahaja bersebelahan projek anda.

API Python

Jika anda mahu menyepadukannya dalam skrip:

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("research-paper.pdf")
print(result.text_content)

# Anda boleh terus menyimpannya:
with open("research-paper.md", "w") as f:
    f.write(result.text_content)

Perkara yang TIDAK BOLEH dilakukan oleh MarkItDown

  • OCR untuk PDF yang diimbas - ia tidak memberikan sebarang hasil. Dokumen imbasan memerlukan PyMuPDF4LLM atau Docling.
  • Susun atur kompleks berbilang lajur - susunan bacaan mungkin bercelaru.
  • URL terbenam daripada PDF - ia tidak mengekalkannya.

Untuk PDF mudah (laporan, artikel, dokumentasi), MarkItDown ialah pilihan terbaik: alat serba boleh yang dipasang dalam seminit dan tidak memerlukan pengetahuan Python. Prestasinya pada dokumen yang mengandungi teks Cyrillic dan dokumen imbasan ditunjukkan dalam ukuran dalam analisis tentang cara menukar PDF kepada teks untuk AI.

Kaedah 2: Apakah yang ditawarkan oleh PyMuPDF4LLM, dan bila ia lebih baik?

Inti pati

PyMuPDF4LLM ialah projek Artifex Software yang berasaskan enjin C asli MuPDF. Ia penukar PDF terpantas (tidak memerlukan GPU); OCR pintar hanya digunakan pada kawasan yang tidak boleh dibaca dan mengurangkan masa pemprosesan sebanyak 50%. Ia satu-satunya alat popular yang mengekalkan URL terbenam dan imej daripada PDF. Kekurangannya ialah lesen dua pilihan AGPL v3 / komersial Artifex: untuk projek SaaS, AGPL bermaksud anda mesti menerbitkan kod anda.

MarkItDown menawarkan kepelbagaian format; PyMuPDF4LLM menawarkan pemprosesan PDF yang mendalam.

Sambungan PyMuPDF yang ringan untuk menukar PDF kepada data yang kemas dan berstruktur dengan persediaan minimum.

— Artifex Software, https://pymupdf.readthedocs.io/en/latest/pymupdf4llm/

Versi pada 31 Mei 2026 ialah 1.27.2.3 (dikeluarkan pada 24 April 2026).

Kandungannya

  • Halaman berbilang lajur dengan susunan bacaan yang betul
  • Jadual ditukar kepada Markdown berformat GitHub
  • Pengepala dan pengaki dibuang secara automatik
  • Imej diekstrak dengan pautan relatif ke folder berasingan
  • OCR pintar: digunakan hanya pada kawasan yang tidak boleh dibaca, menjimatkan kira-kira 50% masa pemprosesan
  • Enjin C asli, tidak memerlukan GPU

Pemasangan

pip install pymupdf4llm

Penggunaan

import pymupdf4llm

# Penggunaan asas - terus kepada Markdown:
md_text = pymupdf4llm.to_markdown("document.pdf")

# Simpan:
with open("document.md", "w") as f:
    f.write(md_text)

Dalam satu baris, seperti yang dijanjikan:

python3 -c "import pymupdf4llm; \
  open('document.md','w').write(pymupdf4llm.to_markdown('document.pdf'))"

Bila perlu memilih PyMuPDF4LLM berbanding MarkItDown

  • Apabila PDF mempunyai banyak pautan yang perlu dikekalkan (MarkItDown akan kehilangannya).
  • Apabila dokumen diimbas dan anda memerlukan OCR.
  • Apabila anda memerlukan kelajuan untuk memproses ribuan fail secara setempat—enjin C asli lebih pantas daripada pembalut Python.
  • Apabila anda memerlukan imej daripada PDF dalam folder berasingan untuk pemprosesan lanjut.

Butiran lesen (penting untuk perniagaan)

PyMuPDF4LLM dilesenkan melalui dua pilihan: AGPL v3 ATAU lesen komersial Artifex.

AGPL bermaksud: jika anda menggunakan pustaka ini dalam SaaS awam, anda mesti menerbitkan keseluruhan kod sumber perkhidmatan anda di bawah lesen AGPL yang sama. Untuk kegunaan dalaman (skrip anda pada komputer riba), tiada sekatan.

Untuk pembangunan komersial tanpa mendedahkan kod, beli lesen daripada Artifex (artifex.com). Harga tidak diterbitkan; minta maklumat daripada bahagian jualan.

Jika anda membina produk untuk pelanggan, semak lesen dari awal. MarkItDown (MIT) dan Docling (MIT) lebih selamat untuk SaaS.

Kaedah 3: Bagaimanakah cara menyambungkan pelayan MCP MarkItDown kepada Claude Code?

Inti pati

Pelayan MCP MarkItDown ialah MarkItDown yang sama dibungkus dengan protokol MCP, jadi Claude Code boleh menukar PDF secara langsung tanpa memuatkan fail asal ke dalam konteks. Sambungkannya dengan satu arahan menggunakan uv; versinya ditetapkan: markitdown-mcp@0.0.1a7. Alat yang diterima oleh Claude ialah convert_to_markdown(uri). Kos semasa melahu ialah kira-kira 110 token untuk penerangan kemahiran, dan sifar apabila ia tidak diperlukan.

MarkItDown dalam mod CLI bermaksud “saya menukar fail secara manual terlebih dahulu”; pelayan MCP bermaksud “Claude Code menentukan bila hendak menukarnya.”

Pemasangan

Anda memerlukan pengurus pakej uv. Pelayan tidak perlu dipasang secara berasingan; uv akan memuat turunnya apabila kali pertama dijalankan.

Konfigurasi dalam Claude Code

Satu arahan menyambungkan pelayan kepada semua projek anda dengan versi yang ditetapkan:

claude mcp add --scope user --env 'ORT_DISABLE_TELEMETRY=1' --env 'UV_PYTHON=3.12' --transport stdio markitdown -- uvx markitdown-mcp@0.0.1a7
claude mcp list

Entri markitdown sepatutnya menunjukkan “Connected.” Pelancaran pertama memuat turun kira-kira tujuh puluh pakej dan mengambil masa sehingga seminit; selepas itu, pelayan bermula dalam satu atau dua saat.

Inilah sebabnya arahan tersebut memerlukan kedua-dua pemboleh ubah ini. ORT_DISABLE_TELEMETRY=1 menyahaktifkan statistik yang dihantar secara lalai kepada Microsoft oleh enjin onnxruntime dalam pelayan pada Mac dan Linux. UV_PYTHON=3.12 menjalankan pelayan menggunakan Python 3.12, yang mempunyai pakej prabina untuk Windows, Linux dan Mac dengan Apple Silicon. Pada Mac Intel dan macOS 13 serta versi terdahulu, pelayan tidak dipasang dengan Python 3.14. Terdapat satu perkara yang perlu diketahui bagi Intel dan 3.12: uv akan membina pustaka cryptography daripada kod sumber kerana tiada pakej prabina Intel tersedia sejak Jun 2026. Pemasangan akan mengambil masa lebih lama dan mungkin gagal. Jika anda tidak mempunyai Python 3.12, uv akan memuat turunnya untuk anda.

Pelayan berjalan terus pada komputer anda dan boleh membuka sebarang fail yang boleh anda akses. Jika Claude Code sedang terbuka, mulakannya semula dan markitdown akan muncul dalam senarai pelayan MCP.

Cara menggunakannya

Dalam Claude Code, katakan sahaja:

Convert /Users/your-user/Documents/report.pdf to Markdown and analyze the main points.

Claude sendiri akan memanggil convert_to_markdown(uri), mendapatkan Markdown dan menggunakannya—PDF langsung tidak dimuatkan ke dalam konteks.

URI yang disokong

  • file:// - fail setempat
  • http://, https:// - dokumen dalam talian
  • data: - data sebaris (Base64)

Keselamatan

Daripada README rasmi:

Pelayan tidak menyokong pengesahan dan berjalan dengan kebenaran pengguna yang melancarkannya.

— Microsoft, https://github.com/microsoft/markitdown/tree/main/packages/markitdown-mcp

Secara lalai, ia terikat pada localhost. Jika anda menjalankannya melalui HTTP/SSE (pilihan --http --host 127.0.0.1 --port 3001), jangan dedahkan port kepada pihak luar tanpa proksi songsang yang mempunyai pengesahan.

Kaedah manakah yang patut dipilih untuk tugasan anda?

Inti pati

MarkItDown ialah alat serba guna jika anda bekerja dengan pelbagai format (PDF + DOCX + PPTX + YouTube) dan memerlukan arahan CLI yang pantas. PyMuPDF4LLM ialah pakar PDF: lebih pantas, dengan OCR dan pengekalan pautan, tetapi menjadi perangkap AGPL untuk SaaS. Docling sesuai untuk pengeluaran dan paling baik mengendalikan jadual serta formula. Marker sesuai untuk kertas saintifik dengan matematik. Pelayan MCP sesuai jika anda tidak mahu memikirkan penukaran dan mahu Claude Code membuat keputusan sendiri.

Jadual perbandingan lanjutan:

AlatBintang GitHubPaling sesuai untukKelajuanLesen
MarkItDown (Microsoft)134kPDF + DOCX + PPTX + YouTube + audioSederhanaMIT
PyMuPDF4LLM (Artifex)-PDF asli, OCR, URL terbenamPaling pantas (tanpa GPU)AGPL v3 / komersial
Docling (IBM Research)60.7kRAG pengeluaran, jadual, formulaSederhanaMIT
Marker (datalab.to)35.6kPDF saintifik, arXiv, formulaTinggi (dengan GPU)GPL-3.0 + Open Rail-M
MinerU-Dokumen CJK (Cina/Jepun)TinggiApache-2.0

Marker melaporkan angka ketepatan yang mengagumkan dalam penanda aras:

0.18 saat setiap halaman pada GPU H100 (122 halaman sesaat). Ketepatan 95.67% berbanding 84.24% untuk Llamaparse dan 86.43% untuk Mathpix. Bagi kertas saintifik, 96.67%.

— datalab.to, https://github.com/datalab-to/marker

Namun, Marker memerlukan GPU untuk kelajuan yang baik dan turut menggunakan model pembelajaran mesin. Untuk kebanyakan tugasan (PDF teks biasa), PyMuPDF4LLM atau MarkItDown boleh melakukan tugas itu dalam beberapa saat tanpa GPU.

Peraturan mudah untuk memilih

  1. Satu atau dua PDF, perlu diproses dengan cepat - MarkItDown CLI.
  2. Puluhan PDF, perlu automasi - pelayan MCP MarkItDown atau PyMuPDF4LLM dalam skrip.
  3. PDF dengan pautan dan imej yang strukturnya perlu dikekalkan - PyMuPDF4LLM.
  4. RAG pengeluaran untuk perniagaan yang memerlukan kestabilan jadual - Docling.
  5. Kertas saintifik dengan formula - Marker.
  6. Tidak mahu memikirkannya; biar Claude menukar PDF - pelayan MCP MarkItDown.

Bagaimanakah cara menulis skrip sedia guna untuk menukar folder dokumen secara automatik?

Inti pati

Kaedah paling mudah ialah skrip bash yang mengimbas folder projek, menukar semua fail PDF, DOCX dan PPTX kepada Markdown, kemudian meletakkannya dalam subfolder _md/. Sediakannya sekali sahaja dan setiap folder dokumen baharu akan menjadi “boleh dibaca Claude” dalam satu laluan. Kemudian bawa _md/ ke Claude Code menggunakan @_md/ dan bekerja dengan teks yang dipadatkan.

Contoh praktikal: bayangkan anda mempunyai 40 laporan PDF dan PPTX daripada pelanggan dalam satu folder—penyata broker, kontrak dan pembentangan. Memuat naik seluruh folder terus ke Claude tidak berguna: tetingkap konteks akan dipenuhi maklumat sebelum jawapan pertama diberikan. Jalankan seluruh folder melalui skrip di bawah sekali sahaja, kemudian teruskan bekerja dengan fail .md yang ringan dan bukannya PDF yang besar.

Simpan skrip ini sebagai scripts/docs-to-md.sh di direktori akar projek:

#!/bin/bash
# docs-to-md.sh - menukar semua dokumen dalam folder kepada Markdown menggunakan MarkItDown
# Penggunaan: bash docs-to-md.sh ./documents

set -e

INPUT_DIR="${1:-./documents}"
OUTPUT_DIR="${INPUT_DIR}/_md"

mkdir -p "$OUTPUT_DIR"

echo "Scanning $INPUT_DIR..."

for file in "$INPUT_DIR"/*.{pdf,docx,pptx,xlsx}; do
  [ -f "$file" ] || continue

  basename=$(basename "$file")
  name="${basename%.*}"
  output="$OUTPUT_DIR/${name}.md"

  if [ -f "$output" ] && [ "$output" -nt "$file" ]; then
    echo "Skipping $basename (already converted)"
    continue
  fi

  echo "Converting $basename..."
  markitdown "$file" > "$output"
done

echo "Done. Results are in $OUTPUT_DIR"

Jadikannya boleh dilaksanakan:

chmod +x scripts/docs-to-md.sh

Jalankannya:

bash scripts/docs-to-md.sh ./reports

Selepas skrip dijalankan, ./reports/_md/ mengandungi versi .md bagi semua dokumen. Bawa fail-fail itu ke Claude Code menggunakan @reports/_md/ dan bekerja dengan teks yang dipadatkan dan bukannya PDF.

Skrip ini secara automatik melangkau fail yang sudah ditukar (jika fail .md lebih baharu daripada fail sumber)—menjalankannya semula tidak mahal dan tidak mengira semula semuanya.

Idempotensi dan penukaran berperingkat

Jika anda mahu skrip mengesan PDF yang telah berubah (disimpan semula dengan nama yang sama), tambahkan semakan hash kandungan:

hash=$(shasum -a 256 "$file" | cut -d' ' -f1)
hash_file="$OUTPUT_DIR/.${name}.sha256"

if [ -f "$hash_file" ] && [ "$(cat "$hash_file")" = "$hash" ]; then
  echo "Skipping $basename (hash matches)"
  continue
fi

markitdown "$file" > "$output"
echo "$hash" > "$hash_file"

Versi ini hanya menukar semula fail jika kandungannya telah berubah.

Bilakah PDF dalam Claude masih lebih baik daripada Markdown?

Inti pati

Penukaran kepada Markdown kehilangan tiga perkara: unsur visual (rajah, carta, pelan tindakan), jadual kompleks dengan sel bercantum dan kapsyen, serta format lengkap dokumen sebagai artifak (contohnya kontrak yang halamannya perlu anda petik). Jika perkara ini penting untuk tugasan, kekalkan PDF, aktifkan analisis visual dan terima kos visual itu dengan sedar.

Tiga keadaan apabila penukaran Markdown tidak memadai:

1. Analisis visual rajah dan carta

Jika Claude perlu “membaca” carta—lengkung harga, rajah proses atau rajah seni bina—maklumat itu tiada dalam Markdown. Markdown hanya mengekalkan kapsyen rajah; rajah itu sendiri hilang.

Penyelesaian: muat naik PDF dan aktifkan mod visual secara jelas. Dalam API Claude, bendera itu berfungsi secara automatik; dalam AWS Bedrock, anda memerlukan bendera citations.

Claude menganalisis teks dan imej untuk memahami dokumen dengan lebih baik.

— Anthropic, https://platform.claude.com/docs/en/docs/build-with-claude/pdf-support

2. Jadual kompleks dengan sel bercantum

Jadual Markdown berbentuk rata. Jika PDF mempunyai jadual dengan sel bercantum, pengepala berbilang aras atau subtabel bersarang, penukar akan meratakannya atau kehilangan hubungan antara unsur.

Penyelesaian: gunakan PDF secara langsung, gunakan Docling (yang mengendalikan jadual kompleks dengan paling baik), atau format jadual secara manual selepas penukaran.

3. Dokumen sebagai artifak dengan rujukan halaman

Bagi dokumen undang-undang, kontrak dan minit mesyuarat, anda perlu boleh memetik “halaman 7, perenggan 3.” Nombor halaman hilang dalam Markdown.

Penyelesaian: PDF + Files API + caching prompt. Muat naik sekali, kemudian rujuknya melalui file_id; Claude dapat melihat penomboran halaman dan memetik halaman tertentu.

Dokumen pendek

Jika PDF mempunyai kurang daripada 2 halaman dan digunakan sekali sahaja, penukaran tidak berbaloi. 5,000 token untuk PDF berbanding 800 untuk Markdown tidak memberikan penjimatan yang cukup untuk mewajarkan pemasangan MarkItDown.

Titik pulang modal ialah kira-kira 5+ halaman atau 2+ penggunaan dokumen yang sama. Di bawah angka itu, muat naik PDF secara langsung; melebihinya, tukarkannya.

Apakah 5 kesilapan paling lazim yang dilakukan orang dengan PDF dalam Claude?

Inti pati

Perkara utama yang perlu dielakkan: memuat naik semula PDF yang sama dalam sembang berlainan dan bukannya menukarnya sekali, tidak menggunakan caching prompt untuk permintaan berulang, menggunakan tangkapan skrin dan bukannya teks, tidak menjalankan OCR pada PDF yang diimbas, dan mengabaikan had 100 halaman bagi model dengan konteks 200K. Setiap kesilapan membazirkan puluhan ribu token tanpa sebab yang munasabah.

1. Memuat naik PDF yang sama dalam sembang baharu setiap kali

Claude Pro mempunyai had mesej dalam tempoh 5 jam—satu laporan 50 halaman boleh menghabiskan semuanya sebelum anda bertanya soalan kedua.

Terdapat satu prinsip mudah untuk perkara ini: satu tugasan—satu sembang. Apabila AI mula menggunakan jumlah token yang tidak masuk akal, itu bermakna anda memasukkan semuanya ke dalam satu sembang dan berulang kali membawa masuk PDF tersebut. Kekalkan satu tugasan kecil dalam setiap tetingkap. Tukar dokumen kepada Markdown sekali sahaja, kemudian tambahkan fail .md pada setiap tetingkap baharu bersama projek. Bulatan tetingkap konteks tidak akan bertukar menjadi kuning.

Penyelesaian: sama ada tukarkannya kepada Markdown sekali sahaja atau gunakan Files API dengan file_id dan caching prompt.

2. Tangkapan skrin dan bukannya teks

Contoh biasa: seseorang mahu menunjukkan cebisan kod atau jadual kepada Claude, mengambil tangkapan skrin seluruh skrin 1920×1080, lalu tertanya-tanya mengapa hadnya habis selepas 5 permintaan.

Tangkapan skrin 1000×1000 piksel berharga kira-kira 1,300 token. Teks yang sama jika disalin dengan tangan berharga 50–100 token. Perbezaannya ialah 13–26 kali ganda.

Penyelesaian: pangkas tangkapan skrin dengan kemas (hanya bahagian penting) atau, lebih baik lagi, salin teks itu secara langsung.

3. PDF imbasan tanpa OCR

MarkItDown tidak boleh melakukan OCR. Jika anda menukar dokumen imbasan, hasilnya ialah fail .md kosong (atau 3 baris hingar).

Penyelesaian: untuk dokumen imbasan, gunakan PyMuPDF4LLM (dengan OCR pintar terbina dalam) atau Docling.

4. Mengabaikan had 100 halaman

Dokumentasi Anthropic menyatakan had 600 halaman setiap permintaan—tetapi, dalam praktiknya, had bagi model dengan konteks 200K (Sonnet 4.x, Opus 4.x) ialah 100 halaman. Had 600 halaman ditujukan kepada model lama atau peringkat khas.

Jika anda memuat naik laporan 150 halaman ke Sonnet 4.6, anda akan menerima ralat atau, lebih buruk lagi, Claude akan memproses 100 halaman pertama sahaja dan bertindak seolah-olah telah membaca seluruh dokumen.

Penyelesaian: bahagikan PDF panjang kepada beberapa bahagian sebelum memuat naiknya. Atau tukarkannya kepada Markdown—tiada had halaman, hanya had token.

5. Tidak menggunakan caching prompt untuk permintaan berulang

Jika anda bekerja dengan dokumen yang sama melalui API, bungkusnya dalam cache_control: ephemeral. Permintaan berulang dalam masa 5 minit berharga 10% daripada harga awal. Satu permintaan lebih mahal; selebihnya mendapat diskaun 90%.

Penyelesaian: aktifkan caching prompt secara lalai untuk apa-apa yang anda muat naik lebih daripada sekali.

Apa seterusnya: kejuruteraan konteks

Inti pati

Menukar PDF kepada Markdown ialah salah satu teknik kejuruteraan konteks, iaitu kemahiran baharu untuk bekerja dengan AI. Prompt ialah soalan. Konteks ialah semua perkara yang dilihat Claude sebelum dan di sekitar soalan: prompt sistem, CLAUDE.md, fail, pelayan MCP dan sejarah sesi. Lebih bersih konteks, lebih tepat jawapannya dan lebih rendah kosnya. Baca analisis penuh dalam panduan “Kejuruteraan Konteks pada 2026.”

Penukaran PDF kepada Markdown ialah salah satu cara menjimatkan token. Dengan sendirinya, ia tidak menjadikan jawapan Claude lebih tepat. Ketepatan datang daripada kejuruteraan konteks—disiplin tentang perkara yang anda masukkan ke dalam konteks model sebelum bertanya soalan.

Jika CLAUDE.md anda mempunyai 800 baris, projek anda mempunyai 10 pelayan MCP yang tidak perlu, dan anda membawa masuk PDF 100 halaman, penukaran Markdown akan menghalang satu kebocoran, tetapi tiga yang lain akan kekal. Sebab itulah panduan ini merangkumi:

Terus terokai Ailoot di ailoot.ai.

Butiran lanjut

Soalan lazim: PDF dalam Claude Code: penukaran, token dan pengekalan struktur

Berapa token Markdown digunakan contoh 15 halaman, empat sembang?

Menggunakan andaian artikel 300 token setiap halaman ditukar, jumlahnya 15 × 300 × 4 = 18,000 token input. Itu anggaran ilustrasi; kira token dokumen ditukar untuk fail sendiri.

Adakah penukaran teks mencukupi untuk setiap PDF?

Tidak. Periksa Markdown ditukar berbanding PDF, terutama jadual, susunan halaman dan kandungan bergantung pada imej. Bandingkan penggunaan token hanya selepas memastikan maklumat diperlukan tugasan kekal selepas penukaran.

Semua artikel