Protokoll #3093

ID3093
Zeitstempel2025-12-22 01:58:09.994159
Clientroot
IP145.224.96.190
Modellclaude-sonnet-4-20250514
Statuscompleted
Tokens933 (Input: 34, Output: 899)
Dauer90 ms
Request-Zeit2025-12-22 01:58:09.994159
Response-Zeit2025-12-22 01:58:10.084126

Request

{
    "event": "PreToolUse",
    "tool_name": "Read",
    "tool_input": {
        "file_path": "\/opt\/scripts\/pipeline\/generate.py",
        "offset": 680,
        "limit": 100
    }
}

Response

{
    "tool_response": {
        "type": "text",
        "file": {
            "filePath": "\/opt\/scripts\/pipeline\/generate.py",
            "content": "\n    except Exception as e:\n        return {\"error\": str(e)}\n    finally:\n        db.disconnect()\n\n\ndef revise_content(version_id, model=\"anthropic\"):\n    \"\"\"\n    Create a revision based on critique feedback.\n\n    Returns:\n        dict with new version info\n    \"\"\"\n    db.connect()\n\n    try:\n        # Get version and critiques\n        cursor = db.execute(\n            \"\"\"SELECT cv.*, co.id as order_id, co.briefing, co.current_critique_round,\n                      ap.content as profile_config\n               FROM content_versions cv\n               JOIN content_orders co ON cv.order_id = co.id\n               LEFT JOIN content_config ap ON co.author_profile_id = ap.id AND ap.type = 'author_profile'\n               WHERE cv.id = %s\"\"\",\n            (version_id,),\n        )\n        version = cursor.fetchone()\n        cursor.close()\n\n        if not version:\n            return {\"error\": \"Version not found\"}\n\n        content_data = json.loads(version[\"content\"]) if isinstance(version[\"content\"], str) else version[\"content\"]\n        content_text = content_data.get(\"text\", \"\")\n\n        # Get latest critiques\n        cursor = db.execute(\n            \"\"\"SELECT c.name, cc.feedback\n               FROM content_critiques cc\n               JOIN critics c ON cc.critic_id = c.id\n               WHERE cc.version_id = %s AND cc.round = %s\"\"\",\n            (version_id, version[\"current_critique_round\"]),\n        )\n        critiques = cursor.fetchall()\n        cursor.close()\n\n        # Build revision prompt\n        feedback_text = \"\"\n        for critique in critiques:\n            fb = json.loads(critique[\"feedback\"]) if isinstance(critique[\"feedback\"], str) else critique[\"feedback\"]\n            feedback_text += f\"\\n### {critique['name']}:\\n\"\n            feedback_text += f\"- Bewertung: {fb.get('rating', 'N\/A')}\/10\\n\"\n            feedback_text += f\"- Probleme: {', '.join(fb.get('issues', []))}\\n\"\n            feedback_text += f\"- Vorschläge: {', '.join(fb.get('suggestions', []))}\\n\"\n\n        prompt = f\"\"\"Du bist ein professioneller Content-Editor. Überarbeite den folgenden Text basierend auf dem Feedback der Kritiker.\n\n## Originaler Text:\n{content_text}\n\n## Feedback der Kritiker:\n{feedback_text}\n\n## Anweisungen:\n1. Behebe alle genannten Probleme\n2. Setze die Verbesserungsvorschläge um\n3. Behalte den Grundton und Stil bei\n4. Achte auf eine kohärente Überarbeitung\n\nErstelle nun die überarbeitete Version:\"\"\"\n\n        # Generate revision\n        update_order_status(version[\"order_id\"], \"generating\")\n        revised_content = call_llm(prompt, model, client_name=\"content-studio-revise\")\n\n        # Save new version\n        new_version_number = version[\"version_number\"] + 1\n        new_version_id = save_version(version[\"order_id\"], revised_content, new_version_number)\n\n        # Update status\n        update_order_status(version[\"order_id\"], \"critique\")\n\n        return {\n            \"success\": True,\n            \"order_id\": version[\"order_id\"],\n            \"version_id\": new_version_id,\n            \"version_number\": new_version_number,\n            \"content\": revised_content,\n        }\n\n    except Exception as e:\n        return {\"error\": str(e)}\n    finally:\n        db.disconnect()\n\n\nif __name__ == \"__main__\":\n    import sys\n",
            "numLines": 100,
            "startLine": 680,
            "totalLines": 800
        }
    }
}
← Vorheriger Zur Liste Nächster →