memento-mcp-server 1.14.0 → 1.15.0-c
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/dist/domains/memory/tools/convert-episodic-to-semantic-tool.d.ts +18 -0
- package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.d.ts.map +1 -0
- package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.js +346 -0
- package/dist/domains/memory/tools/convert-episodic-to-semantic-tool.js.map +1 -0
- package/dist/domains/memory/tools/remember-tool.d.ts.map +1 -1
- package/dist/domains/memory/tools/remember-tool.js +182 -1
- package/dist/domains/memory/tools/remember-tool.js.map +1 -1
- package/dist/infrastructure/database/database/migration/migrations/005-relation-engine-schema.sql +7 -7
- package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.d.ts +65 -0
- package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.d.ts.map +1 -0
- package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.js +250 -0
- package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.js.map +1 -0
- package/dist/infrastructure/database/database/migration/migrations/008-arigraph-schema-expansion.sql +86 -0
- package/dist/infrastructure/logging/triple-extraction-logger.d.ts +92 -0
- package/dist/infrastructure/logging/triple-extraction-logger.d.ts.map +1 -0
- package/dist/infrastructure/logging/triple-extraction-logger.js +194 -0
- package/dist/infrastructure/logging/triple-extraction-logger.js.map +1 -0
- package/dist/infrastructure/scheduler/batch-scheduler.d.ts +57 -0
- package/dist/infrastructure/scheduler/batch-scheduler.d.ts.map +1 -1
- package/dist/infrastructure/scheduler/batch-scheduler.js +220 -0
- package/dist/infrastructure/scheduler/batch-scheduler.js.map +1 -1
- package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.d.ts +194 -0
- package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.d.ts.map +1 -0
- package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.js +639 -0
- package/dist/infrastructure/scheduler/jobs/triple-extraction-batch-job.js.map +1 -0
- package/dist/services/semantic-memory/semantic-memory-statistics.d.ts +64 -0
- package/dist/services/semantic-memory/semantic-memory-statistics.d.ts.map +1 -0
- package/dist/services/semantic-memory/semantic-memory-statistics.js +113 -0
- package/dist/services/semantic-memory/semantic-memory-statistics.js.map +1 -0
- package/dist/services/semantic-memory/semantic-memory-update-service.d.ts +257 -0
- package/dist/services/semantic-memory/semantic-memory-update-service.d.ts.map +1 -0
- package/dist/services/semantic-memory/semantic-memory-update-service.js +696 -0
- package/dist/services/semantic-memory/semantic-memory-update-service.js.map +1 -0
- package/dist/services/triple-extraction/entity-linker.d.ts +55 -0
- package/dist/services/triple-extraction/entity-linker.d.ts.map +1 -0
- package/dist/services/triple-extraction/entity-linker.js +154 -0
- package/dist/services/triple-extraction/entity-linker.js.map +1 -0
- package/dist/services/triple-extraction/predicate-canonicalizer.d.ts +63 -0
- package/dist/services/triple-extraction/predicate-canonicalizer.d.ts.map +1 -0
- package/dist/services/triple-extraction/predicate-canonicalizer.js +166 -0
- package/dist/services/triple-extraction/predicate-canonicalizer.js.map +1 -0
- package/dist/services/triple-extraction/triple-extraction-service.d.ts +181 -0
- package/dist/services/triple-extraction/triple-extraction-service.d.ts.map +1 -0
- package/dist/services/triple-extraction/triple-extraction-service.js +907 -0
- package/dist/services/triple-extraction/triple-extraction-service.js.map +1 -0
- package/dist/services/triple-extraction/triple-extraction-statistics.d.ts +74 -0
- package/dist/services/triple-extraction/triple-extraction-statistics.d.ts.map +1 -0
- package/dist/services/triple-extraction/triple-extraction-statistics.js +146 -0
- package/dist/services/triple-extraction/triple-extraction-statistics.js.map +1 -0
- package/dist/shared/types/index.d.ts +1 -0
- package/dist/shared/types/index.d.ts.map +1 -1
- package/dist/shared/types/index.js.map +1 -1
- package/dist/shared/types/triple-extraction.d.ts +99 -0
- package/dist/shared/types/triple-extraction.d.ts.map +1 -0
- package/dist/shared/types/triple-extraction.js +6 -0
- package/dist/shared/types/triple-extraction.js.map +1 -0
- package/dist/shared/utils/pii-masker.d.ts +67 -0
- package/dist/shared/utils/pii-masker.d.ts.map +1 -0
- package/dist/shared/utils/pii-masker.js +205 -0
- package/dist/shared/utils/pii-masker.js.map +1 -0
- package/dist/shared/utils/prompt-template-loader.d.ts +42 -0
- package/dist/shared/utils/prompt-template-loader.d.ts.map +1 -0
- package/dist/shared/utils/prompt-template-loader.js +92 -0
- package/dist/shared/utils/prompt-template-loader.js.map +1 -0
- package/dist/shared/utils/triple-cache.d.ts +90 -0
- package/dist/shared/utils/triple-cache.d.ts.map +1 -0
- package/dist/shared/utils/triple-cache.js +124 -0
- package/dist/shared/utils/triple-cache.js.map +1 -0
- package/dist/tools/index.d.ts +2 -1
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -1
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/types.d.ts +1 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/types.js +2 -0
- package/dist/tools/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Triple 추출 서비스
|
|
3
|
+
* LLM을 사용하여 Episodic Memory의 observation에서 (subject, predicate, object) 형태의 지식 그래프 트리플을 추출합니다.
|
|
4
|
+
*
|
|
5
|
+
* AriGraph 파이프라인의 핵심 컴포넌트로, Episodic Memory에서 Semantic Memory로의 자동 학습을 지원합니다.
|
|
6
|
+
*
|
|
7
|
+
* 비용 최적화 전략:
|
|
8
|
+
* - Rate limit (토큰 버킷 알고리즘)
|
|
9
|
+
* - 캐싱 (TTL 기반)
|
|
10
|
+
* - 비용 모니터링
|
|
11
|
+
* - 에러 처리 및 폴백
|
|
12
|
+
*/
|
|
13
|
+
import type { TripleExtractionResult, TripleExtractionOptions } from '../../shared/types/triple-extraction.js';
|
|
14
|
+
/**
|
|
15
|
+
* LLM 비용 모니터링
|
|
16
|
+
*/
|
|
17
|
+
interface LLMCostMetrics {
|
|
18
|
+
totalCalls: number;
|
|
19
|
+
totalTokens: number;
|
|
20
|
+
totalCost: number;
|
|
21
|
+
lastReset: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Triple 추출 서비스
|
|
25
|
+
*/
|
|
26
|
+
export declare class TripleExtractionService {
|
|
27
|
+
private openaiClient;
|
|
28
|
+
private geminiClient;
|
|
29
|
+
private readonly preferredProvider;
|
|
30
|
+
private readonly cache;
|
|
31
|
+
private readonly rateLimiter;
|
|
32
|
+
private readonly costMetrics;
|
|
33
|
+
private readonly canonicalizer;
|
|
34
|
+
private readonly entityLinker;
|
|
35
|
+
private readonly statistics;
|
|
36
|
+
private readonly DEFAULT_TEMPERATURE;
|
|
37
|
+
private readonly DEFAULT_MAX_TOKENS;
|
|
38
|
+
private readonly CACHE_SIZE;
|
|
39
|
+
private readonly CACHE_TTL_MS;
|
|
40
|
+
private readonly RATE_LIMITER_CAPACITY;
|
|
41
|
+
private readonly RATE_LIMITER_REFILL_RATE;
|
|
42
|
+
private readonly SUCCESS_SAMPLING_RATE;
|
|
43
|
+
constructor();
|
|
44
|
+
/**
|
|
45
|
+
* LLM 클라이언트 초기화
|
|
46
|
+
* 환경 변수 LLM_PROVIDER에 따라 프로바이더 선택
|
|
47
|
+
*/
|
|
48
|
+
private initializeClients;
|
|
49
|
+
/**
|
|
50
|
+
* LLM 서비스 사용 가능 여부 확인
|
|
51
|
+
*/
|
|
52
|
+
isAvailable(): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* Observation 텍스트에서 Triple 추출
|
|
55
|
+
*
|
|
56
|
+
* @param observation Episodic Memory의 content (observation 텍스트)
|
|
57
|
+
* @param options 추출 옵션
|
|
58
|
+
* @param memoryId Episodic Memory ID (로깅용, 선택사항)
|
|
59
|
+
* @returns Triple 추출 결과
|
|
60
|
+
*/
|
|
61
|
+
extractTriples(observation: string, options?: TripleExtractionOptions, memoryId?: string): Promise<TripleExtractionResult>;
|
|
62
|
+
/**
|
|
63
|
+
* LLM을 사용하여 Triple 추출
|
|
64
|
+
*
|
|
65
|
+
* @param observation Observation 텍스트
|
|
66
|
+
* @param provider LLM Provider
|
|
67
|
+
* @param options 추출 옵션
|
|
68
|
+
* @returns Triple 추출 결과와 rawLLMOutput
|
|
69
|
+
*/
|
|
70
|
+
private extractWithLLM;
|
|
71
|
+
/**
|
|
72
|
+
* OpenAI를 사용하여 Triple 추출
|
|
73
|
+
*/
|
|
74
|
+
private extractWithOpenAI;
|
|
75
|
+
/**
|
|
76
|
+
* Gemini를 사용하여 Triple 추출
|
|
77
|
+
*/
|
|
78
|
+
private extractWithGemini;
|
|
79
|
+
/**
|
|
80
|
+
* Ollama를 사용하여 Triple 추출
|
|
81
|
+
*/
|
|
82
|
+
private extractWithOllama;
|
|
83
|
+
/**
|
|
84
|
+
* Ollama 모델 존재 여부 확인
|
|
85
|
+
*/
|
|
86
|
+
private checkOllamaModel;
|
|
87
|
+
/**
|
|
88
|
+
* LLM 응답을 파싱하여 Triple 배열 추출
|
|
89
|
+
*
|
|
90
|
+
* @param responseText LLM 원본 응답 텍스트
|
|
91
|
+
* @returns 파싱 결과 (success, triples, error)
|
|
92
|
+
*/
|
|
93
|
+
private parseLLMResponse;
|
|
94
|
+
/**
|
|
95
|
+
* JSON 텍스트에서 JSON 객체 추출
|
|
96
|
+
*/
|
|
97
|
+
private extractJSON;
|
|
98
|
+
/**
|
|
99
|
+
* Triple 유효성 검증
|
|
100
|
+
*/
|
|
101
|
+
private isValidTriple;
|
|
102
|
+
/**
|
|
103
|
+
* 비용 메트릭 업데이트
|
|
104
|
+
*/
|
|
105
|
+
private updateCostMetrics;
|
|
106
|
+
/**
|
|
107
|
+
* 실패 사유 분류
|
|
108
|
+
* 에러 타입과 컨텍스트를 기반으로 적절한 실패 사유를 반환합니다.
|
|
109
|
+
*
|
|
110
|
+
* @param error 에러 메시지 또는 파싱 결과의 error
|
|
111
|
+
* @param rawLLMOutput 원본 LLM 응답 (선택사항)
|
|
112
|
+
* @param errorType 파싱 결과의 에러 타입 (선택사항)
|
|
113
|
+
* @returns 분류된 실패 사유
|
|
114
|
+
*/
|
|
115
|
+
private classifyFailureReason;
|
|
116
|
+
/**
|
|
117
|
+
* Triple 추출 결과 로깅
|
|
118
|
+
* rawLLMOutput 저장 정책에 따라 로그 파일에 저장합니다.
|
|
119
|
+
*
|
|
120
|
+
* 저장 정책:
|
|
121
|
+
* - 성공 케이스: 10% 샘플링
|
|
122
|
+
* - 실패 케이스: 100% 저장
|
|
123
|
+
* - PII 마스킹은 로거에서 처리
|
|
124
|
+
*
|
|
125
|
+
* @param result Triple 추출 결과
|
|
126
|
+
* @param memoryId Episodic Memory ID (선택사항)
|
|
127
|
+
* @param observation Observation 텍스트 (선택사항)
|
|
128
|
+
* @param rawLLMOutput 원본 LLM 응답 (로깅용)
|
|
129
|
+
*/
|
|
130
|
+
private logExtractionResult;
|
|
131
|
+
/**
|
|
132
|
+
* 에러 타입 분류
|
|
133
|
+
* 에러의 특성에 따라 분류하여 적절한 처리 전략을 수립합니다.
|
|
134
|
+
*
|
|
135
|
+
* @param error 에러 객체
|
|
136
|
+
* @returns 에러 타입
|
|
137
|
+
*/
|
|
138
|
+
private classifyErrorType;
|
|
139
|
+
/**
|
|
140
|
+
* Triple 추출 단계별 성공 여부 추적
|
|
141
|
+
* 각 triple에 대해 canonicalization과 entityLinking을 수행하여 steps를 생성합니다.
|
|
142
|
+
*
|
|
143
|
+
* @param triples 추출된 triple 배열
|
|
144
|
+
* @returns 추적된 steps 정보
|
|
145
|
+
*/
|
|
146
|
+
private trackExtractionSteps;
|
|
147
|
+
/**
|
|
148
|
+
* 실패 결과 생성
|
|
149
|
+
*
|
|
150
|
+
* @param failureReason 실패 사유
|
|
151
|
+
* @param rawLLMOutput 원본 LLM 응답 또는 에러 메시지 (선택사항)
|
|
152
|
+
* @returns 실패 결과
|
|
153
|
+
*/
|
|
154
|
+
private createFailureResult;
|
|
155
|
+
/**
|
|
156
|
+
* 비용 통계 조회
|
|
157
|
+
*/
|
|
158
|
+
getCostMetrics(): LLMCostMetrics;
|
|
159
|
+
/**
|
|
160
|
+
* Triple 추출 통계 조회
|
|
161
|
+
*
|
|
162
|
+
* PRD 8.1: Triple 추출 통계
|
|
163
|
+
* - 성공률: 성공한 Triple 추출 수 / 전체 시도 수
|
|
164
|
+
* - 평균 추출 시간
|
|
165
|
+
* - LLM 호출 횟수 및 비용
|
|
166
|
+
* - 실패 사유별 통계
|
|
167
|
+
*
|
|
168
|
+
* @returns Triple 추출 통계
|
|
169
|
+
*/
|
|
170
|
+
getStatistics(): import("./triple-extraction-statistics.js").TripleExtractionStatistics;
|
|
171
|
+
/**
|
|
172
|
+
* 실패 사유별 통계 조회
|
|
173
|
+
*
|
|
174
|
+
* PRD 8.1: 실패 사유별 통계
|
|
175
|
+
*
|
|
176
|
+
* @returns 실패 사유별 통계
|
|
177
|
+
*/
|
|
178
|
+
getFailureReasonStatistics(): Record<string, number>;
|
|
179
|
+
}
|
|
180
|
+
export {};
|
|
181
|
+
//# sourceMappingURL=triple-extraction-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"triple-extraction-service.d.ts","sourceRoot":"","sources":["../../../src/services/triple-extraction/triple-extraction-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAYH,OAAO,KAAK,EAEV,sBAAsB,EACtB,uBAAuB,EAIxB,MAAM,yCAAyC,CAAC;AAyDjD;;GAEG;AACH,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,YAAY,CAAmC;IACvD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwC;IAC1E,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAqB;IAC3C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IACvD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAG/D,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAO;IAC3C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAO;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IACnD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAK;IAC3C,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAK;IAG9C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAO;;IAwB7C;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAoDzB;;OAEG;IACH,WAAW,IAAI,OAAO;IAItB;;;;;;;OAOG;IACG,cAAc,CAClB,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,uBAA4B,EACrC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,CAAC;IAsFlC;;;;;;;OAOG;YACW,cAAc;IAsG5B;;OAEG;YACW,iBAAiB;IAiD/B;;OAEG;YACW,iBAAiB;IAgD/B;;OAEG;YACW,iBAAiB;IAuG/B;;OAEG;YACW,gBAAgB;IAmB9B;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB;IAuExB;;OAEG;IACH,OAAO,CAAC,WAAW;IAyBnB;;OAEG;IACH,OAAO,CAAC,aAAa;IAarB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;;;;;;;OAQG;IACH,OAAO,CAAC,qBAAqB;IAuD7B;;;;;;;;;;;;;OAaG;YACW,mBAAmB;IAyCjC;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAqDzB;;;;;;OAMG;IACH,OAAO,CAAC,oBAAoB;IAkD5B;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAmB3B;;OAEG;IACH,cAAc,IAAI,cAAc;IAIhC;;;;;;;;;;OAUG;IACH,aAAa;IAIb;;;;;;OAMG;IACH,0BAA0B;CAG3B"}
|