Protokoll #6250

ID6250
Zeitstempel2025-12-23 05:15:07.476519
Clientroot
IP145.224.96.190
Modellclaude-sonnet-4-20250514
Statuscompleted
Tokens631 (Input: 34, Output: 597)
Dauer81 ms
Request-Zeit2025-12-23 05:15:07.476519
Response-Zeit2025-12-23 05:15:07.557545

Request

{
    "event": "PreToolUse",
    "tool_name": "Read",
    "tool_input": {
        "file_path": "\/opt\/scripts\/pipeline\/vision.py",
        "offset": 130,
        "limit": 60
    }
}

Response

{
    "tool_response": {
        "type": "text",
        "file": {
            "filePath": "\/opt\/scripts\/pipeline\/vision.py",
            "content": "\ndef analyze_document(file_path, model=DEFAULT_VISION_MODEL, store_images=False, image_dir=None, progress=None):\n    \"\"\"\n    Analyze all pages of a PDF document.\n\n    Args:\n        file_path: Path to PDF file\n        model: Vision model to use\n        store_images: Whether to save images to disk\n        image_dir: Directory for saved images (default: \/tmp\/pipeline_images)\n        progress: PipelineProgress instance for live updates\n\n    Returns:\n        List of page analysis results\n    \"\"\"\n    db.log(\"INFO\", f\"Vision analysis starting: {file_path}\", f\"model={model}\")\n\n    # Convert PDF to images\n    pages = pdf_to_images(file_path)\n    db.log(\"INFO\", f\"Extracted {len(pages)} pages from PDF\")\n\n    if progress:\n        progress.add_log(f\"Vision: {len(pages)} Seiten gefunden\")\n\n    if image_dir is None:\n        image_dir = \"\/tmp\/pipeline_images\"  # noqa: S108\n\n    if store_images:\n        os.makedirs(image_dir, exist_ok=True)\n\n    results = []\n\n    for page in pages:\n        page_num = page[\"page_number\"]\n        db.log(\"INFO\", f\"Analyzing page {page_num}\/{len(pages)}\")\n\n        if progress:\n            progress.add_log(f\"Vision: Seite {page_num}\/{len(pages)}...\")\n\n        # Optional: Save image to disk\n        image_path = None\n        if store_images:\n            filename = f\"{Path(file_path).stem}_page_{page_num:03d}.{IMAGE_FORMAT}\"\n            image_path = os.path.join(image_dir, filename)\n            with open(image_path, \"wb\") as f:\n                f.write(page[\"image_bytes\"])\n\n        # Analyze with vision model\n        analysis = analyze_image_ollama(page[\"image_bytes\"], model=model)\n\n        results.append(\n            {\n                \"page_number\": page_num,\n                \"width\": page[\"width\"],\n                \"height\": page[\"height\"],\n                \"size_kb\": page[\"size_kb\"],\n                \"image_path\": image_path,\n                \"analysis\": analysis.get(\"analysis\", \"\") if analysis[\"success\"] else None,\n                \"error\": analysis.get(\"error\") if not analysis[\"success\"] else None,\n                \"eval_tokens\": analysis.get(\"eval_count\", 0),",
            "numLines": 60,
            "startLine": 130,
            "totalLines": 388
        }
    }
}
← Vorheriger Zur Liste Nächster →