部落格

Claude Code 中的 PDF:轉換、Token 與結構保留

Markdown

MarkItDown、PyMuPDF4LLM、MCP、完整轉換指令碼、PDF 限制,以及視覺分析比節省 token 更重要的情況。

閱讀全文

重點摘要

在 Claude Code 中,每一頁 PDF 都會在你提出第一個問題前消耗 1,500–3,000 個 token,而 Anthropic 在文件中明確說明了這點。下方示意中,15 頁報告在 4 個聊天使用,PDF 輸入為 135,000 token、約 $0.40,Markdown 為 18,000 token、$0.054,約少 87%。這假設每 PDF 頁 2,250、Markdown 頁 300 token,並用範例輸入費率;實際文件會不同。本指南介紹 3 種轉換方法(MarkItDown、PyMuPDF4LLM 和 MCP 伺服器),以及可直接使用、能處理整個文件資料夾的 bash 指令碼。

Ailoot 的實用操作說明請參閱文件。

Claude 如何處理 PDF?為什麼每頁會消耗 1,500–3,000 個 token?

重點摘要

將 PDF 上傳到 Claude Code 時,它不會像讀取文字檔那樣讀取 PDF。首先,每一頁都會轉換成影像,接著從中擷取文字,然後將這兩個層面——影像和文字——一起加入上下文。這就是為什麼一頁會占用 1,500–3,000 個 token,而一份 50 頁的文件可能會在你提出第一個問題前就用掉 75,000–150,000 個 token。

Anthropic 的官方文件以簡單明瞭的三個步驟說明這項流程:

系統會將文件的每一頁轉換成影像。系統會擷取每一頁的文字,並與該頁影像一併提供。Claude 會分析文字和影像,以更深入理解文件。

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

聽起來很合理,但處理成本會隨頁數線性增加。以下這個數字可以解釋,為什麼只處理一份 PDF 就會用完你的訂閱額度:

每頁通常會依內容密度使用 1,500–3,000 個 token。由於每一頁都會轉換成影像,因此適用與一般影像相同的成本。

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

為了了解這個數字有多大,Anthropic 在 Bedrock 上以兩種模式測量同一份 3 頁 PDF。文字模式(Converse Document Chat)使用約 1,000 個 token。視覺分析(Claude PDF Chat)則使用約 7,000 個 token。納入影像會讓處理成本增加 7 倍。

頁面截圖的成本更高。一張 1000×1000 像素的螢幕截圖約消耗 1,300 個 token。

原理很簡單:PDF 成本高,是因為 Claude 不完全信任 OCR。它同時使用文字和影像進行比對,而兩個層面的費用都得一起支付。處理大型文件時,可以改用不同方式:將檔案存成 Markdown,放在專案資料夾中,再告訴 Claude:「這裡有一份包含資訊的文件,請把內容整理開來。」它會將內容分散到自己的檔案中,並使用整理好的文字繼續工作,而不是一次消耗所有內容。

一般任務中的 PDF 會消耗多少 token?

重點摘要

考慮 15 頁公開報告在分析、引文、翻譯及摘要四種脈絡使用。假設每 PDF 頁 2,250 輸入 token、Markdown 頁 300,且費率相同;重傳 PDF 為 135,000 token、約 $0.40,Markdown 為 18,000、$0.054。約 87% 的節省來自這些假設,不是每份 PDF 的實測。

具體數字(Sonnet 4.x 模型,輸入費用為每百萬個 token $3):

方式Token 數(15 頁,4 個對話)費用
直接上傳 PDF 4 次15 × 2250 × 4 = 135,000約 $0.40
PDF → Markdown + 4 個對話15 × 300 × 4 = 18,000約 $0.054
節省−87%−$0.35

這只是執行一輪 4 次請求的結果。之後就會用到提示快取(預設 TTL 為 5 分鐘,延長方案最多可達 1 小時,在有效期間內重複呼叫最多可享 90% 折扣),節省幅度會進一步增加。

每次在新的對話中上傳相同 PDF 時,Claude 都會重新讀取;快取不會在不同對話間延續。

若先將同一份 15 頁 PDF 轉成 Markdown,再於四個新聊天以 .md 載入,本例為 15 × 300 × 4 = 18,000 個輸入 token,而非 135,000。每轉換頁 300、每 PDF 頁 2,250 都是本次計算假設,不是所有 PDF 的實測常數。估算前先計實際文件 token 並確認轉換品質。

