Protokoll #24096

ID24096
Zeitstempel2025-12-27 15:49:50.740231
Clientroot
IP145.224.72.140
Modellclaude-sonnet-4-20250514
Statuscompleted
Tokens5,177 (Input: 2,591, Output: 2,586)
Dauer484 ms
Request-Zeit2025-12-27 15:49:50.740231
Response-Zeit2025-12-27 15:49:51.224226

Request

{
    "event": "PreToolUse",
    "tool_name": "mcp__mcp-docs__docs_update",
    "tool_input": {
        "id": 100,
        "content": "<nav class=\"breadcrumb\">\n    <a href=\"\/docs\">Dokumentation<\/a> &raquo;\n    <a href=\"\/docs\/prozesse\">Prozesse<\/a> &raquo;\n    RAG-Prozess\n<\/nav>\n\n<h1>RAG-Prozess<\/h1>\n\n<p><strong>Status:<\/strong> Aktualisiert 2025-12-27<\/p>\n\n<h2>Übersicht<\/h2>\n\n<p>Der RAG-Prozess (Retrieval Augmented Generation) bildet das Herzstück der KI-gestützten Wissensgenerierung. Die Architektur trennt strikt zwischen <strong>Offline-Pipeline<\/strong> (Wissensaufbau) und <strong>Online-Pipeline<\/strong> (Wissenskonsum).<\/p>\n\n<h3>Grundprinzip<\/h3>\n<ul>\n    <li>Die <strong>Offline-Pipeline<\/strong> erzeugt und strukturiert Wissen (Python-Skripte)<\/li>\n    <li>Die <strong>Online-Pipeline<\/strong> konsumiert Wissen, ohne es zu verändern (PHP-Services)<\/li>\n    <li>Zwischen beiden Pipelines besteht <strong>keine Rückkopplung zur Laufzeit<\/strong><\/li>\n<\/ul>\n\n<hr>\n\n<h2>Offline-Pipeline: Tatsächlicher Ablauf (IST)<\/h2>\n\n<p><strong>Pfad:<\/strong> <code>\/var\/www\/scripts\/pipeline\/<\/code><br>\n<strong>Orchestrator:<\/strong> <code>pipeline.py<\/code><br>\n<strong>Step-Module:<\/strong> <code>step_extract.py<\/code>, <code>step_load.py<\/code>, <code>step_transform.py<\/code>, <code>step_embed.py<\/code>, <code>step_semantic.py<\/code><\/p>\n\n<h3>Phase 0: Detection<\/h3>\n\n<table>\n    <thead>\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\n    <\/thead>\n    <tbody>\n        <tr><td>detect<\/td><td><code>detect.py<\/code><\/td><td>Dateien scannen, Hash-Vergleich<\/td><\/tr>\n        <tr><td>queue<\/td><td><code>detect.py<\/code><\/td><td>Neue\/geänderte Dateien in Queue<\/td><\/tr>\n    <\/tbody>\n<\/table>\n\n<h3>Phase 1: Extraction (pro Dokument)<\/h3>\n\n<table>\n    <thead>\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\n    <\/thead>\n    <tbody>\n        <tr><td>extract<\/td><td><code>step_extract.py<\/code> → <code>extract.py<\/code><\/td><td>Text aus PDF\/DOCX\/PPTX\/MD\/TXT<\/td><\/tr>\n        <tr><td>hash<\/td><td><code>step_extract.py<\/code><\/td><td>SHA256 Hash berechnen<\/td><\/tr>\n        <tr><td>rotation<\/td><td><code>orientation.py<\/code><\/td><td>Seitenrotation erkennen (PDF)<\/td><\/tr>\n    <\/tbody>\n<\/table>\n\n<h3>Phase 2: Load<\/h3>\n\n<table>\n    <thead>\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\n    <\/thead>\n    <tbody>\n        <tr><td>doc_create<\/td><td><code>step_load.py<\/code><\/td><td>Dokument in <code>documents<\/code> anlegen<\/td><\/tr>\n        <tr><td>page_store<\/td><td><code>step_load.py<\/code><\/td><td>Seiten in <code>document_pages<\/code> speichern<\/td><\/tr>\n    <\/tbody>\n<\/table>\n\n<h3>Phase 3: Vision (nur PDF)<\/h3>\n\n<table>\n    <thead>\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\n    <\/thead>\n    <tbody>\n        <tr><td>vision<\/td><td><code>step_transform.py<\/code> → <code>vision.py<\/code><\/td><td>Seiten mit llama3.2-vision:11b analysieren<\/td><\/tr>\n        <tr><td>vision_store<\/td><td><code>vision.py<\/code><\/td><td>Ergebnisse in <code>document_pages.vision_analysis<\/code><\/td><\/tr>\n    <\/tbody>\n<\/table>\n\n<h3>Phase 4: Chunking<\/h3>\n\n<table>\n    <thead>\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\n    <\/thead>\n    <tbody>\n        <tr><td>chunk<\/td><td><code>step_transform.py<\/code> → <code>chunk.py<\/code><\/td><td>Text in semantische Chunks zerlegen<\/td><\/tr>\n        <tr><td>chunk_store<\/td><td><code>step_load.py<\/code><\/td><td>Chunks in <code>chunks<\/code> speichern<\/td><\/tr>\n    <\/tbody>\n<\/table>\n\n<h3>Phase 5: Enrichment (nur PDF)<\/h3>\n\n<table>\n    <thead>\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\n    <\/thead>\n    <tbody>\n        <tr><td>enrich<\/td><td><code>step_transform.py<\/code> → <code>enrich.py<\/code><\/td><td>Vision-Kontext zu Chunks hinzufügen<\/td><\/tr>\n    <\/tbody>\n<\/table>\n\n<h3>Phase 6: Embedding (Layer 3 - Dokument wird suchbar)<\/h3>\n\n<table>\n    <thead>\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\n    <\/thead>\n    <tbody>\n        <tr><td>embed<\/td><td><code>step_embed.py<\/code> → <code>embed.py<\/code><\/td><td>Embeddings mit mxbai-embed-large<\/td><\/tr>\n        <tr><td>qdrant_store<\/td><td><code>embed.py<\/code><\/td><td>Vektoren in Qdrant speichern<\/td><\/tr>\n        <tr><td>status_embedded<\/td><td><code>step_load.py<\/code><\/td><td>Status = \"embedded\"<\/td><\/tr>\n    <\/tbody>\n<\/table>\n\n<p><strong>Nach Phase 6 ist das Dokument im Chat suchbar!<\/strong><\/p>\n\n<h3>Phase 7: Semantic Analysis (Layer 4 - optional\/async)<\/h3>\n\n<table>\n    <thead>\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\n    <\/thead>\n    <tbody>\n        <tr><td>entity_extract<\/td><td><code>analyzers\/entity_extractor.py<\/code><\/td><td>Entitäten extrahieren (Anthropic\/Ollama)<\/td><\/tr>\n        <tr><td>entity_store<\/td><td><code>analyzers\/entity_extractor.py<\/code><\/td><td>Entitäten in <code>entities<\/code> speichern<\/td><\/tr>\n        <tr><td>entity_normalize<\/td><td><code>analyzers\/entity_normalizer.py<\/code><\/td><td>canonical_name setzen<\/td><\/tr>\n        <tr><td>relation_extract<\/td><td><code>analyzers\/relation_extractor.py<\/code><\/td><td>Relationen extrahieren<\/td><\/tr>\n        <tr><td>relation_store<\/td><td><code>analyzers\/document_analyzer.py<\/code><\/td><td>In <code>entity_relations<\/code> speichern<\/td><\/tr>\n        <tr><td>taxonomy_classify<\/td><td><code>analyzers\/taxonomy_classifier.py<\/code><\/td><td>Taxonomie-Kategorien zuweisen<\/td><\/tr>\n        <tr><td>ontology_classify<\/td><td><code>analyzers\/ontology_classifier.py<\/code><\/td><td>Ontologie-Klassen zuweisen<\/td><\/tr>\n        <tr><td>chunk_entity_link<\/td><td><code>analyzers\/document_analyzer.py<\/code><\/td><td>Chunks mit Entitäten verknüpfen<\/td><\/tr>\n        <tr><td>chunk_taxonomy<\/td><td><code>analyzers\/document_analyzer.py<\/code><\/td><td>Taxonomie auf Chunks propagieren<\/td><\/tr>\n        <tr><td>entity_taxonomy<\/td><td><code>analyzers\/document_analyzer.py<\/code><\/td><td>Taxonomie auf Entitäten<\/td><\/tr>\n        <tr><td>chunk_semantics<\/td><td><code>analyzers\/semantic_analyzer.py<\/code><\/td><td>Chunk-Semantik analysieren<\/td><\/tr>\n    <\/tbody>\n<\/table>\n\n<h3>Phase 8: Finalization<\/h3>\n\n<table>\n    <thead>\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\n    <\/thead>\n    <tbody>\n        <tr><td>status_done<\/td><td><code>step_load.py<\/code><\/td><td>Status = \"done\"<\/td><\/tr>\n    <\/tbody>\n<\/table>\n\n<hr>\n\n<h2>Datenfluss-Diagramm<\/h2>\n\n<pre><code>┌─────────────────────────────────────────────────────────────────┐\n│ Phase 0: DETECTION                                               │\n│ detect.py: scan_directory() → queue_files()                     │\n└─────────────────────────────┬───────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────────┐\n│ Phase 1: EXTRACTION                                              │\n│ step_extract.py → extract.py                                    │\n│   • Text aus PDF\/DOCX\/PPTX\/MD\/TXT                               │\n│   • SHA256 Hash                                                 │\n│   • Rotationserkennung (orientation.py)                         │\n└─────────────────────────────┬───────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────────┐\n│ Phase 2: LOAD                                                    │\n│ step_load.py                                                    │\n│   • documents Eintrag erstellen                                 │\n│   • document_pages speichern                                    │\n└─────────────────────────────┬───────────────────────────────────┘\n                              │\n                              ▼ (nur PDF)\n┌─────────────────────────────────────────────────────────────────┐\n│ Phase 3: VISION                                                  │\n│ step_transform.py → vision.py                                   │\n│   • Seiten als Bilder rendern                                   │\n│   • llama3.2-vision:11b Analyse                                 │\n│   • Überschriften, Bilder, Tabellen, Layout erkennen            │\n└─────────────────────────────┬───────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────────┐\n│ Phase 4: CHUNKING                                                │\n│ step_transform.py → chunk.py                                    │\n│   • Semantisches Chunking nach Struktur                         │\n│   • Überlappung: 10%                                            │\n│   • Min: 100, Max: 2000 Zeichen                                 │\n└─────────────────────────────┬───────────────────────────────────┘\n                              │\n                              ▼ (nur PDF)\n┌─────────────────────────────────────────────────────────────────┐\n│ Phase 5: ENRICHMENT                                              │\n│ step_transform.py → enrich.py                                   │\n│   • Vision-Kontext zu Chunks hinzufügen                         │\n└─────────────────────────────┬───────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────────┐\n│ Phase 6: EMBEDDING (Layer 3)                                     │\n│ step_embed.py → embed.py                                        │\n│   • mxbai-embed-large (1024 dim)                                │\n│   • Qdrant: Collection \"documents\"                              │\n│   • Status: \"embedded\" ✓ SUCHBAR                                │\n└─────────────────────────────┬───────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────────┐\n│ Phase 7: SEMANTIC (Layer 4) - Optional                           │\n│ step_semantic.py → analyzers\/*                                  │\n│   • Entity-Extraktion (Anthropic oder Ollama)                   │\n│   • Relationen                     ... [TRUNCATED-9c87166e34797471]"
    }
}

