Protokoll #29986

ID29986
Zeitstempel2025-12-29 15:07:43.612075
Clientroot
IP145.224.72.140
Modellclaude-sonnet-4-20250514
Statuspending
Tokens1,130 (Input: 1,130, Output: 0)
Dauer-
Request-Zeit2025-12-29 15:07:43.612075
Response-Zeit-

Request

{
    "event": "PostToolUse",
    "tool_name": "mcp__mcp-docs__docs_get",
    "tool_response": [
        {
            "type": "text",
            "text": "{\n  \"success\": true,\n  \"doc\": {\n    \"id\": 143,\n    \"parent_id\": 111,\n    \"slug\": \"pdf-rotation\",\n    \"path\": \"\/prozesse\/rag-prozess\/dokument-import\/pdf-rotation\",\n    \"title\": \"PDF-Rotationserkennung\",\n    \"description\": \"Automatische Erkennung und Korrektur von gedrehten PDF-Seiten in der Pipeline\",\n    \"content\": \"<h1>PDF-Rotationserkennung<\/h1>\\n\\n<h2>Status: Implementiert<\/h2>\\n\\n<p><strong>Task #442<\/strong> - Abgeschlossen am 27.12.2025<\/p>\\n\\n<h2>Problem<\/h2>\\n\\n<p>PDF-Dokumente können Seiten enthalten, die um 90°, 180° oder 270° gedreht sind. Ohne Korrektur führt dies zu:<\/p>\\n\\n<ul>\\n<li><strong>Fehlerhafter OCR<\/strong>: Text wird nicht oder falsch erkannt<\/li>\\n<li><strong>Unlesbaren Vision-Analysen<\/strong>: LLM kann Inhalt nicht interpretieren<\/li>\\n<li><strong>Korrupten Embeddings<\/strong>: Semantisch falscher Inhalt wird gespeichert<\/li>\\n<\/ul>\\n\\n<h2>Lösung: Mehrstufige Orientierungserkennung<\/h2>\\n\\n<pre><code>┌─────────────────────────────────────────────────────────┐\\n│ Stufe 1: PDF-Metadaten (\/Rotate Flag)                   │\\n│ → Schnell, kostenlos, 0ms                               │\\n└─────────────────────┬───────────────────────────────────┘\\n                      │ Falls rotation == 0\\n                      ▼\\n┌─────────────────────────────────────────────────────────┐\\n│ Stufe 2: Tesseract OSD                                  │\\n│ → Erkennt 0°\/90°\/180°\/270°                              │\\n│ → ~50-100ms pro Seite                                   │\\n└─────────────────────┬───────────────────────────────────┘\\n                      │ Falls Confidence &lt; 2.0\\n                      ▼\\n┌─────────────────────────────────────────────────────────┐\\n│ Stufe 3: Vision-LLM Fallback                            │\\n│ → Für Bilder ohne Text (optional)                       │\\n└─────────────────────────────────────────────────────────┘<\/code><\/pre>\\n\\n<h2>Implementierte Dateien<\/h2>\\n\\n<table>\\n<tr><th>Datei<\/th><th>Funktion<\/th><th>Status<\/th><\/tr>\\n<tr><td><code>orientation.py<\/code><\/td><td>Orientierungslogik (NEU)<\/td><td>✓<\/td><\/tr>\\n<tr><td><code>extract.py<\/code><\/td><td>Rotation vor OCR<\/td><td>✓<\/td><\/tr>\\n<tr><td><code>vision.py<\/code><\/td><td>Bilder rotieren<\/td><td>✓<\/td><\/tr>\\n<tr><td><code>config.py<\/code><\/td><td>Konfigurationswerte<\/td><td>✓<\/td><\/tr>\\n<\/table>\\n\\n<h2>Konfiguration<\/h2>\\n\\n<pre><code class=\\\"language-python\\\"># config.py\\nROTATION_DETECTION_ENABLED = True\\nROTATION_OSD_CONFIDENCE_THRESHOLD = 2.0\\nROTATION_USE_VISION_FALLBACK = False<\/code><\/pre>\\n\\n<h2>Abhängigkeiten<\/h2>\\n\\n<table>\\n<tr><th>Komponente<\/th><th>Status<\/th><\/tr>\\n<tr><td>tesseract-ocr 5.5.0<\/td><td>✓ Installiert<\/td><\/tr>\\n<tr><td>tesseract-ocr-deu<\/td><td>✓ Installiert<\/td><\/tr>\\n<tr><td>tesseract-ocr-osd<\/td><td>✓ Installiert<\/td><\/tr>\\n<tr><td>PyMuPDF<\/td><td>✓ Vorhanden<\/td><\/tr>\\n<tr><td>pytesseract<\/td><td>✓ Vorhanden<\/td><\/tr>\\n<tr><td>Pillow<\/td><td>✓ Vorhanden<\/td><\/tr>\\n<\/table>\\n\\n<h2>API<\/h2>\\n\\n<h3>detect_orientation(image_bytes) -&gt; dict<\/h3>\\n\\n<p>Erkennt Orientierung eines Bildes mittels Tesseract OSD.<\/p>\\n\\n<p><strong>Returns:<\/strong><\/p>\\n<pre><code class=\\\"language-python\\\">{\\n    'rotation': 90,        # 0, 90, 180, 270\\n    'confidence': 3.5,     # OSD Confidence\\n    'script': 'Latin',     # Erkanntes Skript\\n    'method': 'osd'        # 'osd', 'fallback' oder 'disabled'\\n}<\/code><\/pre>\\n\\n<h3>get_page_rotation(page) -&gt; int<\/h3>\\n\\n<p>Kombiniert PDF-Metadaten und OSD-Erkennung.<\/p>\\n\\n<p><strong>Returns:<\/strong> <code>int<\/code> (0, 90, 180, 270)<\/p>\\n\\n<h3>rotate_image(image_bytes, rotation) -&gt; bytes<\/h3>\\n\\n<p>Rotiert Bild um angegebene Grad.<\/p>\\n\\n<h3>correct_page_orientation(page, target_dpi) -&gt; tuple[bytes, int]<\/h3>\\n\\n<p>Convenience-Funktion für korrekt orientiertes Bild.<\/p>\\n\\n<h2>Referenz<\/h2>\\n\\n<ul>\\n<li>Task #442: Implementierung<\/li>\\n<li>PyMuPDF Docs: <a href=\\\"https:\/\/pymupdf.readthedocs.io\/\\\">https:\/\/pymupdf.readthedocs.io\/<\/a><\/li>\\n<li>Tesseract OSD: <a href=\\\"https:\/\/tesseract-ocr.github.io\/\\\">https:\/\/tesseract-ocr.github.io\/<\/a><\/li>\\n<\/ul>\",\n    \"status\": \"published\",\n    \"sort_order\": 2,\n    \"depth\": 3,\n    \"created_at\": \"2025-12-27T11:37:41\",\n    \"updated_at\": \"2025-12-29T14:48:00\"\n  }\n}"
        }
    ]
}

Response

-
← Vorheriger Zur Liste Nächster →