對 Claude Pro 訂閱方案來說,這個差異更顯著。一份 100 頁的報告就可能耗盡整個 5 小時額度。轉成 Markdown 後,同一額度足以處理 10 份以上這類文件。

2026 年 Anthropic API 對 PDF 有哪些限制?

重點摘要

Anthropic 設有嚴格限制:每個請求最多 32 MB(包括所有內容,不只是 PDF),每個請求最多 600 頁。不過,對於上下文為 200K 的目前 Sonnet 4.x 和 Opus 4.x 模型,上限較低,為100 頁。你可以透過 URL、Base64,或 Files API 傳送 PDF,並使用 file_id 重複利用。處理長文件時會使用 Files API,並將文件拆分成多個部分。

Anthropic 的文件在最上方列出了限制(截至 2026 年 5 月 31 日):

要求限制
請求大小上限32 MB(依平台而異)
每個請求的頁數上限600(上下文為 200K token 的模型則為 100)
格式未設密碼或加密的標準 PDF

兩項限制都適用於整個請求本文,包括與 PDF 一同傳送的內容。對於大型 PDF,請使用 Files API,並以 file_id 引用,讓請求本文保持精簡。

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

Claude.ai(消費者版網頁應用程式)的限制不同:每個檔案最多 500 MB,每個對話最多 20 個檔案。但視覺分析僅適用於 100 頁以下的 PDF;超過這個頁數時,Claude 只能看到文字,看不到圖表和示意圖。

透過 API 傳送 PDF 的 3 種方式:

  1. 透過 URL - "source": {"type": "url", "url": "..."} - 文件已上線時最簡單。
  2. 使用 Base64 - "source": {"type": "base64", "media_type": "application/pdf", "data": "..."} - 適用於本機檔案。
  3. 透過 Files API - "source": {"type": "file", "file_id": "file_abc123"} - 適用於重複請求;需要 beta 標頭 anthropic-beta: files-api-2025-04-14。

使用同一份 PDF 處理不同對話時,Files API 是主要的節省方式。上傳一次並取得 file_id,之後所有互動都使用它。搭配 cache_control: ephemeral,重複呼叫只需支付一般價格的 10%。

Anthropic 也提供了降低使用量的官方建議:

內容密集的 PDF(有大量小字、複雜表格或大量圖形)可能會在達到頁數上限前就填滿上下文視窗。試著將文件拆分成多個章節;對於大型檔案,請在上傳前降低內嵌影像的解析度。

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

方法 1:如何在 5 分鐘內設定 MarkItDown?

重點摘要

MarkItDown 是 Microsoft AutoGen 團隊開發的 Python 工具,可將 PDF、DOCX、PPTX、XLSX、HTML、音訊、影像,甚至 YouTube 影片轉換成乾淨的 Markdown。它在 GitHub 上有 134 千顆星,採用 MIT 授權,只要一個指令就能安裝:pip install 'markitdown[all]'。使用同樣簡單:markitdown document.pdf > document.md。在使用 Claude Code 前轉換檔案時,這是用途最廣的工具。

MarkItDown 是 Microsoft 的官方專案,由 AutoGen 團隊維護。截至 2026 年 5 月底,它在 GitHub 上有 134 千顆星和 9.2 千個分支。README 直接說明其用途:

一款輕量的 Python 工具,可將檔案轉換成 Markdown,以便用於 LLM 和文字分析流程。

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

支援的格式:

  • 文件: PDF、DOCX、PPTX、XLSX
  • 網頁: HTML、JSON、XML、CSV
  • 媒體: 含轉錄功能的音訊、含 EXIF 和 OCR 的影像、YouTube 影片(透過字幕)
  • 封存檔: ZIP、EPub
  • 其他: Outlook MSG 檔案中的所有附件

安裝

需求:Python 3.10+(macOS 通常已預先安裝;Windows 則需要另外安裝)。

pip install 'markitdown[all]'

如果不需要所有格式,可以只安裝所需項目:

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

轉換單一檔案

最簡單的情況:

markitdown document.pdf > document.md

完成後,document.md 會出現在目前資料夾中。使用 @document.md 將它載入 Claude Code,或直接放在專案旁邊。

Python API

