phase a audit
This commit is contained in:
38
src/Ingest/VectorRebuildService.php
Normal file
38
src/Ingest/VectorRebuildService.php
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Ingest;
|
||||
|
||||
use App\Index\IndexMetaManager;
|
||||
use App\Knowledge\ChunkManager;
|
||||
use App\Vector\VectorIndexBuilder;
|
||||
|
||||
final readonly class VectorRebuildService
|
||||
{
|
||||
public function __construct(
|
||||
private VectorIndexBuilder $vectorBuilder,
|
||||
private IndexMetaManager $metaManager,
|
||||
private ChunkManager $chunkManager,
|
||||
) {}
|
||||
|
||||
/**
|
||||
* Führt einen vollständigen, deterministischen FAISS-Rebuild aus.
|
||||
*
|
||||
* Ablauf:
|
||||
* 1. Rebuild des Vector Index aus index.ndjson
|
||||
* 2. Chunk-Zählung via ChunkManager
|
||||
* 3. Runtime-Stats atomar aktualisieren
|
||||
*/
|
||||
public function rebuild(?string $logPath = null): void
|
||||
{
|
||||
// 1️⃣ Vector Index neu bauen
|
||||
$this->vectorBuilder->rebuildFromNdjson($logPath);
|
||||
|
||||
// 2️⃣ Chunk Count streaming-safe zählen
|
||||
$chunkCount = $this->chunkManager->countAllChunks();
|
||||
|
||||
// 3️⃣ Runtime-Stats aktualisieren (atomar)
|
||||
$this->metaManager->updateRuntimeStats($chunkCount);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user