{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/opt\/scripts\/pipeline\/semantic_chunk_analyzer.py",
"limit": 50
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/opt\/scripts\/pipeline\/semantic_chunk_analyzer.py",
"content": "#!\/usr\/bin\/env python3\n\"\"\"\nSemantic Chunk Analyzer - Chunk-Level Semantic Analysis Pipeline\n\nAnalysiert Chunks aus der ki_system.chunks Tabelle und befüllt:\n- chunk_semantics (summary, keywords, sentiment, topics, language)\n- entities (extrahierte Entitäten)\n- chunk_entities (Verknüpfung Chunk <-> Entity)\n- entity_relations (Beziehungen zwischen Entitäten)\n- taxonomy_terms + chunk_taxonomy (Kategorisierung)\n\nPrinzipien: DRY, KISS, SRP, YAGNI\n- Eine Klasse pro Verantwortlichkeit\n- Ollama für LLM-Aufrufe (lokal, kostenfrei)\n- Batch-Verarbeitung für Effizienz\n\nUsage:\n python semantic_chunk_analyzer.py analyze [--limit N]\n python semantic_chunk_analyzer.py status\n python semantic_chunk_analyzer.py reset\n\"\"\"\n\nimport json\nimport sys\nfrom dataclasses import dataclass\n\nimport requests\n\nfrom config import OLLAMA_HOST\nfrom db import db\n\n# === Configuration ===\nANALYSIS_MODEL = \"mistral\" # Schnell und gut für Deutsch\nBATCH_SIZE = 10\n\n\n# === Data Classes (SRP) ===\n@dataclass\nclass ChunkSemantics:\n \"\"\"Semantische Analyse eines Chunks.\"\"\"\n\n chunk_id: int\n summary: str\n keywords: list[str]\n sentiment: str # positive, neutral, negative, mixed\n topics: list[str]\n language: str\n\n\n@dataclass",
"numLines": 50,
"startLine": 1,
"totalLines": 678
}
}
}