So konvertieren Sie Dokumente für KI in Python in Markdown

2026-10-16 06:09:01 Allen Yang
AI Summarize:
ChatGPT
ChatGPT ✓
Claude ✓
Grok ✓
Perplexity ✓
Quick
Quick
Concise overview
Highlights
Key takeaways
Detailed
Structured explanation
Brief
One sentence summary
Summarize |

Convert documents to Markdown for AI in Python using Spire.Office for Python

Viele Anwendungen, die LLMs oder KI-Agenten integrieren, müssen im Rahmen ihres Workflows Berichte, PDF-Dateien, Tabellenkalkulationen und Präsentationen verarbeiten. Diese Dateien speichern Inhalte in unterschiedlichen formatspezifischen Strukturen, sodass Anwendungen ihre Inhalte möglicherweise extrahieren und normalisieren müssen, bevor sie sie in textorientierten KI-Workflows verwenden. Die Konvertierung in Markdown bietet eine konsistente, überprüfbare Textdarstellung, die nachgelagerte Komponenten lesen, speichern und bearbeiten können, ohne sich mit formatspezifischer Parsing-Logik befassen zu müssen.

Dieses Tutorial zeigt, wie Sie Word-, PDF-, Excel- und PowerPoint-Dokumente in Python mit Spire.Office for Python in Markdown konvertieren, und zeigt anschließend, wie Sie den resultierenden Markdown-Inhalt an einen echten LLM-API-Aufruf zur Zusammenfassung übergeben. Das Ziel ist, einen praktischen Vorverarbeitungs-Workflow zu veranschaulichen – nicht zu behaupten, dass jedes KI-Modell Markdown erfordert oder dass die Konvertierung eines Dokuments seinen Inhalt automatisch für jede KI-Aufgabe geeignet macht.


1. Warum Markdown für die KI-Dokumentverarbeitung verwenden?

Markdown nimmt eine nützliche Position in einer KI-Dokumentverarbeitungspipeline ein. Es stellt die Dokumentstruktur durch eine leichtgewichtige Syntax dar: Überschriften werden zu #-Markierungen, Absätze bleiben reiner Text, Listen verwenden -- oder 1.-Präfixe, und Tabellen behalten Zeilen- und Spaltenbeziehungen mit Pipe-Zeichen bei. Diese Darstellung ist für Menschen lesbar, einfach zu speichern und unkompliziert programmatisch zu transformieren.

Wenn Sie Dokumente in Markdown konvertieren, kann der resultierende Text als Eingabe für eine Reihe von KI-Aufgaben dienen. Ein LLM kann den Inhalt zusammenfassen, wichtige Entitäten extrahieren, Fragen dazu beantworten oder eine überarbeitete Version generieren. Eine Retrieval-Pipeline kann den Text für die semantische Suche indexieren. Ein Agent kann das Markdown lesen, um zu verstehen, was ein Dokument enthält, bevor er entscheidet, welches Tool als Nächstes aufgerufen wird.

Es lohnt sich, die Markdown-Vorverarbeitung von der direkten Dateieingabe zu unterscheiden. Einige Modell-APIs akzeptieren Originaldateien – Bilder, PDFs oder Office-Dokumente – über multimodale Endpunkte oder spezialisierte Dokumentverarbeitungsfunktionen. In diesen Fällen ist eine Markdown-Konvertierung unnötig. Markdown ist eine optionale Zwischendarstellung, die gewählt wird, wenn die Anwendung von einem textbasierten Format profitiert, das sie überprüfen und kontrollieren kann, bevor sie Inhalte an ein Modell sendet. Die Entscheidung hängt von den Anforderungen der Anwendung ab, nicht von einer universellen Regel, dass alle KI-Workflows Markdown verwenden müssen.


2. Dokumente in Python in Markdown konvertieren

Spire.Office for Python ist eine Suite eigenständiger Python-Bibliotheken, die Office-Dokumente erstellen, lesen, bearbeiten und konvertieren können, ohne Microsoft Office zu installieren. Sie umfasst vier Komponenten, die jeweils auf ein bestimmtes Dokumentformat ausgerichtet sind:

Eingabeformat Komponente pip-Paket
Word (.doc, .docx) Spire.Doc for Python spire.doc
PDF (.pdf) Spire.PDF for Python spire.pdf
Excel (.xls, .xlsx) Spire.XLS for Python spire.xls
PowerPoint (.ppt, .pptx) Spire.Presentation for Python spire.presentation

Installieren Sie die benötigten Pakete:

pip install spire.doc spire.pdf spire.xls spire.presentation

