แปลง PDF เป็น Markdown เพื่อประหยัด LLM Tokens: คู่มือ MarkItDown

การส่ง PDF ตรงไปยัง Claude หรือ LLM ใด ๆ จะเผาผลาญ tokens อย่างเงียบ ๆ: ทุกหน้าจะถูกแปลงเป็นภาพด้วยเช่นกัน แปลงไฟล์เป็น Markdown ก่อนด้วย MarkItDown เครื่องมือโอเพนซอร์สฟรีจากไมโครซอฟท์ และลดค่าใช้จ่าย tokens ของคุณได้ถึง 80% คู่มือเต็มรูปแบบพร้อม CLI, Python, และการตั้งค่า MCP.

คุณนำ PDF ขนาด 20 หน้าไปใส่ใน Claude ถามคำถามหนึ่งคำถาม และคำตอบกลับมาดี สิ่งที่คุณไม่เห็นคือบิล ก่อนที่คำถามของคุณจะถูกอ่าน เอกสารนั้นสามารถใช้โทเค็นได้หลายหมื่นโทเค็น ทำเช่นนี้หลายครั้งต่อวันในทีม และคุณกำลังจ่ายเงินจริงเพื่อส่ง PDF ดิบเข้าสู่โมเดลที่น่าจะพอใจกับข้อความที่สะอาดกว่า

มีวิธีแก้ไขฟรี และมันก็อยู่ในที่สาธารณะมาตลอด แปลงไฟล์เป็น Markdown ก่อน คู่มือนี้อธิบายว่าทำไม PDF ถึงมีค่าใช้จ่ายสูงขนาดนี้ คุณจะประหยัดได้มากแค่ไหน และวิธีการแปลงในคำสั่งเดียวด้วย MarkItDown เครื่องมือแปลงโอเพ่นซอร์สจากไมโครซอฟต์

ทำไม PDF ถึงมีค่าใช้จ่ายโทเค็นมากมาย

นี่คือส่วนที่ไม่มีใครบอกคุณ เมื่อคุณส่ง PDF ให้กับ LLM มันไม่ได้ถูกอ่านในแบบที่คุณอ่าน ตาม เอกสาร PDF ของ Anthropic ระบบจะทำสองสิ่งกับทุกหน้า:

  1. มันดึงข้อความจากหน้า
  2. มันแปลงทั้งหน้าเป็นภาพ แล้วส่งภาพนั้นพร้อมกับข้อความ

ขั้นตอนที่สองคือการใช้โทเค็นอย่างเงียบ ๆ โมเดลไม่ได้อ่านแค่คำ มันยังดูภาพของแต่ละหน้าเพื่อให้เข้าใจกราฟ ตาราง และเลย์เอาต์ คุณจึงต้องจ่ายสำหรับทั้งสองอย่าง

ตัวเลขของ Anthropic ทำให้ค่าใช้จ่ายชัดเจน ข้อความที่ถูกดึงออกมาเพียงอย่างเดียวใช้ 1,500 ถึง 3,000 โทเค็นต่อหน้า ขึ้นอยู่กับความหนาแน่น นอกจากนี้ ทุกหน้าจะมีค่าใช้จ่ายของภาพด้วย ข้อมูลที่เปิดเผยจากการรวม Amazon Bedrock: โหมด PDF แบบเต็มใช้ ประมาณ 7,000 โทเค็นสำหรับ PDF ขนาด 3 หน้า ในขณะที่การดึงข้อความธรรมดาของสามหน้านั้นใช้ ประมาณ 1,000 โทเค็น นั่นคือช่องว่าง 7 เท่า และทั้งหมดนั้นคือภาพต่อหน้า

ขยายไปยังเอกสารจริง รายงานขนาด 20 หน้าที่หนาอาจใช้โทเค็นตั้งแต่ 40,000 ถึง 70,000 โทเค็นเมื่อทุกหน้าถูกแปลงเป็นภาพ คุณยังไม่ได้ถามอะไรเลย คุณเพียงแค่เปิดไฟล์

แผนภูมิแท่งเปรียบเทียบค่าใช้จ่ายโทเค็นของเอกสารขนาด 20 หน้าเมื่อส่งเป็น PDF กับเอกสารเดียวกันที่แปลงเป็น Markdown PDF จะรวมโทเค็นข้อความที่ถูกดึงออกมาพร้อมกับโทเค็นภาพต่อหน้าเป็นประมาณ 48,000 โทเค็น ในขณะที่เวอร์ชัน Markdown ใช้เพียงโทเค็นข้อความประมาณ 11,000 โทเค็น ลดลงประมาณ 77 เปอร์เซ็นต์.

