UNPKG

vecstore-js

Version:

A pluggable, browser-native vector database using IndexedDB with support for HNSW and local embeddings.

33 lines (32 loc) 900 B
export type Document = { id: string; vector: number[]; content?: unknown; metadata?: Record<string, any>; }; export interface Embedder { embed(text: string): Promise<number[]>; } export interface StorageAdapter { put(doc: Document): Promise<void>; getAll(): Promise<Document[]>; } export interface SearchAlgorithm { search(queryVector: number[], documents: Document[], topK: number): Promise<(Document & { score: number; })[]>; } export interface IndexedSearchAlgorithm extends SearchAlgorithm { addDocument(doc: Document): Promise<void>; searchIndex(queryVector: number[], topK: number): Promise<(Document & { score: number; })[]>; initialize(): Promise<void>; } export interface VecStoreOptions { embedder: Embedder; dbName?: string; store?: StorageAdapter; search?: SearchAlgorithm; storeContent?: boolean; }