如果想整合進自己的指令碼:

from markitdown import MarkItDown

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

# You can save it straight away:
with open("research-paper.md", "w") as f:
    f.write(result.text_content)

MarkItDown 無法處理的項目

  • 掃描 PDF 的 OCR - 不會傳回任何內容。掃描檔需要 PyMuPDF4LLM 或 Docling。
  • 多欄複雜版面 - 可能會打亂閱讀順序。
  • PDF 中的內嵌 URL - 不會保留。

對於簡單的 PDF(報告、文章、文件),MarkItDown 是最佳選擇:這款用途廣泛的工具只需一分鐘即可安裝,也不需要 Python 知識。它處理西里爾字母文字和掃描文件的表現,請參閱將 PDF 轉換成供 AI 使用的文字分析中的測量結果。

方法 2:PyMuPDF4LLM 有哪些功能?什麼時候更適合使用?

重點摘要

PyMuPDF4LLM 是 Artifex Software 的專案,基於原生 C 語言 MuPDF 引擎。它是速度最快的 PDF 轉換器(不需要 GPU);智慧 OCR 只會套用在無法讀取的區域,可減少 50% 的處理時間。它是唯一能保留 PDF 內嵌 URL 和影像的熱門工具。缺點是採用雙重授權:AGPL v3 或 Artifex 商業授權;對 SaaS 專案而言,AGPL 表示你必須公開程式碼。

MarkItDown 提供廣泛的檔案格式支援;PyMuPDF4LLM 則提供深入的 PDF 處理能力。

一款輕量的 PyMuPDF 擴充功能,只需最少設定,就能將 PDF 轉換成乾淨、結構化的資料。

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

截至 2026 年 5 月 31 日的版本為 1.27.2.3(於 2026 年 4 月 24 日發布)。

功能內容

  • 以正確閱讀順序處理多欄頁面
  • 將表格轉換成 GitHub Flavored Markdown
  • 自動移除頁首和頁尾
  • 擷取影像並以相對連結存入另一個資料夾
  • 智慧 OCR:僅套用在無法讀取的區域,可節省約 50% 的處理時間
  • 原生 C 引擎,不需要 GPU

安裝

pip install pymupdf4llm

使用方式

import pymupdf4llm

# Basic use - straight to Markdown:
md_text = pymupdf4llm.to_markdown("document.pdf")

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

如前所述,也可以用一行指令完成:

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

什麼時候該選 PyMuPDF4LLM,而不是 MarkItDown?

  • PDF 含有許多需要保留的連結時(MarkItDown 會遺失這些連結)。
  • 文件是掃描檔,而且需要 OCR 時。
  • 需要在本機快速處理數千個檔案時——原生 C 引擎比 Python 封裝函式更快。
  • 需要將 PDF 中的影像擷取到另一個資料夾,以便進一步處理時。

授權細節(商業用途的重要資訊)

PyMuPDF4LLM 採雙重授權:AGPL v3 或 Artifex 商業授權。

AGPL 的意思:如果你在公開 SaaS 中使用這個程式庫,就必須依相同的 AGPL 授權公開服務的全部原始碼。若是內部使用(例如在筆電上執行自己的指令碼),則沒有相關限制。

若要在不公開程式碼的情況下進行商業開發,請向 Artifex(artifex.com)購買授權。價格未公開,請向業務部門詢價。

如果你正在為客戶開發產品,請在一開始就確認授權。MarkItDown(MIT)和 Docling(MIT)對 SaaS 來說更安全。

方法 3:如何將 MarkItDown MCP 伺服器連接到 Claude Code?

重點摘要

MarkItDown MCP 伺服器就是以 MCP 協定包裝的 MarkItDown,因此 Claude Code 可以即時轉換 PDF,不必將原始檔案載入上下文。使用 uv,只要一個指令就能連線,且版本已固定:markitdown-mcp@0.0.1a7。Claude 可使用的工具是 convert_to_markdown(uri)。閒置時,技能說明約占 110 個 token,不需要時則為零。

使用 CLI 模式的 MarkItDown,意思是「我事先手動轉換檔案」;使用 MCP 伺服器,意思則是「由 Claude Code 決定何時轉換」。

安裝

你需要 uv 套件管理器。不必另外安裝伺服器;uv 會在第一次執行時下載。

在 Claude Code 中設定

