UNPKG

smart-thinking-mcp

Version:

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

173 lines (172 loc) 7.26 kB
import { ThoughtNode, ThoughtMetrics, ConnectionType, VerificationStatus, CalculationVerificationResult } from './types'; /** * metrics-calculator.ts - VERSION OPTIMISÉE * * Système centralisé pour tous les calculs de métriques dans Smart-Thinking * Implémente des algorithmes avancés optimisés pour calculer la confiance, la pertinence, * la qualité et autres métriques utilisées par le système. */ /** * Classe qui centralise tous les calculs de métriques dans Smart-Thinking. * Cette classe implémente des algorithmes avancés pour le calcul de confiance, * la pertinence, la qualité et d'autres métriques utilisées dans le système. */ export declare class MetricsCalculator { private positiveWords; private negativeWords; private qualityIndicators; private uncertaintyModifiers; private certaintyModifiers; private stopWords; private REGEX; private typeScoresMap; private connectionWeightsMap; private verificationScoreMap; private THRESHOLDS; private config; /** * Constructeur * @param customConfig Configuration personnalisée (optionnelle) */ constructor(customConfig?: Partial<typeof MetricsCalculator.prototype.config>); /** * Valide et normalise tous les poids dans les configurations pour s'assurer qu'ils s'additionnent à 1.0 * Affiche un avertissement si ce n'est pas le cas et corrige automatiquement */ private validateWeights; /** * OPTIMISATION: Compter les modalisateurs avec RegExp (plus rapide) * * @param content Contenu à analyser * @param regex Expression régulière à utiliser * @returns Nombre d'occurrences */ private countModifiers; /** * Calcule la métrique de confiance pour une pensée - VERSION OPTIMISÉE * Implémente un algorithme amélioré pour évaluer la confiance * * @param thought La pensée à évaluer * @returns Niveau de confiance entre 0 et 1 */ calculateConfidence(thought: ThoughtNode): number; /** * Calcule la métrique de pertinence pour une pensée par rapport à son contexte - VERSION OPTIMISÉE * Utilise un algorithme hybride combinant TF-IDF et analyse de connexions * * @param thought La pensée à évaluer * @param connectedThoughts Les pensées connectées (contexte) * @returns Niveau de pertinence entre 0 et 1 */ calculateRelevance(thought: ThoughtNode, connectedThoughts: ThoughtNode[]): number; /** * Calcule la métrique de qualité globale pour une pensée - VERSION OPTIMISÉE * Utilise une approche multi-factorielle * * @param thought La pensée à évaluer * @param connectedThoughts Les pensées connectées (contexte) * @returns Niveau de qualité entre 0 et 1 */ calculateQuality(thought: ThoughtNode, connectedThoughts: ThoughtNode[]): number; /** * Calcule un score global de fiabilité basé sur différentes métriques et vérifications * avec une normalisation automatique des poids - VERSION OPTIMISÉE * * @param metrics Les métriques de base * @param verificationStatus Statut de vérification actuel * @param calculationResults Résultats de vérification des calculs (optionnel) * @param previousScore Score précédent (optionnel) * @returns Score de fiabilité entre 0 et 1 */ calculateReliabilityScore(metrics: ThoughtMetrics, verificationStatus: VerificationStatus, calculationResults?: CalculationVerificationResult[], previousScore?: number): number; /** * Calcule un score de pertinence basé sur la correspondance avec le contexte - VERSION OPTIMISÉE * * @param thought La pensée à évaluer * @param context Le contexte actuel * @returns Score de pertinence (0-1) */ calculateRelevanceScore(thought: ThoughtNode, context: string): number; /** * Extrait les mots-clés d'un texte donné - VERSION OPTIMISÉE * * @param text Le texte à analyser * @returns Un tableau de mots-clés */ extractKeywords(text: string): string[]; /** * Extrait et pondère les mots-clés du contexte - VERSION OPTIMISÉE * * @param text Le texte du contexte * @returns Un objet avec les mots-clés et leurs poids */ extractAndWeightContextKeywords(text: string): Record<string, number>; /** * Obtient le poids associé à un type de connexion - VERSION OPTIMISÉE * * @param type Le type de connexion * @returns Le poids de ce type de connexion */ getConnectionTypeWeight(type: ConnectionType): number; /** * Détermine le statut de vérification en fonction du score de confiance * et d'autres facteurs - VERSION OPTIMISÉE * * @param confidenceOrResults Niveau de confiance dans la vérification (0-1) ou résultats de vérification * @param hasContradictions Indique s'il y a des contradictions * @param hasInformation Indique s'il y a des informations disponibles * @returns Le statut de vérification */ determineVerificationStatus(confidenceOrResults: number | any[], hasContradictions?: boolean, hasInformation?: boolean): VerificationStatus; /** * Détermine le statut de vérification à partir des résultats de multiples sources - VERSION OPTIMISÉE * Algorithme amélioré pour gérer les cas ambigus * * @param results Résultats de vérification provenant de différentes sources * @returns Statut de vérification (VerificationStatus) */ private determineVerificationStatusFromResults; /** * Génère un résumé explicatif du niveau de certitude - VERSION OPTIMISÉE * * @param status Statut de vérification * @param confidence Niveau de confiance (0-1) * @returns Résumé textuel du niveau de certitude */ generateCertaintySummary(status: VerificationStatus, confidence?: number): string; /** * Détecte les biais potentiels dans une pensée - VERSION OPTIMISÉE * * @param thought La pensée à analyser * @returns Un tableau des biais détectés avec leur score (0-1) */ detectBiases(thought: ThoughtNode): Array<{ type: string; score: number; description: string; }>; /** * Détermine les besoins de vérification pour un contenu donné - VERSION OPTIMISÉE * * @param content Le contenu textuel à analyser * @returns Configuration recommandée pour la vérification */ determineVerificationRequirements(content: string): { needsFactCheck: boolean; needsMathCheck: boolean; needsSourceCheck: boolean; priority: 'low' | 'medium' | 'high'; suggestedTools: string[]; requiresMultipleVerifications: boolean; reasons: string[]; recommendedVerificationsCount: number; }; /** * Calcule un niveau de confiance pour un ensemble de résultats de vérification - VERSION OPTIMISÉE * en utilisant une approche bayésienne * * @param results Résultats de vérification * @returns Score de confiance entre 0 et 1 */ calculateVerificationConfidence(results: any[]): number; }