index.php

Code Hygiene Score: 100

Keine Issues gefunden.

Code

<?php ob_start(); ?>

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

<h1>System Explorer</h1>
<p>Interne Dokumentation mit Chunking, LLM-Analyse und Vektor-Embeddings.</p>

<div class="stats-grid">
    <div class="stat-card stat-card--primary">
        <span class="stat-card__value"><?= number_format($dokumenteCount) ?></span>
        <span class="stat-card__label">Dokumente</span>
    </div>
    <div class="stat-card stat-card--info">
        <span class="stat-card__value"><?= number_format($seitenCount) ?></span>
        <span class="stat-card__label">Seiten</span>
    </div>
    <div class="stat-card stat-card--success">
        <span class="stat-card__value"><?= number_format($chunkStats['total']) ?></span>
        <span class="stat-card__label">Chunks</span>
    </div>
    <div class="stat-card">
        <span class="stat-card__value"><?= number_format($chunkStats['tokens']) ?></span>
        <span class="stat-card__label">Tokens</span>
    </div>
    <div class="stat-card stat-card--success">
        <span class="stat-card__value"><?= number_format($chunkStats['analyzed']) ?></span>
        <span class="stat-card__label">Analysiert</span>
    </div>
    <div class="stat-card stat-card--warning">
        <span class="stat-card__value"><?= number_format($chunkStats['synced']) ?></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="/system-explorer/dokumente">Dokumente</a></td>
        <td>Hauptbereiche der Dokumentation (depth=0)</td>
        <td><?= $dokumenteCount ?></td>
    </tr>
    <tr>
        <td><a href="/system-explorer/seiten">Seiten</a></td>
        <td>Unterseiten der Dokumentation (depth>0)</td>
        <td><?= $seitenCount ?></td>
    </tr>
    <tr>
        <td><a href="/system-explorer/chunks">Chunks</a></td>
        <td>Textabschnitte mit Embeddings</td>
        <td><?= number_format($chunkStats['total']) ?></td>
    </tr>
    <tr>
        <td><a href="/system-explorer/taxonomie">Taxonomie</a></td>
        <td>Kategorien, Keywords, Entities</td>
        <td><?= count($taxonomyCategories) ?> Kategorien</td>
    </tr>
    <tr>
        <td><a href="/system-explorer/suche">Suche</a></td>
        <td>Hybride Vektor- und SQL-Suche</td>
        <td>-</td>
    </tr>
    </tbody>
</table>

<h2>Dokumente (Hauptbereiche)</h2>
<table data-sortable>
    <thead>
        <tr>
            <th data-sort="name">Dokument</th>
            <th data-sort="seiten">Seiten</th>
            <th data-sort="chunks">Chunks</th>
            <th>Aktionen</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach ($dokumente as $d): ?>
        <tr>
            <td><a href="/system-explorer/dokumente/<?= $d['id'] ?>"><?= htmlspecialchars($d['title']) ?></a></td>
            <td><?= $d['seiten_count'] ?></td>
            <td><?= $d['chunks_count'] ?></td>
            <td>
                <a href="/docs/<?= htmlspecialchars($d['path']) ?>" class="btn btn--small">Docs</a>
            </td>
        </tr>
        <?php endforeach; ?>
    </tbody>
</table>

<?php if (!empty($taxonomyCategories)): ?>
<h2>Top Taxonomie-Kategorien</h2>
<table>
    <tr><th>Kategorie</th><th>Chunks</th><th>Filter</th></tr>
    <?php foreach ($taxonomyCategories as $t): ?>
    <tr>
        <td><span class="badge"><?= htmlspecialchars($t['taxonomy_category']) ?></span></td>
        <td><?= $t['count'] ?></td>
        <td><a href="/system-explorer/chunks?category=<?= urlencode($t['taxonomy_category']) ?>" class="btn btn--small">Anzeigen</a></td>
    </tr>
    <?php endforeach; ?>
</table>
<?php endif; ?>

<?php if (!empty($recentChunks)): ?>
<h2>Neueste Chunks</h2>
<table>
    <thead>
        <tr>
            <th>ID</th>
            <th>Dokument</th>
            <th>Kategorie</th>
            <th>Tokens</th>
            <th>Inhalt</th>
        </tr>
    </thead>
    <tbody>
        <?php foreach ($recentChunks as $c): ?>
        <tr>
            <td><a href="/system-explorer/chunks/<?= $c['id'] ?>">#<?= $c['id'] ?></a></td>
            <td><a href="/docs/<?= htmlspecialchars($c['dokument_path']) ?>"><?= htmlspecialchars($c['dokument_title']) ?></a></td>
            <td><?php if ($c['taxonomy_category']): ?><span class="badge"><?= htmlspecialchars($c['taxonomy_category']) ?></span><?php endif; ?></td>
            <td><?= $c['token_count'] ?></td>
            <td><?= htmlspecialchars(substr(strip_tags($c['content']), 0, 80)) ?>...</td>
        </tr>
        <?php endforeach; ?>
    </tbody>
</table>
<?php endif; ?>

<p class="links-bar">
    <a href="/docs">Dokumentation durchsuchen</a> |
    <a href="/system-explorer/suche">Hybride Suche</a> |
    <code>php cli/doc2vector.php search "query"</code>
</p>

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