Protokoll #21931

ID21931
Zeitstempel2025-12-27 11:37:41.811462
Clientroot
IP145.224.72.140
Modellclaude-sonnet-4-20250514
Statuscompleted
Tokens1,750 (Input: 819, Output: 931)
Dauer94 ms
Request-Zeit2025-12-27 11:37:41.811462
Response-Zeit2025-12-27 11:37:41.905826

Request

{
    "event": "PreToolUse",
    "tool_name": "mcp__mcp-docs__docs_create",
    "tool_input": {
        "title": "PDF-Rotationserkennung",
        "slug": "pdf-rotation",
        "parent_id": 111,
        "description": "Automatische Erkennung und Korrektur von gedrehten PDF-Seiten in der Pipeline",
        "sort_order": 2,
        "status": "published",
        "content": "# PDF-Rotationserkennung\n\n## Problem\n\nPDF-Dokumente können Seiten enthalten, die um 90°, 180° oder 270° gedreht sind. Ohne Korrektur führt dies zu:\n\n- **Fehlerhafter OCR**: Text wird nicht oder falsch erkannt\n- **Unlesbaren Vision-Analysen**: LLM kann Inhalt nicht interpretieren\n- **Korrupten Embeddings**: Semantisch falscher Inhalt wird gespeichert\n\n## Lösung: Mehrstufige Orientierungserkennung\n\n```\n┌─────────────────────────────────────────────────────────┐\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 < 2.0\n                      ▼\n┌─────────────────────────────────────────────────────────┐\n│ Stufe 3: Vision-LLM Fallback                            │\n│ → Für Bilder ohne Text                                  │\n└─────────────────────────────────────────────────────────┘\n```\n\n## Betroffene Dateien\n\n| Datei | Funktion | Änderung |\n|-------|----------|----------|\n| `extract.py` | `extract_pdf()` | Rotation vor OCR erkennen |\n| `vision.py` | `pdf_to_images()` | Bilder rotieren |\n| `orientation.py` | (NEU) | Orientierungslogik |\n| `config.py` | Settings | Neue Konfigurationswerte |\n\n## Konfiguration\n\n```python\n# config.py\nROTATION_DETECTION_ENABLED = True\nROTATION_OSD_CONFIDENCE_THRESHOLD = 2.0\nROTATION_USE_VISION_FALLBACK = False\n```\n\n## Abhängigkeiten\n\n| Komponente | Status |\n|------------|--------|\n| tesseract-ocr | Erforderlich |\n| tesseract-ocr-deu | Erforderlich |\n| PyMuPDF | ✓ Vorhanden |\n| pytesseract | ✓ Vorhanden |\n| Pillow | ✓ Vorhanden |\n\n## Installation\n\n```bash\napt-get install tesseract-ocr tesseract-ocr-deu\n```\n\n## Validierung\n\n```bash\n# Tesseract prüfen\ntesseract --version\n\n# OSD-Test\ntesseract image.png stdout --psm 0\n```\n\n## API\n\n### `detect_orientation(image_bytes) -> dict`\n\nErkennt Orientierung eines Bildes.\n\n**Returns:**\n```python\n{\n    'rotation': 90,        # 0, 90, 180, 270\n    'confidence': 3.5,     # OSD Confidence\n    'script': 'Latin',     # Erkanntes Skript\n    'method': 'osd'        # 'osd' oder 'fallback'\n}\n```\n\n### `get_page_rotation(page) -> int`\n\nKombiniert PDF-Metadaten und OSD-Erkennung.\n\n**Returns:** `int` (0, 90, 180, 270)\n\n### `rotate_image(image_bytes, rotation) -> bytes`\n\nRotiert Bild um angegebene Grad.\n\n## Referenz\n\n- Task #442: Implementierung\n- PyMuPDF Docs: https:\/\/pymupdf.readthedocs.io\/\n- Tesseract OSD: https:\/\/tesseract-ocr.github.io\/"
    }
}

