UNPKG

@jackhua/mini-langchain

Version:

A lightweight TypeScript implementation of LangChain with cost optimization features

101 lines 2.82 kB
/** * Base vector store interface and implementations */ import { Document } from '../core/types'; /** * Vector store search type */ export declare enum VectorStoreSearchType { SIMILARITY = "similarity", MMR = "mmr" } /** * Search parameters for vector stores */ export interface VectorStoreSearchParams { k?: number; filter?: Record<string, any>; fetchK?: number; lambda?: number; } /** * Vector with metadata */ export interface Vector { id: string; values: number[]; metadata?: Record<string, any>; } /** * Embeddings interface */ export interface Embeddings { /** * Embed a single text */ embedQuery(text: string): Promise<number[]>; /** * Embed multiple texts */ embedDocuments(texts: string[]): Promise<number[][]>; } /** * Base vector store interface */ export declare abstract class VectorStore { protected embeddings: Embeddings; constructor(embeddings: Embeddings); /** * Add documents to the vector store */ abstract addDocuments(documents: Document[]): Promise<string[]>; /** * Add vectors directly */ abstract addVectors(vectors: number[][], documents: Document[]): Promise<string[]>; /** * Similarity search */ abstract similaritySearch(query: string, k?: number, filter?: Record<string, any>): Promise<Document[]>; /** * Similarity search with score */ abstract similaritySearchWithScore(query: string, k?: number, filter?: Record<string, any>): Promise<[Document, number][]>; /** * Similarity search by vector */ abstract similaritySearchVectorWithScore(query: number[], k: number, filter?: Record<string, any>): Promise<[Document, number][]>; /** * Delete documents */ abstract delete(params?: { ids?: string[]; filter?: Record<string, any>; }): Promise<void>; /** * Create index if needed (optional) */ ensureIndex?(): Promise<void>; /** * Max marginal relevance search */ maxMarginalRelevanceSearch(query: string, options?: { k?: number; fetchK?: number; lambda?: number; filter?: Record<string, any>; }): Promise<Document[]>; /** * Calculate diversity between two documents */ protected calculateDiversity(doc1: Document, doc2: Document): number; /** * Create vector store from texts */ static fromTexts(texts: string[], metadatas: Record<string, any>[] | Record<string, any>, embeddings: Embeddings, dbConfig?: Record<string, any>): Promise<VectorStore>; /** * Create vector store from documents */ static fromDocuments(docs: Document[], embeddings: Embeddings, dbConfig?: Record<string, any>): Promise<VectorStore>; } //# sourceMappingURL=base.d.ts.map