Die Unterstützung für die Markdown-Konvertierung wurde in den einzelnen Komponenten in unterschiedlichen Versionen eingeführt. Die folgende Tabelle listet die Mindestversionen auf, die die in diesem Artikel verwendeten APIs bereitstellen:

Komponente Mindestversion Funktion
Spire.Doc for Python 12.6.0 FileFormat.Markdown-Speicheroption
Spire.PDF for Python 11.6.1 PdfToMarkdownConverter mit MarkdownOptions.IgnoreImage
Spire.XLS for Python 16.4.0 Workbook.SaveToMarkdown() mit MarkdownOptions
Spire.Presentation for Python 10.11.1 FileFormat.Markdown-Speicheroption

Spire.Doc 12.6.0, Spire.PDF 11.6.1, Spire.XLS 16.4.0 und Spire.Presentation 10.11.1 sind die Mindestversionen mit Unterstützung für die Markdown-Konvertierung. Es wird empfohlen, die neueste Version jeder Komponente zu verwenden.

Jede Komponente stellt eine andere API für die Markdown-Konvertierung bereit. Die folgende Tabelle fasst die verifizierten Konvertierungsmethoden zusammen:

Komponente Initialisierung / Laden Markdown-Exportmethode
Spire.Doc Document.LoadFromFile() Document.SaveToFile(path, FileFormat.Markdown)
Spire.PDF PdfToMarkdownConverter(path) converter.ConvertToMarkdown(outputPath)
Spire.XLS Workbook.LoadFromFile() Workbook.SaveToMarkdown(path, MarkdownOptions)
Spire.Presentation Presentation.LoadFromFile() Presentation.SaveToFile(path, FileFormat.Markdown)

Das folgende Beispiel implementiert eine einzelne Dispatch-Funktion, die die Dateiendung erkennt und das Dokument an die entsprechende Konvertierungslogik weiterleitet. Sie validiert die Eingabedatei, generiert den Ausgabepfad, führt die Konvertierung durch und behandelt Fehler mit aussagekräftigen Meldungen.

import os
from spire.doc import Document, FileFormat as DocFileFormat
from spire.pdf import PdfToMarkdownConverter
from spire.xls import Workbook, MarkdownOptions as XlsMarkdownOptions
from spire.presentation import Presentation, FileFormat as PresentationFileFormat


def convert_to_markdown(input_path: str, output_path: str = None) -> str:
    """Convert a Word, PDF, Excel, or PowerPoint file to Markdown.

    Args:
        input_path: Path to the source document.
        output_path: Path for the output .md file. If None, uses the
            input filename with a .md extension in the same directory.

    Returns:
        The path to the generated Markdown file.
    """
    if not os.path.isfile(input_path):
        raise FileNotFoundError(f"Input file not found: {input_path}")

    ext = os.path.splitext(input_path)[1].lower()

    if output_path is None:
        output_path = os.path.splitext(input_path)[0] + ".md"

    if ext in (".doc", ".docx"):
        # Spire.Doc for Python: load and save as Markdown
        doc = Document()
        try:
            doc.LoadFromFile(input_path)
            doc.SaveToFile(output_path, DocFileFormat.Markdown)
        finally:
            doc.Close()

    elif ext == ".pdf":
        # Spire.PDF for Python: use PdfToMarkdownConverter
        # IgnoreImage=True skips images in the PDF; set to False if
        # charts or screenshots contain important information.
        converter = PdfToMarkdownConverter(input_path)
        try:
            converter.MarkdownOptions.IgnoreImage = True
            converter.ConvertToMarkdown(output_path)
        finally:
            converter.Dispose()

    elif ext in (".xls", ".xlsx"):
        # Spire.XLS for Python: use SaveToMarkdown with MarkdownOptions
        workbook = Workbook()
        try:
            workbook.LoadFromFile(input_path)
            options = XlsMarkdownOptions()
            options.SavePicInRelativePath = True
            options.SaveHyperlinkAsRef = False
            workbook.SaveToMarkdown(output_path, options)
        finally:
            workbook.Dispose()

    elif ext in (".ppt", ".pptx"):
        # Spire.Presentation for Python: load and save as Markdown
        presentation = Presentation()
        try:
            presentation.LoadFromFile(input_path)
            presentation.SaveToFile(output_path, PresentationFileFormat.Markdown)
        finally:
            presentation.Dispose()

    else:
        raise ValueError(
            f"Unsupported file extension: {ext}. "
            f"Supported formats: .doc, .docx, .pdf, .xls, .xlsx, .ppt, .pptx"
        )

    return output_path


# Example usage
if __name__ == "__main__":
    result = convert_to_markdown("quarterly_report.docx")
    print(f"Markdown saved to: {result}")

    with open(result, "r", encoding="utf-8") as f:
        content = f.read()
    print(content[:500])  # Preview the first 500 characters