บล็อกสีส้มแดงคือค่าใช้จ่ายที่แท้จริง: ภาพหนึ่งภาพสำหรับทุกหน้า ไม่ว่าจะมีภาพที่น่าสนใจหรือไม่ก็ตาม

วิธีแก้ไข: ส่ง Markdown ที่สะอาดแทน

เอกสารส่วนใหญ่ไม่จำเป็นต้องเห็น สัญญา สเปค เอกสารวิจัย สไลด์ที่เต็มไปด้วยจุดสำคัญ: ทั้งหมดนี้คือข้อความที่มีเลย์เอาต์ หากคุณลบเลย์เอาต์ออกและเก็บโครงสร้างไว้ โมเดลจะไม่สูญเสียสิ่งที่มันต้องการจริง ๆ

นั่นคือสิ่งที่ Markdown มอบให้คุณ มันใกล้เคียงกับข้อความธรรมดามากที่สุดในรูปแบบ แต่ยังคงเข้ารหัสโครงสร้างที่สำคัญ: หัวข้อ รายการ ตาราง ลิงก์ โค้ดบล็อก ตัวหนาและการเน้น โมเดล LLM หลัก ๆ ได้รับการฝึกฝนจาก Markdown จำนวนมาก ดังนั้นพวกมันจึงวิเคราะห์ได้อย่างเป็นธรรมชาติและไม่ยุ่งยาก ไมโครซอฟต์ ผู้สร้าง MarkItDown กล่าวชัดเจนว่า: Markdown "ใกล้เคียงกับข้อความธรรมดามาก โดยมีการจัดรูปแบบหรือการทำเครื่องหมายขั้นต่ำ แต่ยังคงให้วิธีการแสดงโครงสร้างเอกสารที่สำคัญ"

แปลง PDF ของคุณเป็น Markdown และคุณจะลบภาพต่อหน้าออกทั้งหมด ไม่มีหน้าแปลงเป็นภาพ ไม่มีค่าใช้จ่ายด้านการมองเห็น มีแต่ข้อความที่มีโครงสร้างที่โมเดลจะอ่านอยู่ดี นั่นคือที่มาของการประหยัด

พบกับ MarkItDown เครื่องมือแปลงฟรีจากไมโครซอฟต์

MarkItDown เป็นเครื่องมือ Python ขนาดเล็กจากไมโครซอฟต์ที่ออกภายใต้ลิขสิทธิ์ MIT ที่อนุญาต และเป็นหนึ่งในเครื่องมือสำหรับนักพัฒนาที่ได้รับดาวมากที่สุดใน GitHub โดยมีดาวมากกว่า 135,000 ดวง หน้าที่เดียวของมันคือการเปลี่ยนไฟล์ที่ยุ่งเหยิงในโลกจริงให้เป็น Markdown ที่สะอาดซึ่ง LLM สามารถอ่านได้ในราคาถูก

มันไม่ใช่แค่เครื่องมือ PDF เท่านั้น มันแปลงรูปแบบยาว ๆ ได้หลายรูปแบบ:

  • เอกสาร PDF
  • Word (.docx)
  • Excel (.xlsx, .xls)
  • PowerPoint (.pptx)
  • ภาพ พร้อม EXIF metadata และ OCR สำหรับข้อความภายในภาพ
  • เสียง พร้อม metadata และการถอดเสียง
  • หน้า HTML
  • ข้อมูล CSV, JSON, และ XML
  • ZIP archives (มันจะเดินผ่านเนื้อหา)
  • URL YouTube (มันดึงถอดเสียง)
  • e-book EPub
  • ข้อความ Outlook (.msg)

เครื่องมือเดียว รูปแบบผลลัพธ์เดียว สำหรับเกือบทุกอย่างที่คุณอาจจะส่งให้โมเดลในรูปแบบไบนารีที่หนักหน่วง

ติดตั้ง MarkItDown ใน 30 วินาที

มันเป็นแพ็กเกจ Python ปกติ เพื่อให้ได้ทุกอย่าง ให้ติดตั้ง all extra:

pip install 'markitdown[all]'

หากคุณสนใจแค่ไม่กี่รูปแบบและต้องการติดตั้งที่เบากว่า ให้ขอเฉพาะ extras เหล่านั้น:

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 (และจัดกลุ่มทั้งโฟลเดอร์)

หากคุณกำลังเชื่อมต่อสิ่งนี้เข้ากับท่อ Python API ก็สั้นไม่แพ้กัน:

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 สามารถ OCR ได้ แต่หากการรู้จำไม่แน่นอน การมองเห็นของโมเดลอาจอ่านหน้าได้อย่างเชื่อถือได้มากกว่า
  • ตารางหรือฟอร์มที่ซับซ้อน ซึ่งตำแหน่งและการจัดเรียงมีความหมายที่แบนราบใน 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 สามารถเป็น URI ใด ๆ เช่น http:, https:, file:, หรือ data: เชื่อมต่อมันเข้ากับเอเจนต์ของคุณเพียงครั้งเดียวและมันสามารถดึง PDF สเปรดชีต หรือหน้าเว็บและแปลงเป็น Markdown ตามต้องการ โดยจ่ายในราคาโทเค็นข้อความแทนที่จะเป็นราคาโทเค็นการมองเห็นตลอดเวลา

