Protokoll #17857

ID17857
Zeitstempel2025-12-26 19:32:21.062842
Clientroot
IP145.224.72.140
Modellclaude-sonnet-4-20250514
Statuspending
Tokens654 (Input: 654, Output: 0)
Dauer-
Request-Zeit2025-12-26 19:32:21.062842
Response-Zeit-

Request

{
    "event": "PreToolUse",
    "tool_name": "Bash",
    "tool_input": {
        "command": "cat << 'PYTHON' | DB_PASSWORD=\"v8mFLmkF2fth_r\" timeout 300 .\/venv\/bin\/python\nimport sys\nimport json\nimport requests\nimport mysql.connector\nsys.path.insert(0, \"\/var\/www\/scripts\/pipeline\")\nfrom db import db\ndb.connect()\n\nOLLAMA_HOST = \"http:\/\/localhost:11434\"\nMODEL = \"gemma3:27b-it-qat\"\n\n# Connect to ki_dev for prompts\ndev_conn = mysql.connector.connect(\n    host=\"localhost\",\n    database=\"ki_dev\",\n    user=\"root\",\n    password=\"v8mFLmkF2fth_r\",\n    charset=\"utf8mb4\"\n)\ndev_cursor = dev_conn.cursor(dictionary=True)\ndev_cursor.execute(\"SELECT content FROM prompts WHERE name = 'entity_extraction_pass2'\")\nrow = dev_cursor.fetchone()\ndev_cursor.close()\ndev_conn.close()\n\nprompt_template = row['content']\nprint(f\"Prompt loaded ({len(prompt_template)} chars)\")\n\n# Get all PERSON entities from ki_content\ncursor = db.execute(\"SELECT id, name FROM entities WHERE type = 'PERSON'\")\npersons = cursor.fetchall()\ncursor.close()\n\nprint(f\"Re-kategorisiere {len(persons)} PERSON-Einträge...\")\n\nentity_names = [p['name'] for p in persons]\nprint(f\"Entities: {entity_names}\")\nprint()\n\nentities_json = json.dumps(entity_names, ensure_ascii=False)\nprompt = prompt_template.replace(\"{entities}\", entities_json)\n\nprint(\"Calling LLM...\")\nresp = requests.post(\n    f\"{OLLAMA_HOST}\/api\/generate\",\n    json={\"model\": MODEL, \"prompt\": prompt, \"stream\": False, \"format\": \"json\"},\n    timeout=120\n)\ndata = resp.json()\nresult = json.loads(data.get(\"response\", \"{}\"))\ncategorized = result.get(\"kategorisiert\", [])\n\nprint(f\"Got {len(categorized)} categorizations\\n\")\n\n# Update entities\nupdated = 0\nfor cat in categorized:\n    name = cat.get(\"name\")\n    new_type = cat.get(\"type\", \"\").upper()\n    \n    if new_type and new_type != \"PERSON\":\n        cursor = db.execute(\n            \"UPDATE entities SET type = %s WHERE name = %s AND type = 'PERSON'\",\n            (new_type, name)\n        )\n        if cursor.rowcount > 0:\n            print(f\"  {name}: PERSON -> {new_type}\")\n            updated += 1\n        db.commit()\n        cursor.close()\n\nprint(f\"\\n{'='*60}\")\nprint(f\"Updated {updated} entities\")\n\n# Show new stats\ncursor = db.execute(\"SELECT type, COUNT(*) as cnt FROM entities GROUP BY type ORDER BY cnt DESC\")\nprint(\"\\nNeue Verteilung:\")\nfor t in cursor.fetchall():\n    print(f\"  {t['type']:12s}: {t['cnt']}\")\ncursor.close()\nPYTHON",
        "timeout": 300000,
        "description": "Re-categorize with ki_dev connection"
    }
}

Response

-
← Vorheriger Zur Liste Nächster →