import { LVS_Search_Mode } from '../_enums/lvs-search-mode.enum'; import { LVS_SearchResult } from '../_models/lvs-search-result.interface'; /** * Vektor pool kezelő utility class * Instance-based class, amely in-memory vektor pool-t kezel és vektor hasonlósági számításokat végez * Minden instance saját vektor pool-t tart fenn */ export declare class LVS_VectorPool_ControlService { /** * In-memory vektor pool tárolás * Key: vektor ID, Value: vektor értékek */ private vectorPool; /** * Normalizált vektor pool tárolás (L2 normalizált másolatok) * Key: vektor ID, Value: L2 normalizált vektor értékek */ private normalizedVectorPool; /** * `normalizedOnly` mód: ha `true`, a pool NEM tárolja a nyers vektorokat (`vectorPool`) — CSAK a * normalizált másolatot. A kizárólag-cosine fogyasztóknak (pl. RAG-keresés) ez ~50% memória-megtakarítás * (a két párhuzamos pool helyett egy). Ekkor az `l2Distance`-keresés és a `getAll()` nyers-érték-olvasása * N/A (a `size()` + a `cosineSimilarity`-keresés továbbra is helyes). Default `false` (visszafelé kompatibilis). */ private readonly normalizedOnly; constructor(set?: { normalizedOnly?: boolean; }); /** * Hozzáad egy vektort a pool-hoz * Opcionálisan L2 normalizált másolatot is tárol */ addVector(id: string, vector: number[]): void; /** * Eltávolít egy vektort a pool-ból */ removeVector(id: string): void; /** * Frissít egy vektort a pool-ban */ updateVector(id: string, vector: number[]): void; /** * A pool elemszáma. Mindkét módban helyes (a `normalizedVectorPool` a forrás), így `normalizedOnly` * módban is — szemben a `getAll().size`-szal, ami ott üres (a nyers pool nincs tárolva). */ size(): number; /** * Törli az összes vektort a pool-ból */ clearPool(): void; /** * Visszaadja az összes vektort a pool-ból * Debugging és export céljára */ getAll(): Map; /** * L2 normalizálás egy vektorra * A vektor hosszát 1-re normalizálja * Statikus metódus, mivel nincs szüksége instance state-re */ private static l2Normalize; /** * Cosine similarity számítás két vektor között * Normalizált vektorokat használ a számításhoz * Eredmény: 0 és 1 közötti érték, ahol 1 a legnagyobb hasonlóság * Statikus metódus, mivel nincs szüksége instance state-re */ static cosineSimilarity(a: number[], b: number[]): number; /** * L2 distance (Euklideszi távolság) számítás két vektor között * Eredmény: 0 vagy pozitív érték, ahol 0 a legkisebb távolság * Statikus metódus, mivel nincs szüksége instance state-re */ static l2Distance(a: number[], b: number[]): number; /** * Vektor keresés a pool-ban * Brute-force megközelítés (lineáris keresés) * * @param query A keresési query vektor * @param k A visszaadandó találatok száma (top-K) * @param mode A keresési mód (cosine similarity vagy L2 distance) * @param candidateIds Opcionális jelölt-ID szűrő: ha meg van adva, a keresés CSAK az ebben a * halmazban lévő ID-kra fut (a többit `Set.has` O(1)-gyel kihagyja). Így a hívónak NEM kell külön * szűkített pool-t építenie + a vektorokat újra-normalizálnia — a keresés a MÁR előre-normalizált * `normalizedVectorPool`-on iterál allokáció-mentesen. Üres halmaz → üres eredmény. * @returns A top-K találatok ID-val és score-rel, megfelelő sorrendben */ search(query: number[], k: number, mode: LVS_Search_Mode, candidateIds?: Set): LVS_SearchResult[]; } //# sourceMappingURL=lvs-vector-pool.control-service.d.ts.map