{
"event": "PreToolUse",
"tool_name": "Read",
"tool_input": {
"file_path": "\/opt\/scripts\/pipeline\/knowledge.py",
"offset": 55,
"limit": 50
}
}
{
"tool_response": {
"type": "text",
"file": {
"filePath": "\/opt\/scripts\/pipeline\/knowledge.py",
"content": "\n\n# Standard-Modellkonfigurationen\nDEFAULT_MODELS = {\n \"ollama\": ModelConfig(\"ollama\", \"mistral\"),\n \"anthropic\": ModelConfig(\"anthropic\", \"claude-3-haiku-20240307\"),\n \"anthropic_opus\": ModelConfig(\"anthropic\", \"claude-opus-4-5-20251101\"),\n}\n\n\nclass KnowledgeExtractor:\n \"\"\"\n Modulare Wissensextraktion mit Datenbankabgleich.\n\n Verwendung:\n extractor = KnowledgeExtractor(model_config)\n\n # Pro Seite\n entities = extractor.extract_entities(text, KnowledgeLevel.PAGE, page_id)\n semantics = extractor.extract_semantics(entities, text, KnowledgeLevel.PAGE, page_id)\n ontology = extractor.extract_ontology(entities, text, KnowledgeLevel.PAGE, page_id)\n taxonomy = extractor.extract_taxonomy(entities, text, KnowledgeLevel.PAGE, page_id)\n \"\"\"\n\n def __init__(self, model_config: ModelConfig | None = None):\n \"\"\"Initialisiere Extractor mit Modellkonfiguration.\"\"\"\n self.model = model_config or DEFAULT_MODELS[\"ollama\"]\n self.anthropic_client = None\n\n if self.model.provider == \"anthropic\":\n self._init_anthropic()\n\n def _init_anthropic(self):\n \"\"\"Initialisiere Anthropic Client.\"\"\"\n try:\n import anthropic\n\n if ANTHROPIC_API_KEY:\n self.anthropic_client = anthropic.Anthropic(api_key=ANTHROPIC_API_KEY)\n except ImportError:\n db.log(\"WARNING\", \"Anthropic SDK nicht installiert, fallback zu Ollama\")\n self.model = DEFAULT_MODELS[\"ollama\"]\n\n def _call_llm(self, prompt: str, json_output: bool = True) -> str:\n \"\"\"Rufe LLM auf und gib Antwort zurück.\"\"\"\n start_time = time.time()\n\n try:\n if self.model.provider == \"anthropic\" and self.anthropic_client:\n response = self.anthropic_client.messages.create(",
"numLines": 50,
"startLine": 55,
"totalLines": 905
}
}
}