/** * EmbeddingService handles communication with Ollama API for generating embeddings. * Includes caching, error handling, and retry logic. */ export declare class EmbeddingService { private client; private model; private cache; private maxRetries; private retryDelay; constructor(ollamaUrl?: string, model?: string, maxRetries?: number, retryDelay?: number); /** * Generate an embedding vector for the given text. * Uses cache if available, otherwise calls Ollama API. * * @param text - Text to generate embedding for * @param useCache - Whether to use cached embeddings (default true) * @returns Embedding vector as array of numbers */ generateEmbedding(text: string, useCache?: boolean): Promise; /** * Generate embeddings for multiple texts in batch. * * @param texts - Array of texts to generate embeddings for * @param useCache - Whether to use cached embeddings (default true) * @returns Array of embedding vectors */ generateEmbeddings(texts: string[], useCache?: boolean): Promise; /** * Call Ollama API to generate embedding. * * @param text - Text to generate embedding for * @returns Embedding vector */ private callOllamaAPI; /** * Generate a cache key from text. * Uses a simple hash to avoid storing full text as keys. */ private getCacheKey; /** * Sleep for specified milliseconds. */ private sleep; /** * Clear the embedding cache. */ clearCache(): void; /** * Get cache statistics. */ getCacheStats(): { size: number; maxSize: number; }; /** * Check if Ollama is available and the model is loaded. */ healthCheck(): Promise<{ available: boolean; model: string; error?: string; }>; /** * Calculate cosine similarity between two embedding vectors. * * @param vecA - First embedding vector * @param vecB - Second embedding vector * @returns Similarity score between 0 and 1 */ static cosineSimilarity(vecA: number[], vecB: number[]): number; } //# sourceMappingURL=EmbeddingService.d.ts.map