Markdown-Ausgabe aus der Konvertierung eines Word-Dokuments:

A Word report and its converted Markdown output side by side

Einzelheiten zu den Formaten finden Sie in den Tutorials der einzelnen Komponenten:


3. Markdown-Inhalt an ein LLM senden

Sobald ein Dokument in Markdown konvertiert wurde, kann der Text als Eingabe für ein LLM für Aufgaben wie Zusammenfassung, Informationsextraktion oder Fragebeantwortung dienen. Das folgende Beispiel konvertiert einen Geschäftsbericht in Markdown, liest die resultierende Datei und übermittelt den Inhalt mit einer aufgabenspezifischen Anweisung an die OpenAI-API.

Um dieses Beispiel auszuführen, installieren Sie das OpenAI Python SDK und legen Sie Ihren API-Schlüssel als Umgebungsvariable fest:

pip install openai
export OPENAI_API_KEY="your-api-key"

Der folgende Code geht davon aus, dass die convert_to_markdown-Funktion aus dem vorherigen Abschnitt in einer Datei namens convert_to_markdown.py im selben Verzeichnis gespeichert ist oder dass beide Codeblöcke zu einem einzigen Skript kombiniert werden.

import os
from openai import OpenAI

# Step 1: Convert the document to Markdown
from convert_to_markdown import convert_to_markdown
md_path = convert_to_markdown("business_report.pdf")

# Step 2: Read the Markdown content
with open(md_path, "r", encoding="utf-8") as f:
    markdown_content = f.read()

# Step 3: Construct a task-specific instruction and call the LLM
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))

response = client.chat.completions.create(
    model="gpt-6-luna",
    messages=[
        {
            "role": "system",
            "content": "You are a financial analyst. Read the document "
                       "and extract the three most important findings."
        },
        {
            "role": "user",
            "content": f"Here is the document content in Markdown:\n\n"
                       f"{markdown_content}\n\n"
                       f"Provide a concise summary of the key findings."
        }
    ],
    max_completion_tokens=1000
)

# Step 4: Read and display the response
summary = response.choices[0].message.content
print("=== LLM Summary ===")
print(summary)

In diesem Workflow übernimmt Spire.Office for Python die Dokumentkonvertierung und die OpenAI-API die KI-Analyse. Spire.Office ist eine Dokumentverarbeitungsbibliothek, kein KI-Agent-Framework – sie erzeugt den Markdown-Text, den eine LLM- oder Agent-Pipeline konsumiert. Für einen vollständigen Dokumentverarbeitungsagenten sollten Sie Spire.Agent.Office in Betracht ziehen.

Ein wichtiger Aspekt ist die Eingabegröße. LLMs haben Grenzen für das Kontextfenster, und ein langes Dokument kann Markdown erzeugen, das die maximale Eingabelänge des Modells überschreitet. In diesem Fall muss die Anwendung das Markdown in kleinere Blöcke aufteilen oder relevante Abschnitte selektiv abrufen, bevor sie sie an das Modell sendet. Bibliotheken wie langchain-text-splitters oder benutzerdefinierte Aufteilungslogik können diesen Schritt übernehmen.


4. Markdown für KI-Agenten und RAG-Workflows verwenden

Das im Konvertierungsschritt erzeugte Markdown kann zu einer Eingabe für größere KI-Workflows werden. Zwei gängige Muster sind KI-Agenten und retrieval-augmentierte Generierung (RAG).

Für KI-Agenten kann eine Anwendung das konvertierte Markdown als Kontext bereitstellen, den ein Agent liest, bevor er entscheidet, welche Aktionen ausgeführt werden. Beispielsweise könnte ein Support-Agent das Markdown eines Kundenvertrags erhalten und Fragen zu Verlängerungsbedingungen, Zahlungsplänen oder Kündigungsklauseln beantworten. Der Agent behandelt das Markdown als lesbaren Kontext, nicht als strukturierte Datenbankabfrage.

Für RAG wird der Markdown-Inhalt in Blöcke aufgeteilt, jeder Block in eine Vektordarstellung eingebettet und die Vektoren in einem Index gespeichert. Wenn ein Benutzer eine Frage stellt, ruft das System die relevantesten Blöcke ab und übergibt sie zusammen mit der Anfrage an ein LLM. Die abschnittsbasierte Struktur von Markdown – Überschriften, Absätze und Tabellen – kann aussagekräftige Grenzen für die Dokumentaufteilung bieten. Überschriftenbewusstes Chunking kann helfen, den Kontext zu bewahren, obwohl die Retrieval-Qualität vom Dokument und vom gesamten Retrieval-Setup abhängt.