นี่คือสิ่งที่เพิ่มขึ้นเมื่อคุณรันมากกว่าหนึ่งเอเจนต์ ใน AgentsRoom ห้องควบคุมหลายเอเจนต์ คุณตั้งค่าเซิร์ฟเวอร์ MCP หนึ่งครั้งและเอเจนต์ทุกตัวในห้องจะสืบทอดมัน แปลงเอกสารอ้างอิงของคุณเป็น .md ส่งไปยังที่เก็บ และเอเจนต์แต่ละตัวจะอ่านข้อความที่มีโครงสร้างราคาถูกในทุกเทิร์นแทนที่จะต้องแปลง PDF เดิมซ้ำแล้วซ้ำอีก วินัยเดียวกันที่ทำให้เซสชันเดียวมีประสิทธิภาพยังทำให้ทั้งฟลีทมีราคาไม่แพง ซึ่งสำคัญเมื่อคุณ รันเอเจนต์การเขียนโค้ดขนาน และทุกตัวกำลังอ่านบริบทที่แชร์กันของคุณ

มันยังทำงานร่วมกับวิธีการที่การตั้งค่าเอเจนต์ที่ดีจัดการบริบทอยู่แล้ว หากคุณเก็บไฟล์บริบท AGENTS.md โดยชี้ไปที่การอ้างอิง .md ที่เบาแทนที่จะเป็น PDF ดิบ จะช่วยให้หน้าต่างบริบทแน่นขึ้น ซึ่ง, ตามที่เราได้กล่าวถึงใน กลเม็ดนกนางนวลสำหรับการจับการเบี่ยงเบนของบริบท, เป็นครึ่งหนึ่งของการต่อสู้ในเซสชันที่ยาวนาน

ข้อสรุป

การส่ง PDF ดิบให้กับ LLM เป็นภาษีที่คุณจ่ายโดยไม่รู้ตัว เพราะทุกหน้าจะถูกแปลงเป็นภาพอย่างเงียบ ๆ MarkItDown ลบภาษีนั้นออกไปฟรี: คำสั่งเดียวสามารถเปลี่ยนไฟล์เกือบทุกไฟล์ให้เป็น Markdown ที่สะอาด คุณประหยัดค่าใช้จ่ายโทเค็นได้ถึง 80% และโมเดลตอบสนองได้ดีเช่นกัน มักจะดีกว่า เพราะมันอ่านโครงสร้างแทนที่จะต้องเพ่งมองที่ภาพหน้า

แปลงก่อนแล้วถาม บิลโทเค็นและหน้าต่างบริบทของคุณจะขอบคุณคุณทั้งคู่

พร้อมที่จะรันสิ่งนี้ในทีมเอเจนต์ทั้งหมดแทนที่จะเป็นเทอร์มินัลเดียว? ดาวน์โหลด AgentsRoom ดูว่าเอเจนต์แต่ละตัวรองรับอะไรใน ตารางความเข้ากันได้ของผู้ให้บริการ และอ่านเพิ่มเติมเกี่ยวกับ การสนับสนุนผู้ให้บริการหลายราย

ดาวน์โหลด AgentsRoom

เรียกใช้ AI agents ของคุณ (Claude, Codex, Antigravity CLI, OpenCode, Aider, Grok Build, Mistral Vibe, Kimi Code) ในทุกโปรเจกต์ของคุณจากหน้าต่างเดียว

ฟรีดาวน์โหลด AgentsRoom

แอปคู่หู: ตรวจสอบตัวแทนของคุณได้ทุกที่

นำของคุณเอง: Claude, Codex, Antigravity CLI, หรือผู้ให้บริการ AI อื่น ๆ

รับส่วนขยาย
Chrome Web Store

ส่งข้อบกพร่องและคำขอไปยังแบ็คล็อกสาธารณะของคุณโดยตรง

มองเห็น AgentsRoom ในการทำงาน

หลายโปรเจกต์
ผู้ให้บริการหลายราย
หลาย agents
สถานะสด
ไฟล์ diff & commit
คู่หูมือถือ
ตัวอย่างสด
ทีมตัวแทน
การทำงานอัตโนมัติในเบราว์เซอร์
การพัฒนาที่ขับเคลื่อนด้วย backlog
ห้องสมุดคำสั่ง
ห้องสมุดทักษะ
ดูฟีเจอร์ทั้งหมด