Protokoll #12704

ID12704
Zeitstempel2025-12-24 10:17:29.772727
Clientroot
IP
Warning: Undefined array key "request_ip" in /var/www/dev.campus.systemische-tools.de/src/View/protokoll/show.php on line 13

Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /var/www/dev.campus.systemische-tools.de/src/View/protokoll/show.php on line 13
Modellclaude-sonnet-4-20250514
Statuscompleted
Tokens2,252 (Input: 0, Output: 0)
Dauer154 ms
Request-Zeit
Warning: Undefined array key "request_timestamp" in /var/www/dev.campus.systemische-tools.de/src/View/protokoll/show.php on line 18
Response-Zeit-

Warning: Undefined array key "error_message" in /var/www/dev.campus.systemische-tools.de/src/View/protokoll/show.php on line 22

Request

{
    "event": "PreToolUse",
    "tool_name": "Bash",
    "tool_input": {
        "command": "REQUEST_URI=\"\/docs\/prozesse\/rag-prozess\" REQUEST_METHOD=\"GET\" php \/var\/www\/dev.campus.systemische-tools.de\/public\/index.php 2>\/dev\/null | head -200",
        "description": "Test RAG-Prozess Dokumentation"
    }
}

Response

{
    "tool_response": {
        "stdout": "<!DOCTYPE html>\n<html lang=\"de\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>RAG-Prozess<\/title>\n    <link rel=\"icon\" type=\"image\/png\" href=\"https:\/\/campus-am-see.de\/wp-content\/uploads\/menu-logo.png\">\n    <link rel=\"apple-touch-icon\" href=\"https:\/\/campus-am-see.de\/wp-content\/uploads\/menu-logo.png\">\n    <link rel=\"stylesheet\" href=\"\/css\/designtokens.css\">\n    <link rel=\"stylesheet\" href=\"\/css\/nav.css\">\n    <link rel=\"stylesheet\" href=\"\/css\/style.css\">\n    <link rel=\"stylesheet\" href=\"\/css\/admin.css\">\n    <link rel=\"stylesheet\" href=\"\/css\/home.css\">\n    <script src=\"\/js\/htmx.min.js\"><\/script>\n<\/head>\n<body>\n    <header>\n        <nav class=\"main-nav\">\n            <a href=\"\/\" class=\"nav-brand\">\n                <img src=\"https:\/\/campus-am-see.de\/wp-content\/uploads\/menu-logo.png\" alt=\"Campus am See\" class=\"nav-logo\">\n            <\/a>\n\n            <button class=\"nav-toggle\" aria-label=\"Navigation\" aria-expanded=\"false\">\n                <span class=\"nav-toggle-icon\"><\/span>\n            <\/button>\n\n            <div class=\"nav-items\">\n                <div class=\"nav-dropdown\">\n                    <button class=\"nav-dropdown-btn\">Anwendungen<\/button>\n                    <div class=\"nav-dropdown-content\">\n                        <a href=\"\/chat\">KI-Chat<\/a>\n                        <a href=\"\/content\">Content Studio<\/a>\n                        <a href=\"\/content-pipeline\">Content Pipeline<\/a>\n                        <a href=\"\/semantic-explorer\">Semantic Explorer<\/a>\n                        <a href=\"https:\/\/files.campus.systemische-tools.de\/index.php\/apps\/files\/files\/3?dir=\/Documents\" target=\"_blank\">Nextcloud<\/a>\n                    <\/div>\n                <\/div>\n\n                <div class=\"nav-dropdown\">\n                    <button class=\"nav-dropdown-btn\">Entwicklung<\/button>\n                    <div class=\"nav-dropdown-content\">\n                        <a href=\"\/tasks\">Tasks<\/a>\n                        <a href=\"\/protokoll\">Protokoll<\/a>\n                        <a href=\"\/contracts\">Contracts<\/a>\n                        <a href=\"\/config\">Content-Config<\/a>\n                        <a href=\"\/critics\">Critics<\/a>\n                        <a href=\"\/prompts\">Prompts<\/a>\n                        <a href=\"\/system-explorer\">System Explorer<\/a>\n                    <\/div>\n                <\/div>\n\n                <div class=\"nav-dropdown\">\n                    <button class=\"nav-dropdown-btn\">Ressourcen<\/button>\n                    <div class=\"nav-dropdown-content\">\n                        <a href=\"\/docs\">Dokumentation<\/a>\n                        <a href=\"\/docs\/code\">Code-Analyse<\/a>\n                        <a href=\"\/backup-restore\">File Backup<\/a>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/nav>\n    <\/header>\n\n    <main>\n        \n<nav class=\"breadcrumb\">\n    <a href=\"\/docs\">Dokumentation<\/a> &raquo; <a href=\"\/docs\/prozesse\">Prozesse<\/a> &raquo; RAG-Prozess\n<\/nav>\n\n<h1>RAG-Prozess<\/h1>\n\n<section>\n    <h2>Übersicht<\/h2>\n    <p>Der RAG-Prozess (Retrieval Augmented Generation) bildet das Herzstück der KI-gestützten Wissensgenerierung. Die Architektur basiert auf einer 13-Phasen-Pipeline mit drei Systemklassen.<\/p>\n    \n    <h3>Drei-Säulen-Architektur<\/h3>\n    <table>\n        <thead><tr><th>System<\/th><th>Rolle<\/th><th>Inhalt<\/th><\/tr><\/thead>\n        <tbody>\n            <tr><td><strong>SQL-Datenbank<\/strong><\/td><td>Single Source of Truth<\/td><td>Text, Struktur, Entitäten, Aussagen, Provenienz<\/td><\/tr>\n            <tr><td><strong>Vektordatenbank<\/strong><\/td><td>Ähnlichkeitsindex<\/td><td>Embeddings für Chunk-Retrieval (keine Semantik!)<\/td><\/tr>\n            <tr><td><strong>Graphspeicher<\/strong><\/td><td>Wissensmodell<\/td><td>Entitäten, Relationen, Ontologie, Taxonomie<\/td><\/tr>\n        <\/tbody>\n    <\/table>\n<\/section>\n\n<section>\n    <h2>Technische Konfiguration<\/h2>\n    <table>\n        <tr><th>Embedding-Modell<\/th><td>mxbai-embed-large (Ollama)<\/td><\/tr>\n        <tr><th>Vektordatenbank<\/th><td>Qdrant (1536 Dimensionen, Cosine)<\/td><\/tr>\n        <tr><th>LLM<\/th><td>Claude API \/ Ollama<\/td><\/tr>\n        <tr><th>SQL-Datenbank<\/th><td>MariaDB (ki_content, ki_dev)<\/td><\/tr>\n        <tr><th>Pipeline<\/th><td>\/var\/www\/scripts\/pipeline\/<\/td><\/tr>\n    <\/table>\n<\/section>\n\n<section>\n    <h2>Phasenübersicht<\/h2>\n    <h3>Indexierungsphase (Phase 0-4)<\/h3>\n    <p>Dokumente werden importiert, strukturiert, in Chunks zerlegt und vektorisiert.<\/p>\n    \n    <h3>Semantische Phase (Phase 5-10)<\/h3>\n    <p>Entitäten werden extrahiert, normalisiert und zu einem Wissensgraphen mit Ontologie und Taxonomie aufgebaut.<\/p>\n    \n    <h3>Persistenzphase (Phase 11-12)<\/h3>\n    <p>Der Graph wird als versionierter Wissenszustand persistiert. Das System erreicht einen stabilen, supervisionstauglichen Zustand.<\/p>\n<\/section>\n\n<section>\n    <h2>Datenfluss<\/h2>\n    <pre>\nDokument → Identität → SQL-Speicherung → Strukturzerlegung → Chunking → Embedding → Qdrant\n                                                                              ↓\nAnfrage → Query-Embedding → Ähnlichkeitssuche → Kontext → LLM → Antwort\n                                                              ↓\n                                              Semantik-Extraktion → Normalisierung → Graph\n    <\/pre>\n<\/section>\n\n<section>\n    <h2>Autoritätsregel<\/h2>\n    <ol>\n        <li>Die <strong>SQL-Datenbank<\/strong> ist die kanonische Quelle der Wahrheit für alle bedeutungstragenden Daten.<\/li>\n        <li>Der <strong>Graph<\/strong> ist konstitutiver Bestandteil des Systems, wird aber als veröffentlichter Wissenszustand aus der SQL-Quelle aufgebaut.<\/li>\n        <li>Die <strong>Vektordatenbank<\/strong> ist ausschließlich ein technischer Ähnlichkeitsindex und trägt keine semantische Wahrheit.<\/li>\n    <\/ol>\n<\/section>\n<section class=\"doc-child-section\">\n    <h2>Dokument-Import (Phase 0-1)<\/h2>\n\n<h3>Ziel<\/h3>\n<p>Ein Dokument wird kontrolliert übernommen, eindeutig identifiziert und unverändert archiviert. Der extrahierte Inhalt wird vollständig und reproduzierbar in der SQL-Datenbank als <strong>Single Source of Truth<\/strong> gespeichert.<\/p>\n\n<h3>Eingangskanäle<\/h3>\n<ul>\n    <li>Dateiupload über Content Pipeline UI<\/li>\n    <li>Ablage in beobachtetem Import-Verzeichnis<\/li>\n    <li>Übergabe über interne Schnittstelle<\/li>\n<\/ul>\n\n<h3>Akzeptierte Formate<\/h3>\n<ul>\n    <li>PDF (via pdfplumber)<\/li>\n    <li>Markdown<\/li>\n    <li>Plain Text<\/li>\n<\/ul>\n\n<h3>Identität und Versionierung<\/h3>\n<table>\n    <tr><th>Konzept<\/th><th>Beschreibung<\/th><\/tr>\n    <tr><td>Content Hash<\/td><td>Primäre Dublettenerkennung über SHA256 der Originaldatei<\/td><\/tr>\n    <tr><td>Dokumenten-ID<\/td><td>Stabile, systemgenerierte ID über gesamten Lebenszyklus<\/td><\/tr>\n    <tr><td>Versionierung<\/td><td>Neue Version bei geändertem Inhalt, referenziert Original-ID<\/td><\/tr>\n<\/table>\n\n<h3>Archivierung<\/h3>\n<p>Die Originaldatei wird unverändert archiviert und dient als Quelle für Reprocessing:<\/p>\n<ul>\n    <li>Binärartefakt<\/li>\n    <li>Content Hash<\/li>\n    <li>Dateigröße<\/li>\n    <li>Erfassungszeit<\/li>\n<\/ul>\n\n<h3>Textgewinnung<\/h3>\n<ul>\n    <li>Formatabhängige, deterministische Extraktion<\/li>\n    <li>Linearer Textstrom ohne Layoutlogik<\/li>\n    <li>Keine Inhalte entfernt, zusammengefasst oder interpretiert<\/li>\n<\/ul>\n\n<h3>Normalisierung<\/h3>\n<ul>\n    <li>Vereinheitlichung von Zeilenumbrüchen<\/li>\n    <li>Unicode-Normalisierung<\/li>\n    <li>Entfernung technischer Steuerzeichen<\/li>\n<\/ul>\n\n<h3>Beteiligte Komponenten<\/h3>\n<table>\n    <thead><tr><th>Komponente<\/th><th>Pfad<\/th><th>Funktion<\/th><\/tr><\/thead>\n    <tbody>\n        <tr><td>Content Pipeline<\/td><td><code>\/content-pipeline<\/code><\/td><td>Web-UI für Imports<\/td><\/tr>\n        <tr><td>import_pdf()<\/td><td><code>pipeline\/import_pipeline.py<\/code><\/td><td>PDF-Extraktion<\/td><\/tr>\n        <tr><td>documents-Tabelle<\/td><td><code>ki_content.documents<\/code><\/td><td>Dokument-Metadaten<\/td><\/tr>\n        <tr><td>document_pages<\/td><td><code>ki_content.document_pages<\/code><\/td><td>Seitenweise Extraktion<\/td><\/tr>\n    <\/tbody>\n<\/table>\n\n<h3>Datenbank-Schema<\/h3>\n<pre>\ndocuments:\n  id, filename, source_path, file_size, content_hash,\n  page_count, status, version, created_at\n\ndocument_pages:\n  id, document_id, page_number, content, \n  metadata, created_at\n<\/pre>",
        "stderr": "",
        "interrupted": false,
        "isImage": false
    }
}
← Vorheriger Zur Liste Nächster →