UNPKG

smart-thinking-mcp

Version:

Un serveur MCP avancé pour le raisonnement multi-dimensionnel, adaptatif et collaboratif

90 lines (89 loc) 3.02 kB
/** * Service qui gère les embeddings vectoriels avec l'API Cohere * Version optimisée avec batching et LRU cache avec expiration */ export declare class EmbeddingService { private client; private cache; private cacheSize; private maxCacheSize; private cacheExpiration; private batchQueue; private batchTimeout; private batchSize; private batchDelay; constructor(apiKey: string); /** * Génère un embedding pour un texte donné * Utilise une file d'attente pour regrouper les requêtes en batch * * @param text Le texte pour lequel générer un embedding * @returns Un vecteur d'embedding */ getEmbedding(text: string): Promise<number[]>; /** * Traite la file d'attente des embeddings en lot */ private processBatch; /** * Ajoute un embedding au cache LRU avec expiration * * @param text Le texte clé * @param embedding Le vecteur à mettre en cache */ private addToCache; /** * Génère des embeddings pour plusieurs textes * avec gestion optimisée des batchs et du cache * * @param texts Les textes pour lesquels générer des embeddings * @returns Un tableau de vecteurs d'embedding */ getEmbeddings(texts: string[]): Promise<number[][]>; /** * Calcule la similarité cosinus entre deux vecteurs * * @param vecA Premier vecteur * @param vecB Second vecteur * @returns Score de similarité entre 0 et 1 */ calculateCosineSimilarity(vecA: number[], vecB: number[]): number; /** * Trouve les textes les plus similaires à un texte de référence * Utilise KNN pour la recherche de similarité * * @param referenceText Texte de référence * @param candidateTexts Textes candidats * @param limit Nombre maximum de résultats * @param threshold Seuil de similarité minimum (optionnel) * @returns Les textes les plus similaires avec leurs scores */ findSimilarTexts(referenceText: string, candidateTexts: string[], limit?: number, threshold?: number): Promise<Array<{ text: string; score: number; }>>; /** * Efface le cache d'embeddings ou supprime les entrées expirées * * @param all Si true, efface tout le cache, sinon seulement les entrées expirées */ clearCache(all?: boolean): void; /** * Ajuste les paramètres du cache * * @param maxSize Taille maximale du cache * @param expiration Durée de validité en millisecondes */ configureCacheParams(maxSize?: number, expiration?: number): void; /** * Réduit la taille du cache en supprimant les entrées les plus anciennes */ private reduceCache; /** * Configure les paramètres de batch * * @param batchSize Taille maximale des lots * @param batchDelay Délai en ms pour regrouper les requêtes */ configureBatchParams(batchSize?: number, batchDelay?: number): void; }