使用一個指令就能將伺服器連接到所有專案,並固定版本:

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

markitdown 項目應顯示「Connected」。第一次啟動時會下載約 70 個套件,最多需要一分鐘;之後伺服器只需一兩秒就會啟動。

指令需要這兩個變數的原因如下。ORT_DISABLE_TELEMETRY=1 會停用伺服器內 onnxruntime 引擎在 Mac 和 Linux 上預設傳送給 Microsoft 的統計資料。UV_PYTHON=3.12 會以 Python 3.12 執行伺服器,因為 Windows、Linux 和搭載 Apple Silicon 的 Mac 都有預先建置的套件。在 Intel Mac 和 macOS 13 及更早版本上,伺服器無法在 Python 3.14 下安裝。Intel 裝置使用 Python 3.12 時有一項注意事項:自 2026 年 6 月起,Intel 沒有可用的預先建置套件,因此 uv 會從原始碼建置 cryptography 程式庫。安裝時間會更長,也可能失敗。如果你沒有 Python 3.12,uv 會替你下載。

伺服器會直接在你的電腦上執行,並能開啟你有權存取的任何檔案。如果 Claude Code 當時已開啟,請重新啟動;接著 MCP 伺服器清單中就會出現 markitdown。

使用方式

在 Claude Code 中,只要說:

將 /Users/your-user/Documents/report.pdf 轉換成 Markdown,並分析重點。

Claude 會自行呼叫 convert_to_markdown(uri)、取得 Markdown 並使用內容進行工作——PDF 不會載入上下文。

支援的 URI

  • file:// - 本機檔案
  • http://、https:// - 線上文件
  • data: - 內嵌資料(Base64)

安全性

摘自官方 README:

此伺服器不支援授權驗證,並會使用啟動它的使用者權限執行。

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

預設情況下,它會綁定 localhost。如果透過 HTTP/SSE 執行(選項 --http --host 127.0.0.1 --port 3001),請勿在沒有經過驗證的反向代理時將連接埠對外公開。

該根據任務選擇哪種方法?

重點摘要

如果你會處理多種格式(PDF + DOCX + PPTX + YouTube),並需要快速的 CLI 指令,MarkItDown 是全能型工具。PyMuPDF4LLM 是 PDF 專用工具:速度更快,支援 OCR 和保留連結,但對 SaaS 來說,AGPL 可能是個陷阱。Docling 適合正式環境,尤其擅長處理表格和公式。Marker 適用於含數學內容的科學論文。如果你不想操心轉換工作,並想讓 Claude Code 自行決定,就用 MCP 伺服器。

詳細比較表:

工具GitHub 星數最適用途速度授權
MarkItDown(Microsoft)134kPDF + DOCX + PPTX + YouTube + 音訊中等MIT
PyMuPDF4LLM(Artifex)-原生 PDF、OCR、內嵌 URL最快(不需要 GPU)AGPL v3 / 商業
Docling(IBM Research)60.7k正式環境 RAG、表格、公式中等MIT
Marker(datalab.to)35.6k科學 PDF、arXiv、公式高(使用 GPU 時)GPL-3.0 + Open Rail-M
MinerU-CJK 文件(中文/日文)高Apache-2.0

Marker 在基準測試中公布了出色的準確度數據:

使用 H100 GPU 時,每頁需 0.18 秒(每秒 122 頁)。準確率為 95.67%,高於 Llamaparse(84.24%)和 Mathpix(86.43%)。處理科學論文時為 96.67%。

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

但 Marker 要有 GPU 才能達到良好速度,而且會一併使用機器學習模型。對大多數任務而言(一般文字 PDF),PyMuPDF4LLM 或 MarkItDown 不需要 GPU,幾秒鐘就能完成工作。

簡單的選擇原則

  1. 只有一兩份 PDF,而且要快速完成 - MarkItDown CLI。
  2. 有數十份 PDF,需要自動化處理 - MarkItDown MCP 伺服器或指令碼中的 PyMuPDF4LLM。
  3. PDF 含有連結和影像,且需要保留結構 - PyMuPDF4LLM。
  4. 商業用途的正式環境 RAG,且表格穩定性很重要 - Docling。
  5. 含公式的科學論文 - Marker。
  6. 不想操心轉換,想交給 Claude 處理 - MarkItDown MCP 伺服器。

