smart-thinking-mcp
Version:
Un serveur MCP avancé pour le raisonnement multi-dimensionnel, adaptatif et collaboratif
90 lines (89 loc) • 3.02 kB
TypeScript
/**
* 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;
}