Response

{
    "tool_response": [
        {
            "type": "text",
            "text": "{\n  \"success\": true,\n  \"doc\": {\n    \"id\": 100,\n    \"parent_id\": 91,\n    \"slug\": \"rag-prozess\",\n    \"path\": \"\/prozesse\/rag-prozess\",\n    \"title\": \"RAG-Prozess\",\n    \"description\": \"Dokumentation des gesamten RAG-Prozesses (Retrieval Augmented Generation) für Chat und Content Studio\",\n    \"content\": \"<nav class=\\\"breadcrumb\\\">\\n    <a href=\\\"\/docs\\\">Dokumentation<\/a> &raquo;\\n    <a href=\\\"\/docs\/prozesse\\\">Prozesse<\/a> &raquo;\\n    RAG-Prozess\\n<\/nav>\\n\\n<h1>RAG-Prozess<\/h1>\\n\\n<p><strong>Status:<\/strong> Aktualisiert 2025-12-27<\/p>\\n\\n<h2>Übersicht<\/h2>\\n\\n<p>Der RAG-Prozess (Retrieval Augmented Generation) bildet das Herzstück der KI-gestützten Wissensgenerierung. Die Architektur trennt strikt zwischen <strong>Offline-Pipeline<\/strong> (Wissensaufbau) und <strong>Online-Pipeline<\/strong> (Wissenskonsum).<\/p>\\n\\n<h3>Grundprinzip<\/h3>\\n<ul>\\n    <li>Die <strong>Offline-Pipeline<\/strong> erzeugt und strukturiert Wissen (Python-Skripte)<\/li>\\n    <li>Die <strong>Online-Pipeline<\/strong> konsumiert Wissen, ohne es zu verändern (PHP-Services)<\/li>\\n    <li>Zwischen beiden Pipelines besteht <strong>keine Rückkopplung zur Laufzeit<\/strong><\/li>\\n<\/ul>\\n\\n<hr>\\n\\n<h2>Offline-Pipeline: Tatsächlicher Ablauf (IST)<\/h2>\\n\\n<p><strong>Pfad:<\/strong> <code>\/var\/www\/scripts\/pipeline\/<\/code><br>\\n<strong>Orchestrator:<\/strong> <code>pipeline.py<\/code><br>\\n<strong>Step-Module:<\/strong> <code>step_extract.py<\/code>, <code>step_load.py<\/code>, <code>step_transform.py<\/code>, <code>step_embed.py<\/code>, <code>step_semantic.py<\/code><\/p>\\n\\n<h3>Phase 0: Detection<\/h3>\\n\\n<table>\\n    <thead>\\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\\n    <\/thead>\\n    <tbody>\\n        <tr><td>detect<\/td><td><code>detect.py<\/code><\/td><td>Dateien scannen, Hash-Vergleich<\/td><\/tr>\\n        <tr><td>queue<\/td><td><code>detect.py<\/code><\/td><td>Neue\/geänderte Dateien in Queue<\/td><\/tr>\\n    <\/tbody>\\n<\/table>\\n\\n<h3>Phase 1: Extraction (pro Dokument)<\/h3>\\n\\n<table>\\n    <thead>\\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\\n    <\/thead>\\n    <tbody>\\n        <tr><td>extract<\/td><td><code>step_extract.py<\/code> → <code>extract.py<\/code><\/td><td>Text aus PDF\/DOCX\/PPTX\/MD\/TXT<\/td><\/tr>\\n        <tr><td>hash<\/td><td><code>step_extract.py<\/code><\/td><td>SHA256 Hash berechnen<\/td><\/tr>\\n        <tr><td>rotation<\/td><td><code>orientation.py<\/code><\/td><td>Seitenrotation erkennen (PDF)<\/td><\/tr>\\n    <\/tbody>\\n<\/table>\\n\\n<h3>Phase 2: Load<\/h3>\\n\\n<table>\\n    <thead>\\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\\n    <\/thead>\\n    <tbody>\\n        <tr><td>doc_create<\/td><td><code>step_load.py<\/code><\/td><td>Dokument in <code>documents<\/code> anlegen<\/td><\/tr>\\n        <tr><td>page_store<\/td><td><code>step_load.py<\/code><\/td><td>Seiten in <code>document_pages<\/code> speichern<\/td><\/tr>\\n    <\/tbody>\\n<\/table>\\n\\n<h3>Phase 3: Vision (nur PDF)<\/h3>\\n\\n<table>\\n    <thead>\\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\\n    <\/thead>\\n    <tbody>\\n        <tr><td>vision<\/td><td><code>step_transform.py<\/code> → <code>vision.py<\/code><\/td><td>Seiten mit llama3.2-vision:11b analysieren<\/td><\/tr>\\n        <tr><td>vision_store<\/td><td><code>vision.py<\/code><\/td><td>Ergebnisse in <code>document_pages.vision_analysis<\/code><\/td><\/tr>\\n    <\/tbody>\\n<\/table>\\n\\n<h3>Phase 4: Chunking<\/h3>\\n\\n<table>\\n    <thead>\\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\\n    <\/thead>\\n    <tbody>\\n        <tr><td>chunk<\/td><td><code>step_transform.py<\/code> → <code>chunk.py<\/code><\/td><td>Text in semantische Chunks zerlegen<\/td><\/tr>\\n        <tr><td>chunk_store<\/td><td><code>step_load.py<\/code><\/td><td>Chunks in <code>chunks<\/code> speichern<\/td><\/tr>\\n    <\/tbody>\\n<\/table>\\n\\n<h3>Phase 5: Enrichment (nur PDF)<\/h3>\\n\\n<table>\\n    <thead>\\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\\n    <\/thead>\\n    <tbody>\\n        <tr><td>enrich<\/td><td><code>step_transform.py<\/code> → <code>enrich.py<\/code><\/td><td>Vision-Kontext zu Chunks hinzufügen<\/td><\/tr>\\n    <\/tbody>\\n<\/table>\\n\\n<h3>Phase 6: Embedding (Layer 3 - Dokument wird suchbar)<\/h3>\\n\\n<table>\\n    <thead>\\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\\n    <\/thead>\\n    <tbody>\\n        <tr><td>embed<\/td><td><code>step_embed.py<\/code> → <code>embed.py<\/code><\/td><td>Embeddings mit mxbai-embed-large<\/td><\/tr>\\n        <tr><td>qdrant_store<\/td><td><code>embed.py<\/code><\/td><td>Vektoren in Qdrant speichern<\/td><\/tr>\\n        <tr><td>status_embedded<\/td><td><code>step_load.py<\/code><\/td><td>Status = \\\"embedded\\\"<\/td><\/tr>\\n    <\/tbody>\\n<\/table>\\n\\n<p><strong>Nach Phase 6 ist das Dokument im Chat suchbar!<\/strong><\/p>\\n\\n<h3>Phase 7: Semantic Analysis (Layer 4 - optional\/async)<\/h3>\\n\\n<table>\\n    <thead>\\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\\n    <\/thead>\\n    <tbody>\\n        <tr><td>entity_extract<\/td><td><code>analyzers\/entity_extractor.py<\/code><\/td><td>Entitäten extrahieren (Anthropic\/Ollama)<\/td><\/tr>\\n        <tr><td>entity_store<\/td><td><code>analyzers\/entity_extractor.py<\/code><\/td><td>Entitäten in <code>entities<\/code> speichern<\/td><\/tr>\\n        <tr><td>entity_normalize<\/td><td><code>analyzers\/entity_normalizer.py<\/code><\/td><td>canonical_name setzen<\/td><\/tr>\\n        <tr><td>relation_extract<\/td><td><code>analyzers\/relation_extractor.py<\/code><\/td><td>Relationen extrahieren<\/td><\/tr>\\n        <tr><td>relation_store<\/td><td><code>analyzers\/document_analyzer.py<\/code><\/td><td>In <code>entity_relations<\/code> speichern<\/td><\/tr>\\n        <tr><td>taxonomy_classify<\/td><td><code>analyzers\/taxonomy_classifier.py<\/code><\/td><td>Taxonomie-Kategorien zuweisen<\/td><\/tr>\\n        <tr><td>ontology_classify<\/td><td><code>analyzers\/ontology_classifier.py<\/code><\/td><td>Ontologie-Klassen zuweisen<\/td><\/tr>\\n        <tr><td>chunk_entity_link<\/td><td><code>analyzers\/document_analyzer.py<\/code><\/td><td>Chunks mit Entitäten verknüpfen<\/td><\/tr>\\n        <tr><td>chunk_taxonomy<\/td><td><code>analyzers\/document_analyzer.py<\/code><\/td><td>Taxonomie auf Chunks propagieren<\/td><\/tr>\\n        <tr><td>entity_taxonomy<\/td><td><code>analyzers\/document_analyzer.py<\/code><\/td><td>Taxonomie auf Entitäten<\/td><\/tr>\\n        <tr><td>chunk_semantics<\/td><td><code>analyzers\/semantic_analyzer.py<\/code><\/td><td>Chunk-Semantik analysieren<\/td><\/tr>\\n    <\/tbody>\\n<\/table>\\n\\n<h3>Phase 8: Finalization<\/h3>\\n\\n<table>\\n    <thead>\\n        <tr><th>Step<\/th><th>Modul<\/th><th>Beschreibung<\/th><\/tr>\\n    <\/thead>\\n    <tbody>\\n        <tr><td>status_done<\/td><td><code>step_load.py<\/code><\/td><td>Status = \\\"done\\\"<\/td><\/tr>\\n    <\/tbody>\\n<\/table>\\n\\n<hr>\\n\\n<h2>Datenfluss-Diagramm<\/h2>\\n\\n<pre><code>┌─────────────────────────────────────────────────────────────────┐\\n│ Phase 0: DETECTION                                               │\\n│ detect.py: scan_directory() → queue_files()                     │\\n└─────────────────────────────┬───────────────────────────────────┘\\n                              │\\n                              ▼\\n┌─────────────────────────────────────────────────────────────────┐\\n│ Phase 1: EXTRACTION                                              │\\n│ step_extract.py → extract.py                                    │\\n│   • Text aus PDF\/DOCX\/PPTX\/MD\/TXT                               │\\n│   • SHA256 Hash                                                 │\\n│   • Rotationserkennung (orientation.py)                         │\\n└─────────────────────────────┬───────────────────────────────────┘\\n                              │\\n                              ▼\\n┌─────────────────────────────────────────────────────────────────┐\\n│ Phase 2: LOAD                                                    │\\n│ step_load.py                                                    │\\n│   • documents Eintrag erstellen                                 │\\n│   • document_pages speichern                                    │\\n└─────────────────────────────┬───────────────────────────────────┘\\n                              │\\n                              ▼ (nur PDF)\\n┌─────────────────────────────────────────────────────────────────┐\\n│ Phase 3: VISION                                                  │\\n│ step_transform.py → vision.py                                   │\\n│   • Seiten als Bilder rendern                                   │\\n│   • llama3.2-vision:11b Analyse                                 │\\n│   • Überschriften, Bilder, Tabellen, Layout erkennen            │\\n└─────────────────────────────┬───────────────────────────────────┘\\n                              │\\n                              ▼\\n┌─────────────────────────────────────────────────────────────────┐\\n│ Phase 4: CHUNKING                                                │\\n│ step_transform.py → chunk.py                                    │\\n│   • Semantisches Chunking nach Struktur                         │\\n│   • Überlappung: 10%                                            │\\n│   • Min: 100, Max: 2000 Zeichen                                 │\\n└─────────────────────────────┬───────────────────────────────────┘\\n                              │\\n                              ▼ (nur PDF)\\n┌─────────────────────────────────────────────────────────────────┐\\n│ Phase 5: ENRICHMENT                                              │\\n│ step_transform.py → enrich.py                                   │\\n│   • Vision-Kontext zu Chunks hinzufügen                         │\\n└─────────────────────────────┬───────────────────────────────────┘\\n                              │\\n                              ▼\\n┌─────────────────────────────────────────────────────────────────┐\\n│ Phase 6: EMBEDDING (Layer 3)                                     │\\n│ step_embed.py → embed.py                                        │\\n│   • mxbai-embed-large (1024 dim)                                │\\n│   • Qdrant: Collection \\\"documents\\\"                          ... [TRUNCATED-fc6505f21c90e4b7]"
        }
    ]
}
← Vorheriger Zur Liste Nächster →