{
"event": "PreToolUse",
"tool_name": "Bash",
"tool_input": {
"command": "cd \/var\/www\/scripts\/pipeline && cat << 'PYTHON' | timeout 120 .\/venv\/bin\/python\nimport requests\nimport json\nimport time\n\nOLLAMA_HOST = \"http:\/\/localhost:11434\"\nMODEL = \"gemma3:27b-it-qat\"\n\nCHUNK = \"\"\"HERZLICH WILLKOMMEN!\nIn diesem Modul stehen nochmals ganz besonders die vielen Aspekte rund um Lösungen und Ziele im Fokus. Systemisches Coaching ist zukunfts- und lösungsorientiert, sagen wir. Aber was bedeutet das eigentlich auf den unterschiedlichsten Ebenen unseres Denkens und Handelns?\nUm uns von möglichst vielen Seiten den Antworten auf diese und weitere Fragen zu nähern, stellen wir dir bewährte Techniken, sozusagen die »großen Interventions-Klassiker« vor, die von unverzichtbaren Vordenkern und Urgesteinen der Coachingwelt etabliert wurden. Immer in dem Wissen, dass es sich um »angedachte« Modelle und idealtypische Abläufe handelt, die gleichzeitig erst durch deinen ganz individuellen Coaching-Stil und die individuelle Situation der Klient*innen zum Leben erweckt werden.\nMit dem Wissen aus den letzten Modulen und den ersten Übungsrunden mit dem Coaching-Prozess im Gepäck, füllt sich mit diesem Modul deine Interventions-Toolbox in Windeseile. Du wirst sehen, dass du nach diesem Modul bereits so viele »Schätze« eingesammelt hast, dass du die ersten Probeklient*innen in Coachings begleiten kannst und wirst!\"\"\"\n\nPASSES = [\n {\n \"name\": \"Pass 1: Konkret\",\n \"prompt\": \"\"\"Extrahiere aus dem Text nur KONKRETE Entitäten:\n- PERSON: Namen von Menschen\n- ORGANIZATION: Firmen, Institute, Verlage\n- LOCATION: Orte, Städte, Länder\n\nAntworte NUR mit JSON: {\"persons\": [], \"organizations\": [], \"locations\": []}\nWenn nichts gefunden: leere Arrays.\n\nText:\n\"\"\"\n },\n {\n \"name\": \"Pass 2: Abstrakt\", \n \"prompt\": \"\"\"Extrahiere aus dem Text nur ABSTRAKTE Entitäten:\n- CONCEPT: Fachbegriffe, Theorien (z.B. \"Systemisches Coaching\")\n- METHOD: Interventionen, Techniken (z.B. \"Wunderfrage\")\n- MODEL: Frameworks, Modelle (z.B. \"Coaching-Prozess\")\n\nAntworte NUR mit JSON: {\"concepts\": [], \"methods\": [], \"models\": []}\nWenn nichts gefunden: leere Arrays.\n\nText:\n\"\"\"\n },\n {\n \"name\": \"Pass 3: Narrativ\",\n \"prompt\": \"\"\"Extrahiere aus dem Text nur NARRATIVE Entitäten:\n- METAPHOR: Bildhafte Ausdrücke (z.B. \"Schätze einsammeln\")\n- ROLE: Benannte Rollen (z.B. \"Coach\", \"Klient\")\n- ARTIFACT: Benannte Objekte (z.B. \"Interventions-Toolbox\", \"Modul\")\n\nAntworte NUR mit JSON: {\"metaphors\": [], \"roles\": [], \"artifacts\": []}\nWenn nichts gefunden: leere Arrays.\n\nText:\n\"\"\"\n }\n]\n\nresults = {}\ntotal_time = 0\ntotal_tokens = 0\n\nfor p in PASSES:\n start = time.time()\n resp = requests.post(\n f\"{OLLAMA_HOST}\/api\/generate\",\n json={\"model\": MODEL, \"prompt\": p[\"prompt\"] + CHUNK, \"stream\": False, \"format\": \"json\"},\n timeout=60\n )\n duration = time.time() - start\n data = resp.json()\n \n tokens = data.get(\"prompt_eval_count\", 0) + data.get(\"eval_count\", 0)\n total_tokens += tokens\n total_time += duration\n \n try:\n result = json.loads(data.get(\"response\", \"{}\"))\n except:\n result = {\"error\": data.get(\"response\", \"\")[:200]}\n \n results[p[\"name\"]] = {\n \"result\": result,\n \"time_s\": round(duration, 1),\n \"tokens\": tokens\n }\n print(f\"\\n=== {p['name']} ({duration:.1f}s, {tokens} tokens) ===\")\n print(json.dumps(result, indent=2, ensure_ascii=False))\n\nprint(f\"\\n=== SUMMARY ===\")\nprint(f\"Total time: {total_time:.1f}s\")\nprint(f\"Total tokens: {total_tokens}\")\nPYTHON",
"timeout": 180000,
"description": "Test 3-pass entity extraction"
}
}
{
"tool_response": {
"stdout": "=== Pass 1: Konkret (5.4s, 379 tokens) ===\n{\n \"persons\": [],\n \"organizations\": [],\n \"locations\": []\n}\n\n=== Pass 2: Abstrakt (4.3s, 450 tokens) ===\n{\n \"concepts\": [\n \"Systemisches Coaching\",\n \"Lösungen\",\n \"Ziele\"\n ],\n \"methods\": [\n \"Techniken\",\n \"Interventionen\"\n ],\n \"models\": [\n \"Coaching-Prozess\",\n \"Modelle\",\n \"idealtypische Abläufe\"\n ]\n}\n\n=== Pass 3: Narrativ (3.9s, 453 tokens) ===\n{\n \"metaphors\": [\n \"Schätze einsammeln\"\n ],\n \"roles\": [\n \"Coach\",\n \"Klient\"\n ],\n \"artifacts\": [\n \"Modul\",\n \"Interventions-Toolbox\",\n \"Interventions-Klassiker\"\n ]\n}\n\n=== SUMMARY ===\nTotal time: 13.6s\nTotal tokens: 1282",
"stderr": "",
"interrupted": false,
"isImage": false
}
}