Workflow for converting documents to Markdown for LLMs, AI agents, and RAG

Die Konvertierung von Dokumenten in Markdown implementiert nicht selbst ein vollständiges Agenten- oder RAG-System. Vektordatenbanken, Embedding-Modelle, Orchestrierungsframeworks, Tool-Calling-Protokolle und Retrieval-Ranking sind separate Komponenten, die nachgelagert arbeiten. Der Konvertierungsschritt erzeugt die Texteingabe; der Rest der Pipeline bestimmt, wie dieser Text verwendet wird.


5. Markdown vor der KI-Verarbeitung validieren

Die Qualität des konvertierten Markdowns wirkt sich direkt auf die Qualität nachgelagerter KI-Ergebnisse aus. Wenn die Konvertierung Struktur verliert, Daten falsch darstellt oder Inhalte auslässt, arbeitet das LLM oder der Agent mit einem falschen oder unvollständigen Kontext. Bevor Sie sich bei wichtigen Aufgaben auf konvertiertes Markdown verlassen, prüfen Sie die Ausgabe auf die häufigsten Problembereiche:

  • Überschriftenhierarchie und Absatzreihenfolge. Stellen Sie sicher, dass Abschnittsebenen (#, ##, ###) die Struktur des Originaldokuments widerspiegeln und dass Absätze in der richtigen Reihenfolge erscheinen.
  • Tabellenzeilen, -spalten und numerische Werte. Überprüfen Sie, dass Zeilen-zu-Spalten-Beziehungen erhalten bleiben und dass Zahlen, Datumsangaben und Währungswerte mit der Quelle übereinstimmen. Wenn eine Finanztabelle ihre Ausrichtung verliert, kann ein LLM eine Zusammenfassung auf der Grundlage falscher Zuordnungen erstellen – zum Beispiel eine Umsatzzahl der falschen Region zuordnen.
  • Bilder, Links und komplexe Layouts. Markdown kann nicht jedes visuelle Element darstellen. Bilder werden möglicherweise weggelassen oder durch Dateipfadverweise ersetzt. Mehrspaltige Layouts, Textfelder und eingebettete Objekte bleiben bei der Konvertierung möglicherweise nicht in ihrer ursprünglichen Form erhalten.
  • Gescannte PDFs. Wenn das Quell-PDF gescannte Bilder statt eingebetteten Text enthält, kann die Konvertierung eine leere oder nahezu leere Ausgabe erzeugen. In solchen Fällen ist ein OCR-Schritt vor oder anstelle der Markdown-Konvertierung erforderlich.
  • Lange Dokumente. Überprüfen Sie, dass das gesamte Dokument konvertiert wurde, nicht nur der erste Abschnitt. Bei Dokumenten, die das Kontextfenster eines Modells überschreiten, bestätigen Sie, dass das Markdown in sinnvolle Blöcke aufgeteilt werden kann, ohne Tabellen zu zerstören oder Überschriften von ihrem Inhalt zu trennen.

Die Konvertierung garantiert nicht die perfekte Bewahrung jedes visuellen oder semantischen Merkmals. Die Markdown-Ausgabe ist eine Zwischendarstellung, kein originalgetreuer Klon des ursprünglichen Dokuments. Die Überprüfung des konvertierten Textes vor der Übergabe an ein KI-Modell ist ein praktischer Schritt, der verhindert, dass sich Fehler in Zusammenfassungen, Extraktionen oder Agentenentscheidungen fortpflanzen.


6. Fazit

Dieser Artikel hat einen Dokument-zu-Markdown-Vorverarbeitungs-Workflow für KI-Anwendungen in Python durchlaufen. Der Prozess hat drei Phasen: Unterstützte Dokumentformate (Word, PDF, Excel, PowerPoint) mit Spire.Office for Python in Markdown konvertieren, die konvertierte Ausgabe auf strukturelle Genauigkeit überprüfen und den Markdown-Inhalt an die entsprechende KI-Verarbeitungskomponente übergeben – sei es ein LLM-API-Aufruf, ein Agentenkontext oder eine RAG-Chunking-Pipeline.

Markdown ist eine nützliche Möglichkeit, Dokumentinhalte für KI-Anwendungen vorzubereiten, aber kein vorgeschriebenes Eingabeformat für jedes Modell. Die Entscheidung, Dokumente in Markdown zu konvertieren, hängt davon ab, ob die Anwendung von einer textbasierten Zwischendarstellung profitiert, die sie überprüfen, speichern und kontrollieren kann. Weitere Details finden Sie auf der Produktseite Spire.Office for Python oder in der Konvertierungsdokumentation.

Siehe auch