Zum Hauptinhalt springen

GLM-OCR

Der GLM-OCR-Guide enthält lauffähige Beispiele für alle gängigen Anwendungsfälle, darunter eine vollständige Pipeline mit Qwen3-Embedding-8B, Qwen3.5-122B-A10B-FP8, n8n und Vektordatenbank-Optionen (pgvector, Qdrant, ChromaDB).

Beschreibung

„GLM-OCR" ist ein auf optische Zeichenerkennung (OCR) spezialisiertes Modell von Z.ai (ZhipuAI), das für die präzise Textextraktion aus Dokumenten und Bildern entwickelt wurde. Ein auf unserer Plattform integrierter Dokumenten-Proxy wandelt PDF-, DOCX-, PPTX-, XLSX-, HTML-, SVG- und Rasterbild-Formate automatisch in PNG-Seiten um, bevor das Modell sie verarbeitet.

Geeignet für und unterstützt:

  • Textextraktion aus PDF-, DOCX-, PPTX-, XLSX-, HTML- und vielen weiteren Dokumentenformaten
  • Verarbeitung gescannter Dokumente, Rechnungen, Verträge, Formulare und Berichte
  • Texterkennung in Tabellen und strukturierten Layouts
  • Erkennung von Formeln und mathematischen Ausdrücken
  • Key Information Extraction (KIE) — strukturierte JSON-Ausgabe aus Formularen, Belegen, Zertifikaten und Ausweisen
  • RAG-Vorverarbeitung (Retrieval-Augmented Generation) — hochgenaues Dokumenten-Parsing für Wissensdatenbanken
  • Mehrsprachige Dokumente — Chinesisch, Englisch, Deutsch, Französisch, Spanisch, Russisch, Japanisch, Koreanisch und weitere Sprachen

Folgende Einschränkungen gelten:

  • Maximal 30 Seiten pro Anfrage – bei Überschreitung liefert die API HTTP 413. Teile größere Dokumente in Batches von je 30 Seiten auf.
  • Maximale Anfragegröße: 200 MB
  • Maximale Kontextlänge: 131.072 Token (ca. 4.000 Token pro Seite bei typischer Dokumentdichte)
  • Kein Tool-Calling oder Function-Calling
  • Kein Gedächtnis zwischen Anfragen — das Modell erinnert sich nicht an vorherige Extraktionen. Jeder API-Aufruf ist eigenständig; sende das Dokument erneut, wenn du eine weitere Frage dazu stellen möchtest.

Unterstützte Eingabeformate

Alle Inhalte werden als Base64-kodierte Data-URI im Feld image_url übermittelt. Der Proxy erkennt das Format automatisch und wandelt es in seitenweise PNG-Bilder um, bevor sie an das Modell weitergeleitet werden.

FormatMIME-Typ für Data-URIHinweise
PDFapplication/pdfBis zu 30 Seiten pro Anfrage
JPEGimage/jpegWird nativ verarbeitet
PNGimage/pngWird nativ verarbeitet
TIFFimage/tiffMehrere Frames → eine Seite pro Frame
GIFimage/gifAnimiert → eine Seite pro Frame
WebPimage/webpAnimiert → eine Seite pro Frame
BMPimage/bmp
SVGimage/svg+xmlRasterisierung via cairosvg
HTMLtext/htmlRendering via WeasyPrint
DOCXapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentKonvertierung via mammoth + WeasyPrint
PPTXapplication/vnd.openxmlformats-officedocument.presentationml.presentationEine Seite pro Folie
XLSXapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetEine Seite pro Tabellenblatt, max. 2.000 Zeilen
XLSapplication/vnd.ms-excelÄlteres Excel-Format

API-Nutzung

GLM-OCR wird über den Standard-Chat-Completions-Endpunkt (/v1/chat/completions) mit dem Modellnamen GLM-OCR aufgerufen. Der Dokumenten-Proxy fängt die Anfrage ab, konvertiert das Dokument in PNG-Seiten und leitet sie an das Modell weiter – das manuelle Aufteilen von Seiten ist nicht erforderlich.

PDF-Dokument extrahieren

import base64
from openai import OpenAI

client = OpenAI(
base_url="https://llm.aihosting.mittwald.de/v1",
api_key="<dein-api-key>",
)

with open("dokument.pdf", "rb") as f:
pdf_b64 = base64.b64encode(f.read()).decode()

response = client.chat.completions.create(
model="GLM-OCR",
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": f"data:application/pdf;base64,{pdf_b64}",
},
},
{
"type": "text",
"text": "Extrahiere den gesamten Text aus diesem Dokument.",
},
],
}
],
temperature=0.1,
)

print(response.choices[0].message.content)

Einzelnes Bild extrahieren

Für einzelne Dokumentbilder (JPEG, PNG):

import base64
from openai import OpenAI

client = OpenAI(
base_url="https://llm.aihosting.mittwald.de/v1",
api_key="<dein-api-key>",
)

with open("seite.jpg", "rb") as f:
img_b64 = base64.b64encode(f.read()).decode()

response = client.chat.completions.create(
model="GLM-OCR",
messages=[
{
"role": "user",
"content": [
{
"type": "image_url",
"image_url": {
"url": f"data:image/jpeg;base64,{img_b64}",
},
},
{
"type": "text",
"text": "Extrahiere den gesamten Text aus diesem Bild.",
},
],
}
],
temperature=0.1,
)

print(response.choices[0].message.content)

Empfohlene Inferenzparameter

GLM-OCR ist ein deterministisches Extraktionsmodell. Verwende niedrige Temperaturen für eine genaue, quellengetreue Textextraktion:

ParameterWert
temperature0.1
top_p1.0
max_tokens4096 pro Seite (entsprechend der Seitenanzahl skalieren)

Ausgabemodi

Das Ausgabeformat des Modells wird ausschließlich über den Prompt gesteuert – es gibt keinen separaten API-Parameter dafür.

ModusAktivierungVerhalten
Klartext"Extrahiere den gesamten Text aus diesem Dokument."Roher Text ohne Formatierung
Markdown"Extrahiere den Text und formatiere ihn als Markdown. Verwende # für Überschriften und - für Listen."Erhält Überschriften, Listen, Hervorhebungen – gut für RAG
JSON (KIE)"Extrahiere diese Felder und gib sie als JSON zurück: {…}"Strukturierte Extraktion; Ausgabe immer in ```json ```-Blöcken – vor dem Parsen entfernen
HTML-Tabelle"Gib die Tabelle als HTML-<table>-Element zurück."Nützlich für tabellenartige Daten

Nutzungsbedingungen und Lizenzierung

Es gelten die allgemeinen Nutzungsbedingungen. Das Modell wird von Z.ai unter der MIT-Lizenz angeboten. Die Weiternutzung der extrahierten Inhalte unterliegt keinen zusätzlichen Einschränkungen durch die Modelllizenz.