如何撰寫可直接使用的指令碼,自動轉換整個文件資料夾?

重點摘要

最方便的做法是使用 bash 指令碼巡覽專案資料夾,將所有 PDF、DOCX 和 PPTX 檔案轉換成 Markdown,並放進 _md/ 子資料夾。設定一次後,任何新文件資料夾都能透過一次處理變得「Claude 可讀」。接著使用 @_md/ 將 _md/ 載入 Claude Code,以壓縮後的文字繼續工作。

舉個實用例子:假設你有 40 份客戶提供的 PDF 和 PPTX 報告放在同一個資料夾中,包括券商對帳單、合約和簡報。直接將整個資料夾上傳到 Claude 毫無用處:還沒收到第一個回覆,上下文視窗就會被資訊塞滿。先用以下指令碼一次處理整個資料夾,再改用輕量的 .md 檔案繼續工作,而不是使用龐大的 PDF。

將此指令碼儲存為專案根目錄中的 scripts/docs-to-md.sh:

#!/bin/bash
# docs-to-md.sh - 使用 MarkItDown 將資料夾中的所有文件轉換為 Markdown
# 用法:bash docs-to-md.sh ./documents

set -e

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

mkdir -p "$OUTPUT_DIR"

echo "掃描 $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 "略過 $basename(已轉換)"
    continue
  fi

  echo "正在轉換 $basename..."
  markitdown "$file" > "$output"
done

echo "完成。結果位於 $OUTPUT_DIR"

將它設為可執行:

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

執行它:

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

執行後,./reports/_md/ 會包含所有文件的 .md 版本。使用 @reports/_md/ 將它們載入 Claude Code,改用壓縮後的文字,而非 PDF 繼續工作。

指令碼會自動略過已轉換的檔案(.md 檔案比來源檔案新時)。重新執行的成本很低,也不會把所有內容重新轉換一次。

冪等性與增量轉換

如果要讓指令碼偵測以相同名稱重新儲存後有所變更的 PDF,請加入內容雜湊檢查:

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

if [ -f "$hash_file" ] && [ "$(cat "$hash_file")" = "$hash" ]; then
  echo "略過 $basename(雜湊相符)"
  continue
fi

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

這個版本只有在檔案內容變更時才會重新轉換。

什麼時候在 Claude 中使用 PDF 會比 Markdown 更好?

重點摘要

轉成 Markdown 會失去 3 項內容:視覺元素(示意圖、圖表、藍圖)、含合併儲存格和標題的複雜表格,以及作為成品的完整文件格式(例如需要依頁碼引用的合約)。如果這些內容對任務很重要,就保留 PDF、啟用視覺分析,並明確接受視覺處理成本。

Markdown 轉換無法滿足需求的 3 種情況:

1. 視覺分析示意圖和圖表

如果 Claude 需要「讀取」圖表——例如價格曲線、流程圖或架構圖——這些資訊不會出現在 Markdown 中。Markdown 只會保留圖說,圖本身會遺失。

解決方案:上傳 PDF 並明確啟用視覺模式。在 Claude API 上,這個旗標會自動生效;在 AWS Bedrock 上,則需要 citations 旗標。

Claude 會分析文字和影像,以更深入理解文件。

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

2. 含合併儲存格的複雜表格

Markdown 表格是扁平的。如果 PDF 中的表格有合併儲存格、多層標題或巢狀子表格,轉換器可能會將表格扁平化,或遺失其中的關聯。

解決方案:直接使用 PDF、使用 Docling(它最擅長處理複雜表格),或在轉換後手動排版。

3. 需要標示頁碼的文件成品

法律文件、合約和會議紀錄需要能引用「第 7 頁第 3 段」。轉成 Markdown 後,頁碼會遺失。

解決方案:使用 PDF + Files API + 提示快取。上傳一次,接著透過 file_id 引用;Claude 會保留頁碼,並能引用特定頁面。

短文件

如果 PDF 不到 2 頁,而且只會用一次,就不值得轉換。PDF 需要 5,000 個 token,Markdown 需要 800 個 token,節省的幅度還不足以值得安裝 MarkItDown。

損益平衡點約為 5 頁以上,或同一份文件使用 2 次以上。低於這個範圍時直接上傳 PDF;超過時則轉換。

在 Claude 中處理 PDF 時,最常見的 5 個錯誤是什麼?

