UNPKG

@ever_cheng/memory-task-mcp

Version:

Memory and task management MCP Server

146 lines (145 loc) 3.43 kB
/** * Semantic Search Service for MemTask * * Provides high-level semantic search functionality by coordinating * embedding generation, vector search, and result aggregation. */ import { Memory, MemoryTag } from './types'; import { MemoryManager } from './memory'; import { EmbeddingService } from './embedding'; import { VectorStore } from './vector_store'; import { Disposable } from './resource_manager'; /** * Semantic Search Configuration */ export interface SemanticSearchConfig { defaultLimit: number; similarityThreshold: number; aggregationStrategy: 'max' | 'avg' | 'weighted'; boostFactors: { recentness: number; tagMatch: number; completeness: number; }; } /** * Default semantic search configuration */ export declare const DEFAULT_SEMANTIC_SEARCH_CONFIG: SemanticSearchConfig; /** * Search Query Interface */ export interface SemanticSearchQuery { query: string; limit?: number; similarityThreshold?: number; tags?: MemoryTag[]; memoryIds?: string[]; } /** * Enhanced Search Result Interface */ export interface SemanticSearchResult { memory: Memory; similarity: number; relevanceScore: number; matchedChunks: ChunkMatch[]; searchMetadata: { searchType: 'semantic'; processingTime: number; totalChunks: number; boostFactors: { [key: string]: number; }; }; } /** * Chunk Match Interface */ export interface ChunkMatch { chunkId: string; chunkIndex: number; similarity: number; matchedContent: string; context: string; } /** * Search Statistics Interface */ export interface SearchStats { totalQueries: number; averageResponseTime: number; popularQueries: Array<{ query: string; count: number; }>; topTags: Array<{ tag: string; frequency: number; }>; performanceMetrics: { embeddingTime: number; vectorSearchTime: number; aggregationTime: number; }; } /** * Semantic Search Service Class */ export declare class SemanticSearchService implements Disposable { private memoryManager; private embeddingService; private vectorStore; private config; private queryStats; private performanceHistory; constructor(memoryManager: MemoryManager, embeddingService: EmbeddingService, vectorStore: VectorStore, config?: SemanticSearchConfig); /** * 執行語義搜尋 */ search(query: SemanticSearchQuery): Promise<SemanticSearchResult[]>; /** * 語義搜尋 */ private semanticSearch; /** * 按 memory 聚合 chunk 搜尋結果 */ private aggregateChunkResults; /** * 聚合相似度分數 */ private aggregateSimilarityScores; /** * 應用增強因子 */ private applyBoostFactors; /** * 記錄查詢統計 */ private recordQuery; /** * 記錄性能統計 */ private recordPerformance; /** * 獲取搜尋統計 */ getSearchStats(): SearchStats; /** * 更新配置 */ updateConfig(newConfig: Partial<SemanticSearchConfig>): void; /** * 獲取當前配置 */ getConfig(): SemanticSearchConfig; /** * 清理統計數據 */ clearStats(): void; /** * 清理資源 (實現 Disposable 介面) */ dispose(): Promise<void>; }