memento-mcp-server 1.11.1 → 1.12.0-a1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +21 -6
- package/README.md +38 -7
- package/dist/algorithms/hybrid-search-engine.d.ts +34 -1
- package/dist/algorithms/hybrid-search-engine.d.ts.map +1 -1
- package/dist/algorithms/hybrid-search-engine.js +186 -17
- package/dist/algorithms/hybrid-search-engine.js.map +1 -1
- package/dist/algorithms/search-ranking.d.ts +15 -1
- package/dist/algorithms/search-ranking.d.ts.map +1 -1
- package/dist/algorithms/search-ranking.js +41 -4
- package/dist/algorithms/search-ranking.js.map +1 -1
- package/dist/config/environment.d.ts.map +1 -1
- package/dist/config/environment.js +4 -0
- package/dist/config/environment.js.map +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +6 -0
- package/dist/config/index.js.map +1 -1
- package/dist/config/ranking-weights-loader.d.ts +37 -0
- package/dist/config/ranking-weights-loader.d.ts.map +1 -0
- package/dist/config/ranking-weights-loader.js +109 -0
- package/dist/config/ranking-weights-loader.js.map +1 -0
- package/dist/constants/relation-constants.d.ts +95 -0
- package/dist/constants/relation-constants.d.ts.map +1 -0
- package/dist/constants/relation-constants.js +95 -0
- package/dist/constants/relation-constants.js.map +1 -0
- package/dist/database/migration/migrations/005-relation-engine-schema.d.ts +65 -0
- package/dist/database/migration/migrations/005-relation-engine-schema.d.ts.map +1 -0
- package/dist/database/migration/migrations/005-relation-engine-schema.js +295 -0
- package/dist/database/migration/migrations/005-relation-engine-schema.js.map +1 -0
- package/dist/database/migration/migrations/005-relation-engine-schema.sql +64 -0
- package/dist/server/routes/admin.routes.d.ts.map +1 -1
- package/dist/server/routes/admin.routes.js +228 -0
- package/dist/server/routes/admin.routes.js.map +1 -1
- package/dist/services/anchor/anchor-interfaces.d.ts +1 -0
- package/dist/services/anchor/anchor-interfaces.d.ts.map +1 -1
- package/dist/services/anchor/anchor-interfaces.js.map +1 -1
- package/dist/services/anchor/anchor-search-service.d.ts +16 -0
- package/dist/services/anchor/anchor-search-service.d.ts.map +1 -1
- package/dist/services/anchor/anchor-search-service.js +136 -17
- package/dist/services/anchor/anchor-search-service.js.map +1 -1
- package/dist/services/batch-scheduler.d.ts +11 -0
- package/dist/services/batch-scheduler.d.ts.map +1 -1
- package/dist/services/batch-scheduler.js +99 -0
- package/dist/services/batch-scheduler.js.map +1 -1
- package/dist/services/llm-based-relation-extractor.d.ts +156 -0
- package/dist/services/llm-based-relation-extractor.d.ts.map +1 -0
- package/dist/services/llm-based-relation-extractor.js +1350 -0
- package/dist/services/llm-based-relation-extractor.js.map +1 -0
- package/dist/services/relation-extractor.d.ts +73 -0
- package/dist/services/relation-extractor.d.ts.map +1 -0
- package/dist/services/relation-extractor.js +231 -0
- package/dist/services/relation-extractor.js.map +1 -0
- package/dist/services/relation-graph.d.ts +275 -0
- package/dist/services/relation-graph.d.ts.map +1 -0
- package/dist/services/relation-graph.js +869 -0
- package/dist/services/relation-graph.js.map +1 -0
- package/dist/services/relation-quality-validator.d.ts +211 -0
- package/dist/services/relation-quality-validator.d.ts.map +1 -0
- package/dist/services/relation-quality-validator.js +415 -0
- package/dist/services/relation-quality-validator.js.map +1 -0
- package/dist/services/rule-based-relation-extractor.d.ts +66 -0
- package/dist/services/rule-based-relation-extractor.d.ts.map +1 -0
- package/dist/services/rule-based-relation-extractor.js +258 -0
- package/dist/services/rule-based-relation-extractor.js.map +1 -0
- package/dist/tools/add-relation-tool.d.ts +34 -0
- package/dist/tools/add-relation-tool.d.ts.map +1 -0
- package/dist/tools/add-relation-tool.js +163 -0
- package/dist/tools/add-relation-tool.js.map +1 -0
- package/dist/tools/extract-relations-tool.d.ts +28 -0
- package/dist/tools/extract-relations-tool.d.ts.map +1 -0
- package/dist/tools/extract-relations-tool.js +159 -0
- package/dist/tools/extract-relations-tool.js.map +1 -0
- package/dist/tools/get-relations-tool.d.ts +34 -0
- package/dist/tools/get-relations-tool.d.ts.map +1 -0
- package/dist/tools/get-relations-tool.js +155 -0
- package/dist/tools/get-relations-tool.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +11 -3
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/remember-tool.d.ts +17 -0
- package/dist/tools/remember-tool.d.ts.map +1 -1
- package/dist/tools/remember-tool.js +195 -26
- package/dist/tools/remember-tool.js.map +1 -1
- package/dist/tools/remove-relation-tool.d.ts +45 -0
- package/dist/tools/remove-relation-tool.d.ts.map +1 -0
- package/dist/tools/remove-relation-tool.js +142 -0
- package/dist/tools/remove-relation-tool.js.map +1 -0
- package/dist/tools/search-local-tool.d.ts.map +1 -1
- package/dist/tools/search-local-tool.js +10 -3
- package/dist/tools/search-local-tool.js.map +1 -1
- package/dist/tools/types.d.ts +2 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js.map +1 -1
- package/dist/tools/visualize-relations-tool.d.ts +46 -0
- package/dist/tools/visualize-relations-tool.d.ts.map +1 -0
- package/dist/tools/visualize-relations-tool.js +157 -0
- package/dist/tools/visualize-relations-tool.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/relation-graph.d.ts +215 -0
- package/dist/types/relation-graph.d.ts.map +1 -0
- package/dist/types/relation-graph.js +6 -0
- package/dist/types/relation-graph.js.map +1 -0
- package/dist/types/relation.d.ts +112 -0
- package/dist/types/relation.d.ts.map +1 -0
- package/dist/types/relation.js +67 -0
- package/dist/types/relation.js.map +1 -0
- package/dist/utils/cache-key-generator.d.ts +63 -0
- package/dist/utils/cache-key-generator.d.ts.map +1 -0
- package/dist/utils/cache-key-generator.js +76 -0
- package/dist/utils/cache-key-generator.js.map +1 -0
- package/dist/utils/database.d.ts.map +1 -1
- package/dist/utils/database.js +37 -17
- package/dist/utils/database.js.map +1 -1
- package/dist/utils/relation-visualizer.d.ts +81 -0
- package/dist/utils/relation-visualizer.d.ts.map +1 -0
- package/dist/utils/relation-visualizer.js +239 -0
- package/dist/utils/relation-visualizer.js.map +1 -0
- package/dist/utils/type-guards.d.ts +100 -0
- package/dist/utils/type-guards.d.ts.map +1 -0
- package/dist/utils/type-guards.js +144 -0
- package/dist/utils/type-guards.js.map +1 -0
- package/package.json +7 -2
- package/scripts/generate-relation-report.ts +481 -0
- package/scripts/weekly-relation-validation.ts +423 -0
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { UnifiedEmbeddingService } from '../unified-embedding-service.js';
|
|
7
7
|
import { logger } from '../../utils/logger.js';
|
|
8
|
+
import { RelationGraph } from '../relation-graph.js';
|
|
8
9
|
/**
|
|
9
10
|
* Anchor Search Service 구현
|
|
10
11
|
*/
|
|
@@ -14,6 +15,7 @@ export class AnchorSearchService {
|
|
|
14
15
|
hybridSearchEngine = null;
|
|
15
16
|
vectorSearchEngine = null;
|
|
16
17
|
queryEmbeddingService = new UnifiedEmbeddingService();
|
|
18
|
+
relationGraph = null;
|
|
17
19
|
/**
|
|
18
20
|
* 생성자
|
|
19
21
|
*/
|
|
@@ -21,6 +23,12 @@ export class AnchorSearchService {
|
|
|
21
23
|
this.cacheService = cacheService;
|
|
22
24
|
logger.info('AnchorSearchService 초기화 완료');
|
|
23
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* RelationGraph 설정 (선택적)
|
|
28
|
+
*/
|
|
29
|
+
setRelationGraph(relationGraph) {
|
|
30
|
+
this.relationGraph = relationGraph;
|
|
31
|
+
}
|
|
24
32
|
/**
|
|
25
33
|
* 데이터베이스 설정
|
|
26
34
|
*/
|
|
@@ -67,12 +75,14 @@ export class AnchorSearchService {
|
|
|
67
75
|
// 검색 옵션 기본값
|
|
68
76
|
const limit = options?.limit ?? 10;
|
|
69
77
|
const minResults = options?.min_results ?? 3;
|
|
78
|
+
const useRelations = options?.use_relations ?? true; // 기본값: true
|
|
70
79
|
// VectorSearchEngine이 없으면 에러
|
|
71
80
|
if (!this.vectorSearchEngine) {
|
|
72
81
|
throw new Error('VectorSearchEngine is not set. Call setVectorSearchEngine() first.');
|
|
73
82
|
}
|
|
74
|
-
// N-hop 검색 구현
|
|
75
|
-
const allHopResults = await this.searchNHop(anchorEmbedding.embedding, anchorEmbedding.provider, anchorMemoryId, vectorThreshold, finalHopLimit, limit * 2 // 더 많이 가져와서 필터링 후 최종 limit 적용
|
|
83
|
+
// N-hop 검색 구현 (use_relations 옵션에 따라 관계 그래프 사용 여부 결정)
|
|
84
|
+
const allHopResults = await this.searchNHop(anchorEmbedding.embedding, anchorEmbedding.provider, anchorMemoryId, vectorThreshold, finalHopLimit, limit * 2, // 더 많이 가져와서 필터링 후 최종 limit 적용
|
|
85
|
+
useRelations // 관계 그래프 사용 여부 전달
|
|
76
86
|
);
|
|
77
87
|
// 쿼리가 있는 경우 쿼리 기반 필터링
|
|
78
88
|
let filteredResults = allHopResults;
|
|
@@ -209,7 +219,7 @@ export class AnchorSearchService {
|
|
|
209
219
|
/**
|
|
210
220
|
* N-hop 검색: 앵커를 기준으로 최대 N-hop까지 확장 검색
|
|
211
221
|
*/
|
|
212
|
-
async searchNHop(anchorEmbedding, provider, anchorMemoryId, threshold, maxHops, limit) {
|
|
222
|
+
async searchNHop(anchorEmbedding, provider, anchorMemoryId, threshold, maxHops, limit, useRelations = true) {
|
|
213
223
|
if (!this.vectorSearchEngine || !this.db) {
|
|
214
224
|
throw new Error('VectorSearchEngine or Database is not set.');
|
|
215
225
|
}
|
|
@@ -233,8 +243,11 @@ export class AnchorSearchService {
|
|
|
233
243
|
// 현재 hop의 각 메모리에 대해 검색 수행
|
|
234
244
|
for (const currentMemory of currentHopMemories) {
|
|
235
245
|
try {
|
|
236
|
-
// memory_link를 활용한 직접 연결된 메모리 조회
|
|
237
|
-
|
|
246
|
+
// 관계 그래프 또는 memory_link를 활용한 직접 연결된 메모리 조회
|
|
247
|
+
// use_relations가 false이면 관계 그래프를 사용하지 않음
|
|
248
|
+
const linkedMemories = useRelations
|
|
249
|
+
? await this.getLinkedMemories(currentMemory.memory_id)
|
|
250
|
+
: [];
|
|
238
251
|
// 벡터 검색 실행
|
|
239
252
|
const vectorSearchResults = await this.vectorSearchEngine.search(currentMemory.embedding, {
|
|
240
253
|
limit: Math.ceil(limit / maxHops) + 10, // 각 hop당 충분한 결과 가져오기
|
|
@@ -289,7 +302,8 @@ export class AnchorSearchService {
|
|
|
289
302
|
similarity: candidate.similarity,
|
|
290
303
|
importance: candidate.importance,
|
|
291
304
|
created_at: candidate.created_at,
|
|
292
|
-
tags: candidate.tags
|
|
305
|
+
tags: candidate.tags,
|
|
306
|
+
hasRelation: candidate.isLinked // 관계가 있는 기억 표시
|
|
293
307
|
});
|
|
294
308
|
// 다음 hop을 위한 임베딩 조회
|
|
295
309
|
if (hop < maxHops) {
|
|
@@ -325,7 +339,8 @@ export class AnchorSearchService {
|
|
|
325
339
|
for (const result of hopResults) {
|
|
326
340
|
allResults.push({
|
|
327
341
|
...result,
|
|
328
|
-
hop_distance: hop
|
|
342
|
+
hop_distance: hop,
|
|
343
|
+
hasRelation: result.hasRelation ?? false
|
|
329
344
|
});
|
|
330
345
|
}
|
|
331
346
|
// limit에 도달했으면 중단
|
|
@@ -339,16 +354,51 @@ export class AnchorSearchService {
|
|
|
339
354
|
// 다음 hop을 위한 메모리로 업데이트
|
|
340
355
|
currentHopMemories = nextHopMemories;
|
|
341
356
|
}
|
|
342
|
-
// 랭킹 점수 계산 및 적용
|
|
343
|
-
const rankedResults = allResults.map(result => {
|
|
344
|
-
|
|
357
|
+
// 랭킹 점수 계산 및 적용 (관계 그래프 가중치 포함)
|
|
358
|
+
const rankedResults = await Promise.all(allResults.map(async (result) => {
|
|
359
|
+
// 관계 가중치 계산 (관계 그래프가 있고 use_relations가 true인 경우)
|
|
360
|
+
let relationWeight = 0;
|
|
361
|
+
let hasRelation = result.hasRelation ?? false;
|
|
362
|
+
if (useRelations && this.relationGraph) {
|
|
363
|
+
try {
|
|
364
|
+
const relations = await this.relationGraph.getRelations(result.memory_id, {
|
|
365
|
+
direction: 'both',
|
|
366
|
+
minConfidence: 0.5
|
|
367
|
+
});
|
|
368
|
+
if (relations.length > 0) {
|
|
369
|
+
hasRelation = true; // 관계가 있음을 표시
|
|
370
|
+
// 관계 가중치 계산 (간단한 평균)
|
|
371
|
+
const avgConfidence = relations.reduce((sum, r) => sum + r.confidence, 0) / relations.length;
|
|
372
|
+
const avgBoost = relations.reduce((sum, r) => sum + this.getRelationTypeBoost(r.relation_type), 0) / relations.length;
|
|
373
|
+
relationWeight = Math.min(1.0, avgConfidence * avgBoost);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
catch (error) {
|
|
377
|
+
// 관계 조회 실패는 무시
|
|
378
|
+
logger.debug('Relation weight calculation failed', {
|
|
379
|
+
memoryId: result.memory_id,
|
|
380
|
+
error: error instanceof Error ? error.message : String(error)
|
|
381
|
+
});
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
const rankingScore = this.calculateRankingScore(result.similarity, result.hop_distance, result.importance, relationWeight, hasRelation // 관계가 있는 기억에 우선순위 부여
|
|
385
|
+
);
|
|
345
386
|
return {
|
|
346
387
|
...result,
|
|
347
|
-
similarity: rankingScore
|
|
388
|
+
similarity: rankingScore,
|
|
389
|
+
hasRelation
|
|
348
390
|
};
|
|
349
|
-
});
|
|
350
|
-
// 랭킹 점수 기준으로 정렬
|
|
391
|
+
}));
|
|
392
|
+
// 랭킹 점수 기준으로 정렬 (관계가 있는 기억 우선)
|
|
351
393
|
rankedResults.sort((a, b) => {
|
|
394
|
+
// 관계가 있는 기억에 우선순위 부여
|
|
395
|
+
if (a.hasRelation && !b.hasRelation) {
|
|
396
|
+
return -1; // a가 우선
|
|
397
|
+
}
|
|
398
|
+
if (!a.hasRelation && b.hasRelation) {
|
|
399
|
+
return 1; // b가 우선
|
|
400
|
+
}
|
|
401
|
+
// 둘 다 관계가 있거나 둘 다 없는 경우, similarity 기준 정렬
|
|
352
402
|
if (Math.abs(a.similarity - b.similarity) < 0.001) {
|
|
353
403
|
return a.hop_distance - b.hop_distance;
|
|
354
404
|
}
|
|
@@ -396,7 +446,8 @@ export class AnchorSearchService {
|
|
|
396
446
|
const matchCount = queryWords.filter(word => contentLower.includes(word)).length;
|
|
397
447
|
querySim = matchCount / Math.max(queryWords.length, 1);
|
|
398
448
|
}
|
|
399
|
-
const baseRankingScore = this.calculateRankingScore(result.similarity, result.hop_distance, result.importance)
|
|
449
|
+
const baseRankingScore = this.calculateRankingScore(result.similarity, result.hop_distance, result.importance, 0 // query filtering에서는 관계 가중치 미사용 (이미 searchNHop에서 적용됨)
|
|
450
|
+
);
|
|
400
451
|
const combinedSimilarity = baseRankingScore * 0.6 + querySim * 0.4;
|
|
401
452
|
return {
|
|
402
453
|
...result,
|
|
@@ -496,11 +547,54 @@ export class AnchorSearchService {
|
|
|
496
547
|
/**
|
|
497
548
|
* memory_link 테이블을 활용한 직접 연결된 메모리 조회
|
|
498
549
|
*/
|
|
550
|
+
/**
|
|
551
|
+
* 연결된 메모리 조회
|
|
552
|
+
* 관계 그래프가 있으면 우선 사용, 없으면 memory_link 사용
|
|
553
|
+
*/
|
|
499
554
|
async getLinkedMemories(memoryId) {
|
|
500
555
|
if (!this.db) {
|
|
501
556
|
return [];
|
|
502
557
|
}
|
|
503
558
|
try {
|
|
559
|
+
// 관계 그래프가 있으면 우선 사용
|
|
560
|
+
if (this.relationGraph) {
|
|
561
|
+
const relations = await this.relationGraph.getRelations(memoryId, {
|
|
562
|
+
direction: 'outgoing',
|
|
563
|
+
minConfidence: 0.5
|
|
564
|
+
});
|
|
565
|
+
if (relations.length > 0) {
|
|
566
|
+
// 관계를 메모리 정보와 결합
|
|
567
|
+
const memoryIds = relations.map(r => r.target_id);
|
|
568
|
+
const placeholders = memoryIds.map(() => '?').join(',');
|
|
569
|
+
const memoryRecords = this.db.prepare(`
|
|
570
|
+
SELECT id, content, type, importance, created_at, tags
|
|
571
|
+
FROM memory_item
|
|
572
|
+
WHERE id IN (${placeholders})
|
|
573
|
+
`).all(...memoryIds);
|
|
574
|
+
// 관계 정보와 메모리 정보 결합
|
|
575
|
+
const memoryMap = new Map(memoryRecords.map(m => [m.id, m]));
|
|
576
|
+
return relations.map(relation => {
|
|
577
|
+
const memory = memoryMap.get(relation.target_id);
|
|
578
|
+
if (!memory) {
|
|
579
|
+
return null;
|
|
580
|
+
}
|
|
581
|
+
// 관계 confidence를 similarity로 사용 (관계가 있으면 높은 유사도)
|
|
582
|
+
// 관계 유형별 부스트 적용
|
|
583
|
+
const typeBoost = this.getRelationTypeBoost(relation.relation_type);
|
|
584
|
+
const similarity = Math.min(1.0, relation.confidence * typeBoost);
|
|
585
|
+
return {
|
|
586
|
+
memory_id: memory.id,
|
|
587
|
+
content: memory.content,
|
|
588
|
+
type: memory.type,
|
|
589
|
+
similarity,
|
|
590
|
+
importance: memory.importance,
|
|
591
|
+
created_at: memory.created_at,
|
|
592
|
+
tags: memory.tags ? JSON.parse(memory.tags) : undefined
|
|
593
|
+
};
|
|
594
|
+
}).filter((item) => item !== null);
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
// 관계 그래프가 없거나 관계가 없으면 memory_link 사용 (하위 호환성)
|
|
504
598
|
const linkedRecords = this.db.prepare(`
|
|
505
599
|
SELECT
|
|
506
600
|
ml.target_id as memory_id,
|
|
@@ -519,7 +613,7 @@ export class AnchorSearchService {
|
|
|
519
613
|
memory_id: record.memory_id,
|
|
520
614
|
content: record.content,
|
|
521
615
|
type: record.type,
|
|
522
|
-
similarity: 0.9,
|
|
616
|
+
similarity: 0.9, // memory_link는 기본 유사도 0.9
|
|
523
617
|
importance: record.importance,
|
|
524
618
|
created_at: record.created_at,
|
|
525
619
|
tags: record.tags ? (typeof record.tags === 'string' ? JSON.parse(record.tags) : record.tags) : undefined
|
|
@@ -533,15 +627,40 @@ export class AnchorSearchService {
|
|
|
533
627
|
return [];
|
|
534
628
|
}
|
|
535
629
|
}
|
|
630
|
+
/**
|
|
631
|
+
* 관계 유형별 부스트 가중치 반환
|
|
632
|
+
*/
|
|
633
|
+
getRelationTypeBoost(relationType) {
|
|
634
|
+
const boostMap = {
|
|
635
|
+
'CAUSES': 1.2,
|
|
636
|
+
'DEPENDS_ON': 1.1,
|
|
637
|
+
'FOLLOWS': 1.0,
|
|
638
|
+
'CONTRASTS_WITH': 0.9,
|
|
639
|
+
'REFERENCES': 0.8,
|
|
640
|
+
'BELONGS_TO': 1.0
|
|
641
|
+
};
|
|
642
|
+
return boostMap[relationType] || 1.0;
|
|
643
|
+
}
|
|
536
644
|
/**
|
|
537
645
|
* 검색 결과 랭킹 점수 계산
|
|
646
|
+
* 관계 그래프와 벡터 유사도를 결합한 하이브리드 hop 점수 계산
|
|
647
|
+
* 관계가 있는 기억에 우선순위 부여
|
|
538
648
|
*/
|
|
539
|
-
calculateRankingScore(similarity, hopDistance, importance = 0.5) {
|
|
649
|
+
calculateRankingScore(similarity, hopDistance, importance = 0.5, relationWeight = 0, hasRelation = false) {
|
|
540
650
|
const hopDecayFactor = 1.0 / (1.0 + (hopDistance - 1) * 0.3);
|
|
541
651
|
const anchorProximityBoost = hopDistance === 1 ? 1.2 : 1.0;
|
|
542
652
|
const importanceWeight = 0.1;
|
|
543
653
|
const importanceBoost = 1.0 + (importance - 0.5) * importanceWeight;
|
|
544
|
-
|
|
654
|
+
// 관계 가중치가 있으면 벡터 유사도와 결합
|
|
655
|
+
let combinedSimilarity = similarity;
|
|
656
|
+
if (relationWeight > 0) {
|
|
657
|
+
// 관계 가중치와 벡터 유사도를 가중 평균으로 결합
|
|
658
|
+
// 관계 가중치: 30%, 벡터 유사도: 70%
|
|
659
|
+
combinedSimilarity = similarity * 0.7 + relationWeight * 0.3;
|
|
660
|
+
}
|
|
661
|
+
// 관계가 있는 기억에 우선순위 부스트 적용
|
|
662
|
+
const relationPriorityBoost = hasRelation ? 1.15 : 1.0; // 15% 부스트
|
|
663
|
+
const rankingScore = Math.min(1.0, combinedSimilarity * hopDecayFactor * anchorProximityBoost * importanceBoost * relationPriorityBoost);
|
|
545
664
|
return rankingScore;
|
|
546
665
|
}
|
|
547
666
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anchor-search-service.js","sourceRoot":"","sources":["../../../src/services/anchor/anchor-search-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"anchor-search-service.js","sourceRoot":"","sources":["../../../src/services/anchor/anchor-search-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,9 @@ export interface BatchJobConfig {
|
|
|
11
11
|
consolidationScoreIncrementalInterval: number;
|
|
12
12
|
consolidationScoreFullSweepInterval: number;
|
|
13
13
|
consolidationScoreFullSweepHour: number;
|
|
14
|
+
relationValidationInterval: number;
|
|
15
|
+
relationValidationDayOfWeek: number;
|
|
16
|
+
relationValidationHour: number;
|
|
14
17
|
maxBatchSize: number;
|
|
15
18
|
enableLogging: boolean;
|
|
16
19
|
enableNotifications: boolean;
|
|
@@ -105,6 +108,14 @@ export declare class BatchScheduler {
|
|
|
105
108
|
* 지정된 시간에 하루 1회 실행
|
|
106
109
|
*/
|
|
107
110
|
private scheduleConsolidationScoreFullSweep;
|
|
111
|
+
/**
|
|
112
|
+
* 주간 관계 추출 품질 검증 작업 스케줄링
|
|
113
|
+
*/
|
|
114
|
+
private scheduleWeeklyRelationValidation;
|
|
115
|
+
/**
|
|
116
|
+
* 주간 관계 추출 품질 검증 실행
|
|
117
|
+
*/
|
|
118
|
+
private runWeeklyRelationValidation;
|
|
108
119
|
/**
|
|
109
120
|
* Consolidation Score 전체 스윕 작업 실행
|
|
110
121
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch-scheduler.d.ts","sourceRoot":"","sources":["../../src/services/batch-scheduler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"batch-scheduler.d.ts","sourceRoot":"","sources":["../../src/services/batch-scheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,8 @@ import fs from 'fs';
|
|
|
11
11
|
import path from 'path';
|
|
12
12
|
import { ConsolidationScoreWorker } from '../workers/consolidation-score-worker.js';
|
|
13
13
|
import { mementoConfig } from '../config/index.js';
|
|
14
|
+
import { spawn } from 'child_process';
|
|
15
|
+
import { join } from 'path';
|
|
14
16
|
export class BatchScheduler {
|
|
15
17
|
config;
|
|
16
18
|
forgettingService;
|
|
@@ -33,6 +35,9 @@ export class BatchScheduler {
|
|
|
33
35
|
consolidationScoreIncrementalInterval: 60 * 60 * 1000, // 1시간
|
|
34
36
|
consolidationScoreFullSweepInterval: 24 * 60 * 60 * 1000, // 24시간
|
|
35
37
|
consolidationScoreFullSweepHour: 3, // 새벽 3시
|
|
38
|
+
relationValidationInterval: 7 * 24 * 60 * 60 * 1000, // 7일
|
|
39
|
+
relationValidationDayOfWeek: 0, // 일요일
|
|
40
|
+
relationValidationHour: 2, // 새벽 2시
|
|
36
41
|
maxBatchSize: 1000,
|
|
37
42
|
enableLogging: true,
|
|
38
43
|
enableNotifications: false,
|
|
@@ -78,6 +83,8 @@ export class BatchScheduler {
|
|
|
78
83
|
// 야간 전체 스윕 (하루 1회, 지정된 시간에 실행)
|
|
79
84
|
this.scheduleConsolidationScoreFullSweep();
|
|
80
85
|
}
|
|
86
|
+
// 주간 관계 추출 품질 검증 작업 스케줄링
|
|
87
|
+
this.scheduleWeeklyRelationValidation();
|
|
81
88
|
// 작업 큐 처리 시작
|
|
82
89
|
this.startJobProcessor();
|
|
83
90
|
this.log('BatchScheduler started', {
|
|
@@ -475,6 +482,98 @@ export class BatchScheduler {
|
|
|
475
482
|
// 즉시 한 번 체크 (현재 시간이 지정된 시간이면 실행)
|
|
476
483
|
checkAndRun();
|
|
477
484
|
}
|
|
485
|
+
/**
|
|
486
|
+
* 주간 관계 추출 품질 검증 작업 스케줄링
|
|
487
|
+
*/
|
|
488
|
+
scheduleWeeklyRelationValidation() {
|
|
489
|
+
const checkAndRun = async () => {
|
|
490
|
+
const now = new Date();
|
|
491
|
+
const currentDayOfWeek = now.getDay(); // 0=일요일, 6=토요일
|
|
492
|
+
const currentHour = now.getHours();
|
|
493
|
+
// 지정된 요일과 시간에 실행
|
|
494
|
+
if (currentDayOfWeek === this.config.relationValidationDayOfWeek &&
|
|
495
|
+
currentHour === this.config.relationValidationHour) {
|
|
496
|
+
// 이미 오늘 실행했는지 확인 (lastExecution 체크)
|
|
497
|
+
const lastExecution = this.lastExecution.get('weekly_relation_validation');
|
|
498
|
+
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
|
|
499
|
+
if (!lastExecution || lastExecution < today) {
|
|
500
|
+
await this.runWeeklyRelationValidation();
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
};
|
|
504
|
+
// 매 시간마다 체크
|
|
505
|
+
const checkInterval = 60 * 60 * 1000; // 1시간마다 체크
|
|
506
|
+
const intervalId = setInterval(checkAndRun, checkInterval);
|
|
507
|
+
this.intervals.set('weekly_relation_validation', intervalId);
|
|
508
|
+
// 즉시 한 번 체크 (시작 시점이 실행 시간이면 바로 실행)
|
|
509
|
+
checkAndRun();
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
* 주간 관계 추출 품질 검증 실행
|
|
513
|
+
*/
|
|
514
|
+
async runWeeklyRelationValidation() {
|
|
515
|
+
const startTime = new Date();
|
|
516
|
+
const result = {
|
|
517
|
+
jobType: 'weekly_relation_validation',
|
|
518
|
+
startTime,
|
|
519
|
+
endTime: new Date(),
|
|
520
|
+
duration: 0,
|
|
521
|
+
success: false,
|
|
522
|
+
processed: 0,
|
|
523
|
+
errors: [],
|
|
524
|
+
warnings: []
|
|
525
|
+
};
|
|
526
|
+
try {
|
|
527
|
+
this.log('Starting weekly relation validation...');
|
|
528
|
+
// 주간 검증 스크립트 실행
|
|
529
|
+
const scriptPath = join(process.cwd(), 'scripts', 'weekly-relation-validation.ts');
|
|
530
|
+
const scriptArgs = ['--method', 'hybrid', '--allow-soft-fail'];
|
|
531
|
+
const childProcess = spawn('npx', ['tsx', scriptPath, ...scriptArgs], {
|
|
532
|
+
cwd: process.cwd(),
|
|
533
|
+
stdio: ['ignore', 'pipe', 'pipe'],
|
|
534
|
+
env: { ...process.env }
|
|
535
|
+
});
|
|
536
|
+
let stdout = '';
|
|
537
|
+
let stderr = '';
|
|
538
|
+
childProcess.stdout?.on('data', (data) => {
|
|
539
|
+
stdout += data.toString();
|
|
540
|
+
});
|
|
541
|
+
childProcess.stderr?.on('data', (data) => {
|
|
542
|
+
stderr += data.toString();
|
|
543
|
+
});
|
|
544
|
+
await new Promise((resolve, reject) => {
|
|
545
|
+
childProcess.on('close', (code) => {
|
|
546
|
+
if (code === 0) {
|
|
547
|
+
resolve();
|
|
548
|
+
}
|
|
549
|
+
else {
|
|
550
|
+
reject(new Error(`Script exited with code ${code}\n${stderr}`));
|
|
551
|
+
}
|
|
552
|
+
});
|
|
553
|
+
childProcess.on('error', (error) => {
|
|
554
|
+
reject(error);
|
|
555
|
+
});
|
|
556
|
+
});
|
|
557
|
+
result.success = true;
|
|
558
|
+
result.endTime = new Date();
|
|
559
|
+
result.duration = result.endTime.getTime() - startTime.getTime();
|
|
560
|
+
result.processed = 1;
|
|
561
|
+
this.log('Weekly relation validation completed successfully', {
|
|
562
|
+
duration: result.duration,
|
|
563
|
+
stdout: stdout.substring(0, 500) // 처음 500자만 로그
|
|
564
|
+
});
|
|
565
|
+
}
|
|
566
|
+
catch (error) {
|
|
567
|
+
result.endTime = new Date();
|
|
568
|
+
result.duration = result.endTime.getTime() - startTime.getTime();
|
|
569
|
+
result.errors.push(error instanceof Error ? error.message : String(error));
|
|
570
|
+
this.log('Weekly relation validation failed', {
|
|
571
|
+
error: error instanceof Error ? error.message : String(error),
|
|
572
|
+
duration: result.duration
|
|
573
|
+
}, 'error');
|
|
574
|
+
}
|
|
575
|
+
return result;
|
|
576
|
+
}
|
|
478
577
|
/**
|
|
479
578
|
* Consolidation Score 전체 스윕 작업 실행
|
|
480
579
|
*/
|