UNPKG

cyber-mysql-openai

Version:

Intelligent natural language to SQL translator with self-correction capabilities using OpenAI and MySQL

92 lines (91 loc) 2.27 kB
/** * Sistema de cache en memoria para consultas SQL * Optimiza el rendimiento almacenando resultados de consultas frecuentes */ export interface CacheEntry { sql: string; results: any[]; naturalResponse: string; timestamp: number; ttl: number; language: string; executionTime: number; } export interface CacheStats { totalEntries: number; hits: number; misses: number; hitRate: number; memoryUsage: number; oldestEntry: number; newestEntry: number; } export declare class MemoryCache { private static instance; private cache; private stats; private maxSize; private cleanupInterval; private enabled; private constructor(); /** * Obtiene la instancia singleton del cache */ static getInstance(maxSize?: number, cleanupIntervalMs?: number): MemoryCache; /** * Genera una clave de cache normalizada */ private generateKey; /** * Genera un hash simple para strings */ private hashString; /** * Determina el TTL basado en el tipo de consulta SQL */ private getTTLByQueryType; /** * Obtiene una entrada del cache */ get(prompt: string, language: string, schemaHash: string): CacheEntry | null; /** * Almacena una entrada en el cache */ set(prompt: string, language: string, schemaHash: string, sql: string, results: any[], naturalResponse: string, executionTime: number): void; /** * Elimina las entradas más antiguas cuando el cache está lleno */ private evictOldest; /** * Limpia entradas expiradas */ private cleanup; /** * Invalida entradas relacionadas con una tabla específica */ invalidateByTable(tableName: string): number; /** * Obtiene estadísticas del cache */ getStats(): CacheStats; /** * Estima el uso de memoria del cache */ private estimateMemoryUsage; /** * Limpia todo el cache */ clear(): void; /** * Habilita o deshabilita el cache */ setEnabled(enabled: boolean): void; /** * Verifica si el cache está habilitado */ isEnabled(): boolean; /** * Limpia los recursos del cache */ destroy(): void; }