Response

{
    "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\": \"# PDF-Rotationserkennung\\n\\n## Problem\\n\\nPDF-Dokumente können Seiten enthalten, die um 90°, 180° oder 270° gedreht sind. Ohne Korrektur führt dies zu:\\n\\n- **Fehlerhafter OCR**: Text wird nicht oder falsch erkannt\\n- **Unlesbaren Vision-Analysen**: LLM kann Inhalt nicht interpretieren\\n- **Korrupten Embeddings**: Semantisch falscher Inhalt wird gespeichert\\n\\n## Lösung: Mehrstufige Orientierungserkennung\\n\\n```\\n┌─────────────────────────────────────────────────────────┐\\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 < 2.0\\n                      ▼\\n┌─────────────────────────────────────────────────────────┐\\n│ Stufe 3: Vision-LLM Fallback                            │\\n│ → Für Bilder ohne Text                                  │\\n└─────────────────────────────────────────────────────────┘\\n```\\n\\n## Betroffene Dateien\\n\\n| Datei | Funktion | Änderung |\\n|-------|----------|----------|\\n| `extract.py` | `extract_pdf()` | Rotation vor OCR erkennen |\\n| `vision.py` | `pdf_to_images()` | Bilder rotieren |\\n| `orientation.py` | (NEU) | Orientierungslogik |\\n| `config.py` | Settings | Neue Konfigurationswerte |\\n\\n## Konfiguration\\n\\n```python\\n# config.py\\nROTATION_DETECTION_ENABLED = True\\nROTATION_OSD_CONFIDENCE_THRESHOLD = 2.0\\nROTATION_USE_VISION_FALLBACK = False\\n```\\n\\n## Abhängigkeiten\\n\\n| Komponente | Status |\\n|------------|--------|\\n| tesseract-ocr | Erforderlich |\\n| tesseract-ocr-deu | Erforderlich |\\n| PyMuPDF | ✓ Vorhanden |\\n| pytesseract | ✓ Vorhanden |\\n| Pillow | ✓ Vorhanden |\\n\\n## Installation\\n\\n```bash\\napt-get install tesseract-ocr tesseract-ocr-deu\\n```\\n\\n## Validierung\\n\\n```bash\\n# Tesseract prüfen\\ntesseract --version\\n\\n# OSD-Test\\ntesseract image.png stdout --psm 0\\n```\\n\\n## API\\n\\n### `detect_orientation(image_bytes) -> dict`\\n\\nErkennt Orientierung eines Bildes.\\n\\n**Returns:**\\n```python\\n{\\n    'rotation': 90,        # 0, 90, 180, 270\\n    'confidence': 3.5,     # OSD Confidence\\n    'script': 'Latin',     # Erkanntes Skript\\n    'method': 'osd'        # 'osd' oder 'fallback'\\n}\\n```\\n\\n### `get_page_rotation(page) -> int`\\n\\nKombiniert PDF-Metadaten und OSD-Erkennung.\\n\\n**Returns:** `int` (0, 90, 180, 270)\\n\\n### `rotate_image(image_bytes, rotation) -> bytes`\\n\\nRotiert Bild um angegebene Grad.\\n\\n## Referenz\\n\\n- Task #442: Implementierung\\n- PyMuPDF Docs: https:\/\/pymupdf.readthedocs.io\/\\n- Tesseract OSD: https:\/\/tesseract-ocr.github.io\/\",\n    \"status\": \"published\",\n    \"sort_order\": 2,\n    \"depth\": 3,\n    \"created_at\": \"2025-12-27T11:37:41\",\n    \"updated_at\": \"2025-12-27T11:37:41\"\n  },\n  \"message\": \"Document 'PDF-Rotationserkennung' created with ID 143\"\n}"
        }
    ]
}
← Vorheriger Zur Liste Nächster →