{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"doc\": {\n \"id\": 22,\n \"parent_id\": 16,\n \"slug\": \"ki-entitaeten\",\n \"path\": \"\/ki-system\/ki-entitaeten\",\n \"title\": \"Entitäten\",\n \"description\": \"Automatische Extraktion und Verwaltung von Entitäten aus Dokumenten.\",\n \"content\": \"<nav class=\\\"breadcrumb\\\">\\n <a href=\\\"\/docs\\\">Dokumentation<\/a> » <a href=\\\"\/docs\/ki-system\\\">KI-System<\/a> » Entitäten\\n<\/nav>\\n\\n<h1>Entitäten<\/h1>\\n<p class=\\\"doc-meta\\\"><strong>Erstellt:<\/strong> 2025-12-20 | <strong>Aktualisiert:<\/strong> 2025-12-29<\/p>\\n\\n<p>Automatische Extraktion und Verwaltung von Entitäten aus Dokumenten.<\/p>\\n\\n<table>\\n <tr><th>Methode<\/th><td>LLM-Extraktion (prompt-basiert)<\/td><\/tr>\\n <tr><th>Typen<\/th><td>Dynamisch aus Dokumenten<\/td><\/tr>\\n <tr><th>Sprache<\/th><td>Deutsch<\/td><\/tr>\\n <tr><th>Kuratierung<\/th><td>Manuell via Web-UI<\/td><\/tr>\\n <tr><th>Datenbank<\/th><td>ki_content<\/td><\/tr>\\n<\/table>\\n\\n<h2>Entitätstypen<\/h2>\\n<table>\\n <tr><th>Typ<\/th><th>Beschreibung<\/th><th>Beispiel<\/th><\/tr>\\n <tr><td>PERSON<\/td><td>Autoren, Therapeuten<\/td><td>Carl Rogers<\/td><\/tr>\\n <tr><td>ORGANIZATION<\/td><td>Institute, Verlage<\/td><td>Carl Auer Verlag<\/td><\/tr>\\n <tr><td>CONCEPT<\/td><td>Theorien, Methoden<\/td><td>Systemtheorie<\/td><\/tr>\\n <tr><td>WORK<\/td><td>Bücher, Artikel<\/td><td>Die Kunst der Psychotherapie<\/td><\/tr>\\n <tr><td>EVENT<\/td><td>Konferenzen<\/td><td>Heidelberger Symposium<\/td><\/tr>\\n <tr><td>TERM<\/td><td>Fachbegriffe<\/td><td>Zirkuläres Fragen<\/td><\/tr>\\n<\/table>\\n\\n<h2>Semantik-Generierung<\/h2>\\n<p>Das Script <code>generate_semantics.py<\/code> generiert semantische Definitionen für Entitäten mit Ollama.<\/p>\\n\\n<table>\\n <tr><th>Script<\/th><td>\/var\/www\/scripts\/pipeline\/generate_semantics.py<\/td><\/tr>\\n <tr><th>Modell<\/th><td>mistral (Ollama)<\/td><\/tr>\\n <tr><th>Ziel-Tabelle<\/th><td>chunk_semantics<\/td><\/tr>\\n<\/table>\\n\\n<h3>Ablauf<\/h3>\\n<ol>\\n <li>Entitäten ohne Semantik laden<\/li>\\n <li>Dokument-Kontext aus chunks-Tabelle laden (Top 5)<\/li>\\n <li>Für jede Entity: LLM-Prompt mit Kontext generieren<\/li>\\n <li>JSON-Response parsen (definition, domain, context, attributes)<\/li>\\n <li>In chunk_semantics speichern (UPSERT)<\/li>\\n<\/ol>\\n\\n<h3>Generiertes Schema<\/h3>\\n<pre><code>{\\n \\\"definition\\\": \\\"Bedeutung in 1-2 Sätzen\\\",\\n \\\"domain\\\": \\\"Wissensdomäne\\\",\\n \\\"context\\\": \\\"Verwendungskontext\\\",\\n \\\"attributes\\\": {},\\n \\\"usage_notes\\\": \\\"\\\",\\n \\\"confidence\\\": 0.8\\n}<\/code><\/pre>\\n\\n<h3>Ausführung<\/h3>\\n<pre><code>cd \/var\/www\/scripts\/pipeline\\nsource venv\/bin\/activate\\npython generate_semantics.py<\/code><\/pre>\\n\\n<h2>Deduplizierung<\/h2>\\n<p>Synonyme werden in einer Referenzierungs-Tabelle gespeichert:<\/p>\\n<pre><code>entity_synonyms:\\n entity_id: 42 (Carl Rogers)\\n synonyms:\\n - \\\"Rogers\\\"\\n - \\\"C. Rogers\\\"\\n - \\\"Carl R. Rogers\\\"<\/code><\/pre>\\n\\n<h2>Extraktions-Prompt<\/h2>\\n<pre><code>Analysiere folgenden Text und extrahiere alle Entitäten.\\nBestimme den Typ selbstständig basierend auf dem Kontext.\\n\\nText: {chunk_content}\\n\\nAusgabeformat JSON:\\n{\\n \\\"entities\\\": [\\n {\\n \\\"name\\\": \\\"Carl Rogers\\\",\\n \\\"type\\\": \\\"PERSON\\\",\\n \\\"context\\\": \\\"Begründer der klientenzentrierten Therapie\\\",\\n \\\"confidence\\\": 0.95\\n }\\n ]\\n}<\/code><\/pre>\\n\\n<h2>Relationen<\/h2>\\n<table>\\n <tr><th>Relation<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>AUTHORED_BY<\/td><td>Person verfasste Werk<\/td><\/tr>\\n <tr><td>INFLUENCED<\/td><td>Person beeinflusste Person\/Konzept<\/td><\/tr>\\n <tr><td>PART_OF<\/td><td>Konzept ist Teil von<\/td><\/tr>\\n <tr><td>APPLIES<\/td><td>Methode wendet Konzept an<\/td><\/tr>\\n <tr><td>EXTENDS<\/td><td>Konzept erweitert Konzept<\/td><\/tr>\\n <tr><td>CITES<\/td><td>Werk zitiert Werk<\/td><\/tr>\\n<\/table>\\n\\n<h2>Datenbank-Schema (ki_content)<\/h2>\\n<pre><code>entities (\\n id, name, canonical_name, type,\\n description, created_at\\n)\\n\\nentity_synonyms (\\n entity_id, synonym\\n)\\n\\nentity_relations (\\n source_entity_id, target_entity_id,\\n relation_type, confidence\\n)\\n\\nchunk_entities (\\n chunk_id, entity_id,\\n mention_count, relevance_score\\n)\\n\\nchunk_semantics (\\n id, chunk_id,\\n definition, domain, context,\\n attributes (JSON), usage_notes,\\n confidence, source,\\n created_at, updated_at\\n)<\/code><\/pre>\\n\\n<h2>Web-UI Features<\/h2>\\n<ul>\\n <li>Entitätenliste mit Filtern<\/li>\\n <li>Detailansicht mit allen Vorkommen<\/li>\\n <li>Batch-Merge für Duplikate<\/li>\\n <li>Manuelles Anlegen\/Bearbeiten<\/li>\\n <li>Graph-Visualisierung (Vanilla JS)<\/li>\\n<\/ul>\",\n \"status\": \"published\",\n \"sort_order\": 6,\n \"depth\": 1,\n \"created_at\": \"2025-12-20T11:13:58\",\n \"updated_at\": \"2025-12-29T14:59:39\"\n }\n}"
}
]
}