นำเอกสารของคุณเข้าสู่สายงาน AI — โดยตรงจาก Python, ทำงานบนเครื่องของคุณเอง, เพียง pip install ครั้งเดียว
วันนี้เราปล่อย รุ่นแรกสาธารณะของ GroupDocs.Markdown สำหรับ Python ผ่าน .NET บน PyPI ไลบรารีนี้แปลง PDF, Word, Excel, EPUB และรูปแบบอื่น ๆ อีกกว่า 20 รูปแบบให้เป็น Markdown ที่สะอาดและมีความหมาย — รูปแบบที่ LLMs, สายงาน RAG, และเครื่องสร้างเว็บไซต์แบบสถิตทำงานได้ดีที่สุด
หากคุณได้ติดตาม การปล่อย .NET ตั้งแต่เดือนกันยายน (หรือ การปรับโครงสร้าง API อย่างเต็มรูปแบบในเวอร์ชัน 26.3) เหตุผลก็เหมือนกัน: การจัดรูปแบบเอกสารบรรจุความหมาย, และการรักษาโครงสร้างความหมายนี้คือสิ่งที่ทำให้ระบบ RAG ให้คำตอบที่ดี บทความก่อนหน้านี้ครอบคลุม ปัญหา (OCR ทำให้โครงสร้างแบนลง, LLMs ต้องการ markdown) และ วิธีแก้ (เรนเดอร์แบบ DOM ที่เดินผ่านเอกสารและสร้าง Markdown) อย่างละเอียด — เราจะไม่ซ้ำเรื่องนั้นที่นี่
แทนที่จะทำเช่นนั้น เราจะมุ่งเน้นที่สิ่งใหม่สำหรับนักพัฒนา Python
สิ่งที่คุณได้รับ
- Wheel เพียงไฟล์เดียว, ไม่มีการพึ่งพา runtime.
pip install groupdocs-markdown-netจะดึง wheel ที่บรรจุ .NET runtime และไลบรารีเนทีฟทั้งหมดที่จำเป็น ไม่ต้องติดตั้งdotnet, ไม่ต้องมี Microsoft Office, ไม่ต้องมี Adobe Acrobat, ไม่ต้องใช้บริการคลาวด์ - ข้ามแพลตฟอร์ม. Windows x64/x86, Linux x64, macOS x64 และ Apple Silicon (ARM64) รองรับ Python 3.5 ถึง 3.14
- API แบบ pythonic. คลาสใช้
PascalCase, เมธอดและพร็อพเพอร์ตี้ใช้snake_case, ค่า enum ใช้UPPER_SNAKE_CASEตัวจัดการบริบท (context managers) จะทำลายเอกสารที่โหลดอย่างกำหนดได้ - รองรับ async อย่างแท้จริง. ทุกเมธอดแบบ static และ instance มีเวอร์ชัน
_asyncไฟล์ I/O ทำงานแบบ asynchronous และการแปลงที่ใช้ CPU ทำงานบน worker thread — ลูปเหตุการณ์asyncioของคุณจะไม่ถูกบล็อก - เป็นมิตรกับ AI‑agent. Wheel ที่ติดตั้งมาพร้อมไฟล์
AGENTS.mdเพื่อให้ผู้ช่วยเขียนโค้ด (Claude Code, Cursor, GitHub Copilot, Codex) ค้นพบ API, รูปแบบการใช้ที่เป็น idiomatic, และเคล็ดลับการแก้ปัญหาโดยอัตโนมัติ เอกสารยังเผยแพร่เป็นllms.txt, คอร์ปัสไฟล์เดียว (llms-full.txt), Markdown แยกหน้า, และเซิร์ฟเวอร์ MCP — ดูรายละเอียดในส่วน AI-friendly by design ด้านล่าง
เริ่มต้นใช้งาน
pip install groupdocs-markdown-net
การแปลงที่ง่ายที่สุดคือบรรทัดเดียว:
from groupdocs.markdown import MarkdownConverter
# แปลงเป็นสตริง
md = MarkdownConverter.to_markdown("business-plan.docx")
# หรือเขียนโดยตรงลงไฟล์
MarkdownConverter.to_file("business-plan.docx", "business-plan.md")
แค่นั้น — ไม่ต้องตั้งค่า, ไม่ต้องออปชัน, ไม่ต้องโค้ดซ้ำ โหมดประเมินผลจะประมวลผล 3 หน้าแรกและใส่ลายน้ำ หากต้องการลบข้อจำกัด ให้ใช้ไลเซนส์:
from groupdocs.markdown import License
License().set_license("path/to/license.lic")
หรือกำหนดตัวแปรสภาพแวดล้อม GROUPDOCS_LIC_PATH แล้วไลเซนส์จะถูกนำไปใช้โดยอัตโนมัติเมื่อ import
รูปแบบที่รองรับ
แพคเกจ Python รองรับรูปแบบเดียวกับไลบรารี .NET:
- PDF —
.pdf - Word / Rich Text —
.doc,.docx,.docm,.dot,.dotx,.dotm,.rtf,.odt,.ott - สเปรดชีต —
.xls,.xlsx,.xlsb,.xlsm,.csv,.tsv,.ods,.ots - อีบุ๊ค —
.epub,.mobi - ข้อความ / มาร์กอัป / ช่วยเหลือ —
.txt,.xml,.chm
ตัวอย่างแบบ pythonic
ตัวเลือกการแปลงและกลยุทธ์การจัดการรูปภาพ
from groupdocs.markdown import (
MarkdownConverter,
ConvertOptions,
MarkdownFlavor,
ExportImagesToFileSystemStrategy,
)
strategy = ExportImagesToFileSystemStrategy("output/images")
strategy.images_relative_path = "images" # 
options = ConvertOptions()
options.flavor = MarkdownFlavor.GIT_HUB
options.heading_level_offset = 1 # # Title -> ## Title
options.include_front_matter = True # prepend YAML metadata
options.image_export_strategy = strategy
MarkdownConverter.to_file("report.docx", "output/report.md", convert_options=options)
ตรวจสอบเอกสารโดยไม่แปลง
from groupdocs.markdown import MarkdownConverter
info = MarkdownConverter.get_info("business-plan.docx")
print(f"{info.file_format}, {info.page_count} pages, author: {info.author}")
โหลดไฟล์ที่มีรหัสผ่าน
from groupdocs.markdown import MarkdownConverter, LoadOptions, FileFormat
load_opts = LoadOptions(FileFormat.DOCX)
load_opts.password = "secret"
MarkdownConverter.to_file("protected.docx", "output.md", load_options=load_opts)
สตรีมและตัวจัดการบริบท
from groupdocs.markdown import MarkdownConverter
with open("document.docx", "rb") as stream:
with MarkdownConverter(stream) as converter:
converter.convert("document.md")
Async API — แปลงหลายไฟล์พร้อมกัน
เนื่องจากไฟล์ I/O ทำงานแบบ asynchronous, asyncio.gather() ทำให้ worker ตัวเดียวสามารถประมวลผลหลายไฟล์โดยไม่บล็อก:
import asyncio
from groupdocs.markdown import MarkdownConverter
async def convert_many():
await asyncio.gather(
MarkdownConverter.to_file_async("a.docx", "a.md", None),
MarkdownConverter.to_file_async("b.pdf", "b.md", None),
MarkdownConverter.to_file_async("c.xlsx", "c.md", None),
)
asyncio.run(convert_many())
ทำให้ไลบรารีนี้เข้ากันได้อย่างลงตัวกับเฟรมเวิร์ก ASGI อย่าง FastAPI — worker ตัวเดียวสามารถให้บริการคำขอแปลงหลายคำขอพร้อมกันโดยไม่มีการแย่งทรัพยากรของเธรด
การจัดการข้อผิดพลาด
เมธอดการแปลงทั้งหมดจะโยนข้อยกเว้นเมื่อเกิดความล้มเหลว, พร้อมประเภทข้อยกเว้นเฉพาะสำหรับสถานการณ์ทั่วไป:
from groupdocs.markdown import (
MarkdownConverter,
DocumentProtectedException,
InvalidFormatException,
GroupDocsMarkdownException,
)
try:
MarkdownConverter.to_file("annual-report.docx", "annual-report.md")
except DocumentProtectedException:
print("Wrong or missing password.")
except InvalidFormatException:
print("File is corrupt or unsupported.")
except GroupDocsMarkdownException as ex:
print(f"Conversion failed: {ex}")
สร้างขึ้นสำหรับ RAG และสายงาน LLM
Markdown เป็นรูปแบบอินพุตที่นิยมสำหรับโมเดลฝังข้อมูลและสายงานการดึงคืนข้อมูล — มันรักษาหัวข้อ, รายการ, ตาราง, และการเน้นข้อความไว้ในขณะที่ง่ายต่อการแบ่งส่วนและทำ tokenization ตัวอย่างการนำเข้า RAG ปกติเป็นดังนี้:
import re
from groupdocs.markdown import MarkdownConverter, ConvertOptions, SkipImagesStrategy, MarkdownFlavor
options = ConvertOptions()
options.image_export_strategy = SkipImagesStrategy() # text-only for RAG
options.flavor = MarkdownFlavor.COMMON_MARK
MarkdownConverter.to_file("business-plan.pdf", "business-plan.md", convert_options=options)
with open("business-plan.md", "r", encoding="utf-8") as f:
markdown = f.read()
# แบ่งตามหัวข้อระดับบนสุด, แล้วฝัง/ทำดัชนีแต่ละส่วน
chunks = [c for c in re.split(r"\n#{1,2} ", markdown) if c.strip()]
เนื่องจากไลบรารีทำงานทั้งหมดบนเครื่องของคุณเอง เอกสารที่เป็นความลับจะไม่ออกจากสภาพแวดล้อมของคุณ — ความต้องการทั่วไปสำหรับอุตสาหกรรมที่ต้องปฏิบัติตามกฎระเบียบ, ทีมกฎหมาย, และฐานความรู้ภายใน
AI-friendly by design
SDK ของ Python ส่วนใหญ่มองผู้ช่วยเขียนโค้ด AI เป็นเรื่องรองหลังจากการพัฒนา — นักพัฒนาต้องชี้ตัวแทนไปที่เอกสาร, วางตัวอย่าง, หรือดีบักด้วยการลองผิดลองถูก GroupDocs.Markdown สำหรับ Python ผ่าน .NET กลับกัน: ไลบรารีออกแบบให้ตัวแทนอย่าง Claude Code, Cursor, GitHub Copilot, และ Codex สามารถใช้งานได้โดยไม่ต้องตั้งค่าใด ๆ
AGENTS.md มาพร้อมกับ wheel
นี่คือแพคเกจ GroupDocs แรกที่บรรจุไฟล์ AGENTS.md ไว้ภายใน wheel ที่ติดตั้ง ไฟล์นี้สอดคล้องกับ มาตรฐาน AGENTS.md — README แบบ Markdown ธรรมดาที่เขียนเฉพาะสำหรับผู้ช่วยเขียนโค้ด AI แทนมนุษย์
เมื่อคุณรัน pip install groupdocs-markdown-net ไฟล์จะถูกวางที่:
site-packages/groupdocs/markdown/AGENTS.md
ผู้ช่วย AI ที่เปิดโปรเจกต์ของคุณสามารถอ่านไฟล์นี้และเรียนรู้ทันที:
- พื้นผิว API สาธารณะทั้งหมด (คลาส, เมธอด, enum, ข้อยกเว้น) และความสัมพันธ์ระหว่างกัน
- รูปแบบการใช้ที่ idiomatic สำหรับสถานการณ์ที่พบบ่อย — API แบบ static vs instance, sync vs async, กลยุทธ์รูปภาพ, front matter, การจัดการข้อผิดพลาด
- ข้อผิดพลาดทั่วไป และวิธีหลีกเลี่ยง — เช่น overload ของ
ConvertOptionsที่รับNone, วิธีจัดการไฟล์ที่มีรหัสผ่าน, วิธีดักจับคำเตือนการแปลง - การแก้ปัญหา สำหรับปัญหาเฉพาะแพลตฟอร์ม (libSkiaSharp บน macOS, ICU บน Linux)
ในทางปฏิบัติหมายความว่าคุณสามารถบอก “ใช้ groupdocs-markdown-net เพื่อแปลงโฟลเดอร์ PDF นี้เป็น Markdown สำหรับสายงาน RAG ของฉัน” แล้วตัวแทนจะเขียนโค้ดที่ทำงานได้ตั้งแต่ครั้งแรก — ไม่มีชื่อเมธอดที่สร้างขึ้นจากจินตนาการ, ไม่มีการจัดลำดับอาร์กิวเมนต์ที่ผิด, ไม่มีการคาดเดา import
เอกสารที่อ่านได้โดยเครื่อง
สำหรับตัวแทนที่ต้องการค้นหาข้อมูลที่ไม่ได้อยู่ใน AGENTS.md เอกสารผลิตภัณฑ์เต็มรูปแบบก็พร้อมในรูปแบบที่เครื่องอ่านได้:
- คอร์ปัสไฟล์เดียว — เอกสารทั้งหมดเป็นไฟล์ Markdown รวมเดียว, พร้อมใส่ลงใน context window ของตัวแทน:
https://docs.groupdocs.com/markdown/python-net/llms-full.txt - Markdown แยกหน้า — เพิ่ม
.mdต่อท้าย URL ของเอกสารใด ๆ เพื่อดึงซอร์สดิบ:https://docs.groupdocs.com/markdown/python-net/quick-start-guide.md - ดัชนี
llms.txt— ตารางเนื้อหาแบบ llms.txt ที่ชี้ตัวแทนไปยังหน้าที่ต้องการ:https://docs.groupdocs.com/markdown/python-net/llms.txt
เซิร์ฟเวอร์ MCP สำหรับการค้นหาเอกสารแบบเรียลไทม์
สำหรับตัวแทนที่ใช้ Model Context Protocol เราเปิดให้เข้าถึงเอกสารผ่านเซิร์ฟเวอร์ MCP เพิ่มการตั้งค่านี้ในไฟล์กำหนดค่า Claude Code หรือ Cursor ของคุณ:
{
"mcpServers": {
"groupdocs-docs": {
"url": "https://docs.groupdocs.com/mcp"
}
}
}
หลังจากนั้น ตัวแทนของคุณสามารถสอบถามเอกสารได้ตามต้องการ แทนการพึ่งพาข้อมูลการฝึกที่อาจล้าสมัย
Markdown เข้า, Markdown ออก
ที่นี่มีความสมดุลที่สวยงาม: ผลลัพธ์ ของไลบรารีคือ Markdown — รูปแบบที่ LLMs วิเคราะห์ได้ดีที่สุดสำหรับ RAG — และ เอกสาร ของไลบรารีก็เป็น Markdown ด้วย, ให้บริการเป็นไฟล์เดียวเพื่อการนำเข้าข้อมูลใน context window ไม่ว่าจะเป็นการให้ตัวแทนเขียนโค้ดที่ใช้ไลบรารี หรือให้ตัวแทนทำความเข้าใจเอกสารของคุณผ่านไลบรารี, Markdown คือสื่อกลางที่ใช้ร่วมกัน
ตัวอย่างการส่งออก
โค้ดตัวอย่างข้างต้นเป็นโปรแกรมที่สั้นที่สุดที่ใช้งานได้กับไลบรารี นี่คือแนวคิดเดียวกันที่จัดเป็นโปรเจกต์ที่สามารถรันได้ — เอกสารต้นฉบับ, สคริปต์ Python, ผลลัพธ์ที่สร้างไว้ล่วงหน้า, requirements.txt, และ Dockerfile — เพื่อให้คุณลองจากต้นจนจบโดยไม่ต้องเขียนอะไรจากศูนย์
ไฟล์ DOCX ต้นฉบับ
ไฟล์ต้นฉบับ business-plan.docx เป็นแผนธุรกิจสั้น ๆ ที่มีการจัดรูปแบบอย่างละเอียด มีหัวข้อ, ตาราง, รูปภาพ, และเมตาดาต้า
สคริปต์ Python
from groupdocs.markdown import MarkdownConverter, ConvertOptions, MarkdownFlavor
def quick_example():
"""Convert a Word document to Markdown with GitHub flavor and YAML front matter."""
# One-liner — returns a Markdown string
md = MarkdownConverter.to_markdown("business-plan.docx")
# With options — writes to a file
options = ConvertOptions()
options.flavor = MarkdownFlavor.GIT_HUB
options.include_front_matter = True
options.heading_level_offset = 1
MarkdownConverter.to_file("business-plan.docx", "quick-example.md", convert_options=options)
if __name__ == "__main__":
quick_example()
Markdown ที่ได้
ผลลัพธ์ quick-example.md เริ่มด้วยบล็อก YAML front‑matter ที่สกัดอัตโนมัติจากเมตาดาต้าเอกสาร, ตามด้วยเนื้อหาที่แปลงแล้วพร้อมตารางแบบ GitHub Flavored และระดับหัวข้อที่เลื่อนขึ้น (พร้อมฝังในเอกสารที่ใหญ่กว่า)
แอปตัวอย่างที่รันได้
ทุกอย่างบรรจุไว้ด้วยกัน: sample-app.zip แตกไฟล์แล้ว:
cd src
python -m venv .venv
# Windows: .venv\Scripts\activate
# Linux/macOS: source .venv/bin/activate
pip install -r requirements.txt
python quick_example.py
หรือรันใน Docker — Dockerfile ที่รวมมานี้ตั้งค่า dependency ICU ที่ .NET runtime ต้องการบน Linux:
cd src
docker build -t groupdocs-markdown-python-example .
docker run --rm -v "$(pwd)/output:/app/output" groupdocs-markdown-python-example
สรุป
GroupDocs.Markdown สำหรับ Python ผ่าน .NET นำเอาเอนจินการแปลงเอกสารเป็น Markdown มาสู่ Python ในรูปแบบ wheel ที่บรรจุครบทุกอย่าง — ไม่ต้องมี runtime ภายนอก, ไม่ต้องใช้คลาวด์, ไม่มีเซอร์ไพรส์ API แบบ pythonic, รองรับ async, และรวมการผสานเครื่องมือ AI ระดับแรก ทำให้เป็นตัวเลือกที่ใช้งานได้จริงสำหรับทีม Python ที่สร้างระบบ RAG, เครื่องสร้างเว็บไซต์สถิติ, หรือสายงานประมวลผลเอกสาร
เรียนรู้เพิ่มเติม
- แพคเกจ PyPI: https://pypi.org/project/groupdocs-markdown-net/
- หน้าแรกของผลิตภัณฑ์: https://products.groupdocs.com/markdown/python-net/
- เอกสาร: https://docs.groupdocs.com/markdown/python-net/
- บันทึกการปล่อย: https://releases.groupdocs.com/markdown/python-net/release-notes/
- ตัวอย่างโค้ดบน GitHub: https://github.com/groupdocs-markdown/GroupDocs.Markdown-for-Python-via-.NET
- ข้อมูลลิขสิทธิ์: https://about.groupdocs.com/legal/
- บทความการปล่อย .NET ที่เกี่ยวข้อง: GroupDocs.Markdown for .NET — First Public Release
การสนับสนุน & ข้อเสนอแนะ
หากมีคำถามหรือขอความช่วยเหลือด้านเทคนิค โปรดใช้ Free Support Forum — เราจะยินดีช่วยเหลือคุณ.