98 lines
4.2 KiB
TypeScript
98 lines
4.2 KiB
TypeScript
|
|
/**
|
||
|
|
* /admin/indexer — Standalone admin view of the retrieval index health.
|
||
|
|
*
|
||
|
|
* Same component as in /admin/batch, but on its own page with deeper context
|
||
|
|
* about pgvector schema, embed-service status, and recovery commands.
|
||
|
|
*/
|
||
|
|
import Link from "next/link";
|
||
|
|
import { AuthBar } from "@/components/auth-bar";
|
||
|
|
import { IndexerStatus } from "@/components/indexer-status";
|
||
|
|
|
||
|
|
export const dynamic = "force-dynamic";
|
||
|
|
|
||
|
|
export default function AdminIndexerPage() {
|
||
|
|
return (
|
||
|
|
<main className="min-h-screen p-6 md:p-10 max-w-5xl mx-auto">
|
||
|
|
<div className="flex items-start justify-between gap-4 mb-6">
|
||
|
|
<Link href="/" className="font-mono text-xs text-[#7fdbff] hover:text-[#00ff9c]">
|
||
|
|
← home
|
||
|
|
</Link>
|
||
|
|
<div className="flex items-center gap-2">
|
||
|
|
<Link
|
||
|
|
href="/admin/batch"
|
||
|
|
className="font-mono text-xs px-3 py-1.5 border border-[rgba(0,255,156,0.30)] text-[#00ff9c] hover:bg-[rgba(0,255,156,0.10)] rounded"
|
||
|
|
>
|
||
|
|
📈 batch monitor
|
||
|
|
</Link>
|
||
|
|
<AuthBar />
|
||
|
|
</div>
|
||
|
|
</div>
|
||
|
|
|
||
|
|
<header className="mb-6">
|
||
|
|
<div className="font-mono text-[10px] text-[#5a6678] tracking-widest uppercase mb-2">
|
||
|
|
admin · retrieval index health
|
||
|
|
</div>
|
||
|
|
<h1 className="font-mono text-2xl text-[#00ff9c] mb-1">▍ Postgres + pgvector + BGE-M3</h1>
|
||
|
|
<p className="text-[#8896aa] text-sm">
|
||
|
|
Estado da camada de retrieval que alimenta o chat e o <code>/search</code>.
|
||
|
|
Postgres faz BM25 (tsvector bilíngue) + dense (pgvector HNSW 1024-dim);
|
||
|
|
embed-service (BGE-M3 self-host) provê vetores e reranker BGE-Reranker-v2-M3.
|
||
|
|
</p>
|
||
|
|
</header>
|
||
|
|
|
||
|
|
<IndexerStatus />
|
||
|
|
|
||
|
|
<section className="mt-10 pt-6 border-t border-[rgba(0,255,156,0.12)]">
|
||
|
|
<h2 className="font-mono text-sm text-[#7fdbff] uppercase tracking-widest mb-3 border-l-2 border-[#7fdbff] pl-3">
|
||
|
|
Pipeline de ingestão
|
||
|
|
</h2>
|
||
|
|
<ol className="space-y-3 text-sm text-[#c8d4e6]">
|
||
|
|
<li>
|
||
|
|
<div className="font-mono text-[10px] uppercase tracking-widest text-[#5a6678] mb-1">
|
||
|
|
1. rebuild de chunks (Sonnet 4.6 via subagents)
|
||
|
|
</div>
|
||
|
|
<code className="block p-2 bg-[#060a13] border border-[rgba(0,255,156,0.12)] rounded text-[11px]">
|
||
|
|
python3 scripts/28-batch-rebuild-all.py --workers 2
|
||
|
|
</code>
|
||
|
|
<p className="text-xs text-[#8896aa] mt-1">
|
||
|
|
Cada doc roda em <code>claude -p</code> isolado. Saída em <code>raw/<doc>--subagent/</code>.
|
||
|
|
</p>
|
||
|
|
</li>
|
||
|
|
<li>
|
||
|
|
<div className="font-mono text-[10px] uppercase tracking-widest text-[#5a6678] mb-1">
|
||
|
|
2. index → Postgres + embeddings BGE-M3
|
||
|
|
</div>
|
||
|
|
<code className="block p-2 bg-[#060a13] border border-[rgba(0,255,156,0.12)] rounded text-[11px]">
|
||
|
|
python3 scripts/30-index-chunks-to-db.py --skip-existing
|
||
|
|
</code>
|
||
|
|
</li>
|
||
|
|
<li>
|
||
|
|
<div className="font-mono text-[10px] uppercase tracking-widest text-[#5a6678] mb-1">
|
||
|
|
3. materializa entity_mentions (chunk ↔ entity)
|
||
|
|
</div>
|
||
|
|
<code className="block p-2 bg-[#060a13] border border-[rgba(0,255,156,0.12)] rounded text-[11px]">
|
||
|
|
python3 scripts/31-populate-entity-mentions.py
|
||
|
|
</code>
|
||
|
|
</li>
|
||
|
|
<li>
|
||
|
|
<div className="font-mono text-[10px] uppercase tracking-widest text-[#5a6678] mb-1">
|
||
|
|
4. sync mentioned_in[] → markdown (fecha o loop wiki ↔ DB)
|
||
|
|
</div>
|
||
|
|
<code className="block p-2 bg-[#060a13] border border-[rgba(0,255,156,0.12)] rounded text-[11px]">
|
||
|
|
python3 scripts/32-sync-mentioned-in-yaml.py
|
||
|
|
</code>
|
||
|
|
</li>
|
||
|
|
<li>
|
||
|
|
<div className="font-mono text-[10px] uppercase tracking-widest text-[#5a6678] mb-1">
|
||
|
|
5. compact progress.jsonl (manutenção)
|
||
|
|
</div>
|
||
|
|
<code className="block p-2 bg-[#060a13] border border-[rgba(0,255,156,0.12)] rounded text-[11px]">
|
||
|
|
python3 scripts/33-compact-progress-log.py
|
||
|
|
</code>
|
||
|
|
</li>
|
||
|
|
</ol>
|
||
|
|
</section>
|
||
|
|
</main>
|
||
|
|
);
|
||
|
|
}
|