/** * Triple 추출 결과 캐시 서비스 * * PRD 7.3: 캐싱 (TTL 조정 및 설정 가능) * - 동일한 content에 대한 Triple 추출 결과 캐싱 * - 캐시 키: content의 해시값 (content_hash) * - 캐싱 TTL: 6시간 (기본값, 설정 가능) * - 캐시 크기: 100개 항목 (설정 가능) * - LRU 캐시 활용 */ import type { TripleExtractionResult } from '../types/triple-extraction.js'; /** * Triple 추출 결과 캐시 서비스 */ export declare class TripleCacheService { private cache; private readonly defaultTTL; private readonly maxSize; /** * @param maxSize 최대 캐시 크기 (기본값: 100) * @param ttl TTL (밀리초, 기본값: 6시간) */ constructor(maxSize?: number, ttl?: number); /** * 캐시 키 생성 (content_hash 기반) * * PRD 6.12: 캐시 키 생성 로직 구현 * - content의 해시값을 사용하여 캐시 키 생성 * - SHA-256 해시 사용 (충돌 방지) * * @param content Episodic Memory의 content (observation 텍스트) * @returns 캐시 키 */ generateCacheKey(content: string): string; /** * 캐시에서 Triple 추출 결과 가져오기 * * PRD 6.14: TripleExtractionService에 캐싱 통합 * - 캐시 히트 시 LLM 호출 생략 * * @param content Episodic Memory의 content * @returns Triple 추출 결과 또는 null (캐시 미스) */ get(content: string): TripleExtractionResult | null; /** * 캐시에 Triple 추출 결과 저장 * * PRD 6.14: TripleExtractionService에 캐싱 통합 * - 성공한 Triple 추출 결과만 캐시에 저장 * * @param content Episodic Memory의 content * @param result Triple 추출 결과 * @param ttl TTL (밀리초, 선택사항, 기본값 사용) */ set(content: string, result: TripleExtractionResult, ttl?: number): void; /** * 캐시에서 항목 삭제 * * @param content Episodic Memory의 content * @returns 삭제 성공 여부 */ delete(content: string): boolean; /** * 캐시 비우기 */ clear(): void; /** * 캐시 통계 반환 * * @returns 캐시 통계 */ getStats(): import("../../infrastructure/cache/cache-service.js").CacheStats; /** * TTL 기반 자동 무효화 * * PRD 6.13: 캐시 TTL 기반 자동 무효화 구현 * - 만료된 항목 자동 제거 * - CacheService의 내장 TTL 체크 활용 * * @returns 정리된 항목 수 */ cleanup(): number; /** * 캐시 크기 반환 * * @returns 현재 캐시 크기 */ size(): number; } //# sourceMappingURL=triple-cache.d.ts.map