@ever_cheng/memory-task-mcp
Version:
Memory and task management MCP Server
146 lines (145 loc) • 3.43 kB
TypeScript
/**
* 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>;
}