sentence2simvecjs
Version:
Vector-based sentence similarity (0.0-1.0) + embedding export. JavaScript implementation inspired by PINTO0309/sentence2simvec
57 lines • 2 kB
TypeScript
import { StorageAdapter } from './storage/storageInterface';
export interface CachedEmbeddingV2 {
id: string;
text: string;
embedding: number[];
metadata?: any;
timestamp?: number;
}
export type StorageType = 'file' | 'localStorage' | 'memory';
export interface EmbeddingCacheV2Options {
storageType?: StorageType;
storageAdapter?: StorageAdapter;
cacheDir?: string;
storagePrefix?: string;
maxItems?: number;
compressionEnabled?: boolean;
}
export declare class EmbeddingCacheV2 {
private storage;
private options;
private indexKey;
constructor(options?: EmbeddingCacheV2Options);
addText(text: string, id?: string, metadata?: any): Promise<CachedEmbeddingV2>;
addTexts(texts: Array<{
text: string;
id?: string;
metadata?: any;
}>): Promise<CachedEmbeddingV2[]>;
findSimilar(queryText: string, topK?: number, threshold?: number): Promise<Array<{
embedding: CachedEmbeddingV2;
similarity: number;
}>>;
findSimilarByEmbedding(queryEmbedding: number[], topK?: number, threshold?: number): Promise<Array<{
embedding: CachedEmbeddingV2;
similarity: number;
}>>;
batchSimilarity(queryText: string): Promise<Map<string, number>>;
batchSimilarityByEmbedding(queryEmbedding: number[]): Promise<Map<string, number>>;
get(id: string): Promise<CachedEmbeddingV2 | undefined>;
set(id: string, embedding: CachedEmbeddingV2): Promise<void>;
remove(id: string): Promise<void>;
clear(): Promise<void>;
size(): Promise<number>;
getAllIds(): Promise<string[]>;
getAll(): Promise<CachedEmbeddingV2[]>;
exportToJSON(): Promise<string>;
importFromJSON(jsonData: string): Promise<void>;
getStorageInfo(): Promise<{
type: string;
itemCount: number;
estimatedSize?: number;
}>;
private updateIndex;
private enforceMaxItems;
private generateId;
}
//# sourceMappingURL=embeddingCacheV2.d.ts.map