Protokoll #12670

ID12670
Zeitstempel2025-12-24 10:08:13.053884
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
Tokens1,966 (Input: 0, Output: 0)
Dauer7528 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>&1 | head -200",
        "description": "Test docs page rendering"
    }
}

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.<\/p>\n    <table>\n        <tr><th>Embedding-Modell<\/th><td>mxbai-embed-large (Ollama)<\/td><\/tr>\n        <tr><th>Vektordatenbank<\/th><td>Qdrant (1536 Dimensionen)<\/td><\/tr>\n        <tr><th>LLM<\/th><td>Claude API \/ Ollama<\/td><\/tr>\n        <tr><th>Pipeline<\/th><td>\/var\/www\/scripts\/pipeline\/<\/td><\/tr>\n    <\/table>\n<\/section>\n\n<section>\n    <h2>Phasen<\/h2>\n    <h3>1. Indexierungsphase (Offline)<\/h3>\n    <p>Dokumente werden importiert, in Chunks zerlegt, vektorisiert und in Qdrant gespeichert.<\/p>\n    \n    <h3>2. Abfragephase (Online)<\/h3>\n    <p>Nutzeranfragen werden eingebettet, ähnliche Chunks gesucht, Kontext aufgebaut und an LLM übergeben.<\/p>\n<\/section>\n\n<section>\n    <h2>Datenfluss<\/h2>\n    <pre>\nDokument → Chunking → Embedding → Qdrant\n                                    ↓\nAnfrage → Query-Embedding → Suche → Kontext → LLM → Antwort\n    <\/pre>\n<\/section>\n<section class=\"doc-child-section\">\n    <h2>Dokument-Import<\/h2>\n\n<h3>Funktion<\/h3>\n<ul>\n<li>PDF- und Text-Dokumente in das System einlesen<\/li>\n<li>Metadaten extrahieren (Titel, Autor, Erstellungsdatum)<\/li>\n<li>Dokumentstruktur erkennen (Überschriften, Absätze)<\/li>\n<li>Speicherung in MariaDB für Verwaltung und Tracking<\/li>\n<\/ul>\n\n<h3>Eingabe<\/h3>\n<ul>\n<li>PDF-Dateien (via Content Pipeline Import)<\/li>\n<li>Text-Dateien<\/li>\n<li>Manuelle Eingabe über Web-UI<\/li>\n<\/ul>\n\n<h3>Ausgabe<\/h3>\n<ul>\n<li>Datensatz in <code>ki_content.documents<\/code><\/li>\n<li>Seitenweise Extraktion in <code>ki_content.document_pages<\/code><\/li>\n<li>Status: <code>pending<\/code> (bereit für Chunking)<\/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 mit pdfplumber<\/td><\/tr>\n<tr><td>documents-Tabelle<\/td><td><code>ki_content.documents<\/code><\/td><td>Dokument-Metadaten<\/td><\/tr>\n<\/tbody>\n<\/table>\n\n<h3>Ablauf<\/h3>\n<ol>\n<li>Datei hochladen oder Pfad angeben<\/li>\n<li>PDF-Text extrahieren (pdfplumber)<\/li>\n<li>Metadaten erfassen (filename, source_path, file_size)<\/li>\n<li>Dokument in DB speichern mit Status <code>pending<\/code><\/li>\n<li>Seiten einzeln in <code>document_pages<\/code> speichern<\/li>\n<\/ol>\n\n<h3>Datenbank-Schema<\/h3>\n<pre>\ndocuments:\n  id, filename, source_path, file_size, \n  page_count, status, created_at\n  \ndocument_pages:\n  id, document_id, page_number, content, \n  metadata, created_at\n<\/pre><\/section>\n<section class=\"doc-child-section\">\n    <h2>Chunking<\/h2>\n\n<h3>Funktion<\/h3>\n<ul>\n<li>Lange Texte in kleinere, semantisch sinnvolle Einheiten zerlegen<\/li>\n<li>Überlappung (Overlap) für Kontexterhalt<\/li>\n<li>Heading-Path für Hierarchie-Kontext<\/li>\n<li>Token-Count für Embedding-Limit-Prüfung<\/li>\n<\/ul>\n\n<h3>Eingabe<\/h3>\n<ul>\n<li>Dokument aus <code>documents<\/code>-Tabelle<\/li>\n<li>Extrahierter Text aus <code>document_pages<\/code><\/li>\n<\/ul>\n\n<h3>Ausgabe<\/h3>\n<ul>\n<li>Chunks in <code>ki_content.chunks<\/code><\/li>\n<li>Jeder Chunk: content, chunk_index, token_count, heading_path<\/li>\n<\/ul>\n\n<h3>Parameter<\/h3>\n<table>\n<thead><tr><th>Parameter<\/th><th>Wert<\/th><th>Beschreibung<\/th><\/tr><\/thead>\n<tbody>\n<tr><td>chunk_size<\/td><td>500-800 Token<\/td><td>Zielgröße pro Chunk<\/td><\/tr>\n<tr><td>overlap<\/td><td>50-100 Token<\/td><td>Überlappung zwischen Chunks<\/td><\/tr>\n<tr><td>max_embed_chars<\/td><td>800 Zeichen<\/td><td>Limit für mxbai-embed-large<\/td><\/tr>\n<\/tbody>\n<\/table>\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>chunk_document()<\/td><td><code>pipeline\/chunk.py<\/code><\/td><td>Chunking-Logik<\/td><\/tr>\n<tr><td>chunks-Tabelle<\/td><td><code>ki_content.chunks<\/code><\/td><td>Chunk-Speicherung<\/td><\/tr>\n<\/tbody>\n<\/table>\n\n<h3>Ablauf<\/h3>\n<ol>\n<li>Text aus Dokument laden<\/li>\n<li>Überschriften-Hierarchie erkennen<\/li>\n<li>Text an semantischen Grenzen splitten (Absätze, Sätze)<\/li>",
        "stderr": "",
        "interrupted": false,
        "isImage": false
    }
}
← Vorheriger Zur Liste Nächster →