Backup #915

ID915
Dateipfad/var/www/dev.campus.systemische-tools.de/src/View/semantic-explorer/index.php
Version2
Typ modified
Größe5.3 KB
Hashc47409fce02f0e9784ea54c9c4ce76d1a20dd9243bda1cf40e965f3b956e3c34
Datum2025-12-23 17:00:24
Geändert vonclaude-code-hook
GrundClaude Code Pre-Hook Backup vor Edit-Operation
Datei existiert Ja

Dateiinhalt

<?php ob_start(); ?>

<nav class="breadcrumb">
    <a href="/">Home</a> &raquo; <a href="/explorer">Explorer</a> &raquo; Semantic Explorer
</nav>

<h1>Semantic Explorer</h1>
<p>Nutzdaten aus Nextcloud mit Chunking und Vektor-Embeddings.</p>

<div class="stats-grid">
    <div class="stat-card stat-card--primary">
        <span class="stat-card__value"><?= number_format($docStats['total'] ?? 0) ?></span>
        <span class="stat-card__label">Dokumente</span>
    </div>
    <div class="stat-card stat-card--success">
        <span class="stat-card__value"><?= number_format($docStats['processed'] ?? 0) ?></span>
        <span class="stat-card__label">Verarbeitet</span>
    </div>
    <div class="stat-card stat-card--warning">
        <span class="stat-card__value"><?= number_format($docStats['errors'] ?? 0) ?></span>
        <span class="stat-card__label">Fehler</span>
    </div>
    <div class="stat-card stat-card--info">
        <span class="stat-card__value"><?= number_format($chunkStats['total'] ?? 0) ?></span>
        <span class="stat-card__label">Chunks</span>
    </div>
    <div class="stat-card">
        <span class="stat-card__value"><?= number_format($chunkStats['tokens'] ?? 0) ?></span>
        <span class="stat-card__label">Tokens</span>
    </div>
    <div class="stat-card stat-card--success">
        <span class="stat-card__value"><?= number_format($chunkStats['embedded'] ?? 0) ?></span>
        <span class="stat-card__label">In Qdrant</span>
    </div>
</div>

<h2>Bereiche</h2>
<table data-sortable>
    <thead>
        <tr>
            <th data-sort="bereich">Bereich</th>
            <th data-sort="beschreibung">Beschreibung</th>
            <th data-sort="anzahl">Anzahl</th>
        </tr>
    </thead>
    <tbody>
    <tr>
        <td><a href="/semantic-explorer/dokumente">Dokumente</a></td>
        <td>PDFs, DOCX, PPTX aus Nextcloud</td>
        <td><?= $docStats['total'] ?? 0 ?></td>
    </tr>
    <tr>
        <td><a href="/semantic-explorer/chunks">Chunks</a></td>
        <td>Semantische Textabschnitte mit Embeddings</td>
        <td><?= number_format($chunkStats['total'] ?? 0) ?></td>
    </tr>
    <tr>
        <td><a href="/semantic-explorer/entitaeten">Entitaeten</a></td>
        <td>Personen, Organisationen, Konzepte</td>
        <td><?= number_format($semanticStats['entities'] ?? 0) ?></td>
    </tr>
    <tr>
        <td><a href="/semantic-explorer/relationen">Relationen</a></td>
        <td>Beziehungen zwischen Entitaeten</td>
        <td><?= number_format($semanticStats['relations'] ?? 0) ?></td>
    </tr>
    <tr>
        <td><a href="/semantic-explorer/taxonomie">Taxonomie</a></td>
        <td>Hierarchische Kategorisierung</td>
        <td><?= number_format($semanticStats['taxonomy'] ?? 0) ?></td>
    </tr>
    <tr>
        <td><a href="/semantic-explorer/ontologie">Ontologie</a></td>
        <td>Konzept-Klassen und Eigenschaften</td>
        <td><?= number_format($semanticStats['ontology'] ?? 0) ?></td>
    </tr>
    <tr>
        <td><a href="/semantic-explorer/semantik">Semantik</a></td>
        <td>Sentiment, Keywords, Zusammenfassungen</td>
        <td><?= number_format($semanticStats['semantics'] ?? 0) ?></td>
    </tr>
    <tr>
        <td><a href="/semantic-explorer/suche">Suche</a></td>
        <td>Semantische Vektor-Suche</td>
        <td>-</td>
    </tr>
    </tbody>
</table>

<?php if (!empty($documents)): ?>
<h2>Dokumente</h2>
<table data-sortable>
    <thead>
        <tr>
            <th data-sort="filename">Datei</th>
            <th data-sort="mime_type">Typ</th>
            <th data-sort="status">Status</th>
            <th data-sort="chunk_count">Chunks</th>
            <th data-sort="imported_at">Importiert</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach ($documents as $doc): ?>
        <tr>
            <td><a href="/semantic-explorer/dokumente/<?= $doc['id'] ?>"><?= htmlspecialchars($doc['filename']) ?></a></td>
            <td><code><?= htmlspecialchars($doc['mime_type'] ?? '-') ?></code></td>
            <td><span class="badge badge--<?= $doc['status'] ?>"><?= $doc['status'] ?></span></td>
            <td><?= $doc['chunk_count'] ?></td>
            <td><?= date('d.m.Y H:i', strtotime($doc['imported_at'])) ?></td>
        </tr>
        <?php endforeach; ?>
    </tbody>
</table>
<?php endif; ?>

<?php if (!empty($recentChunks)): ?>
<h2>Neueste Chunks</h2>
<table>
    <thead>
        <tr>
            <th>ID</th>
            <th>Dokument</th>
            <th>Tokens</th>
            <th>Status</th>
            <th>Inhalt</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach ($recentChunks as $c): ?>
        <tr>
            <td><a href="/semantic-explorer/chunks/<?= $c['id'] ?>">#<?= $c['id'] ?></a></td>
            <td><?= htmlspecialchars($c['filename']) ?></td>
            <td><?= $c['token_count'] ?></td>
            <td><?php if ($c['qdrant_id']): ?><span class="badge badge--success">synced</span><?php else: ?><span class="badge">pending</span><?php endif; ?></td>
            <td><?= htmlspecialchars(substr($c['content'], 0, 80)) ?>...</td>
        </tr>
        <?php endforeach; ?>
    </tbody>
</table>
<?php endif; ?>

<p class="links-bar">
    <a href="/explorer">Zurueck zum Explorer</a> |
    <a href="/semantic-explorer/suche">Semantische Suche</a>
</p>

<?php $content = ob_get_clean(); ?>
<?php require VIEW_PATH . '/layout.php'; ?>

Vollständig herunterladen

Aktionen

Herunterladen

Andere Versionen dieser Datei

ID Version Typ Größe Datum
1992 7 modified 5.7 KB 2025-12-28 03:05
1619 6 modified 5.7 KB 2025-12-27 09:43
1618 5 modified 5.7 KB 2025-12-27 09:43
1617 4 modified 5.8 KB 2025-12-27 09:43
1604 3 modified 5.6 KB 2025-12-27 00:27
915 2 modified 5.3 KB 2025-12-23 17:00
913 1 modified 5.0 KB 2025-12-23 16:42

← Zurück zur Übersicht