重點摘要

主要問題包括:在不同對話中重複上傳同一份 PDF,而不是轉換一次;重複請求時沒有使用提示快取;用螢幕截圖取代文字;沒有對掃描 PDF 執行 OCR;忽略上下文為 200K 的模型之 100 頁上限。這些錯誤每一項都會白白浪費數萬個 token。

1. 每次都在新對話中上傳同一份 PDF

Claude Pro 設有 5 小時內的訊息上限——一份 50 頁報告就可能在你提出第二個問題前耗盡額度。

有個簡單原則可以遵循:一項任務,一個對話。當 AI 開始消耗數量驚人的 token,代表你把所有內容都塞進同一個對話,並一次又一次載入 PDF。每個視窗只處理一項小任務。先將文件轉換成 Markdown,之後在每個新視窗中,將 .md 檔案與專案一同加入。上下文視窗的圓圈就不會變黃。

解決方案:先轉換成 Markdown,或使用搭配 file_id 和提示快取的 Files API。

2. 用螢幕截圖取代文字

常見的例子是:有人想讓 Claude 看程式碼或表格,於是截下整個 1920×1080 螢幕,接著不明白為什麼才提出 5 次請求,額度就用完了。

一張 1000×1000 像素的螢幕截圖約消耗 1,300 個 token。手動複製相同文字只要 50–100 個 token,相差 13–26 倍。

解決方案:將截圖範圍精確裁切至重要部分,或更好的做法是直接複製文字。

3. 沒有 OCR 的掃描 PDF

MarkItDown 無法執行 OCR。轉換掃描檔後,會得到空白的 .md 檔案(或 3 行雜訊)。

解決方案:處理掃描檔時,使用內建智慧 OCR 的 PyMuPDF4LLM 或 Docling。

4. 忽略 100 頁上限

Anthropic 的文件列出的每個請求上限是 600 頁,但實際上,上下文為 200K 的模型(Sonnet 4.x、Opus 4.x)上限是100 頁。600 頁的限制是為較舊的模型或特殊方案設定的。

如果你將一份 150 頁的報告上傳到 Sonnet 4.6,可能會收到錯誤訊息;更糟的情況是,Claude 只處理前 100 頁,卻表現得好像讀完了整份文件。

解決方案:上傳前先將長 PDF 拆分成多個部分,或轉換成 Markdown——沒有頁數限制,只有 token 數量限制。

5. 重複請求時沒有使用提示快取

如果透過 API 處理同一份文件,請使用 cache_control: ephemeral。5 分鐘內的重複呼叫只需支付初次價格的 10%。第一個請求較貴,其餘請求則享有 90% 折扣。

解決方案:對任何會重複上傳的內容,預設啟用提示快取。

接下來:上下文工程

重點摘要

將 PDF 轉換成 Markdown 是上下文工程的一種技巧;上下文工程也是使用 AI 的一種新素養。提示詞是一個問題。上下文則是 Claude 在問題之前及周遭看到的所有內容:系統提示詞、CLAUDE.md、檔案、MCP 伺服器和工作階段歷史。上下文越乾淨,答案越準確,成本也越低。請閱讀《2026 年的上下文工程》指南,了解完整分析。

將 PDF 轉換成 Markdown 是節省 token 的一種方法。光靠這項做法並不會讓 Claude 的回答更準確。準確度來自上下文工程——也就是研究在提問前,該在模型上下文中放入哪些內容。

如果你的 CLAUDE.md 有 800 行、專案有 10 個不必要的 MCP 伺服器,而且你還載入一份 100 頁的 PDF,Markdown 轉換只能防止其中一項浪費,另外三項仍然存在。因此,我們提供以下指南:

繼續探索 Ailoot,前往 ailoot.ai。

更多詳情

常見問題:Claude Code 中的 PDF:轉換、Token 與結構保留

15 頁文件在四個聊天使用,Markdown 範例多少 token?

依本文每頁 300 token 假設,15 × 300 × 4 = 18,000 個輸入 token。這是示意估算,自己的文件應對轉換結果實際計數。

所有 PDF 都只轉文字就夠嗎?

不一定。請對照 PDF 查看 Markdown,尤其表格、頁序及依賴圖片的內容。確認任務需要的資訊保留下來後,再比較 token 用量。

所有文章