cyber-mysql-openai
Version:
Intelligent natural language to SQL translator with self-correction capabilities using OpenAI and MySQL
111 lines (110 loc) • 3.83 kB
TypeScript
import { CyberMySQLOpenAIConfig, TranslationResult, SQLResult, NaturalResponseOptions, CacheStats } from '../types';
import { SupportedLanguage } from '../utils/i18n';
/**
* Clase principal que proporciona la funcionalidad para traducir
* lenguaje natural a SQL y ejecutar consultas
*/
export declare class CyberMySQLOpenAI {
private openai;
private dbManager;
private logger;
private responseFormatter;
private maxReflections;
private openaiModel;
private i18n;
private cache;
private cacheEnabled;
/**
* Constructor de la clase CyberMySQLOpenAI
* @param config - Configuración de la librería
*/
constructor(config?: Partial<CyberMySQLOpenAIConfig>);
/**
* Procesa una consulta en lenguaje natural, la traduce a SQL y la ejecuta
* @param prompt - Consulta en lenguaje natural
* @param options - Opciones adicionales
* @returns Resultado de la consulta
*/
query(prompt: string, options?: NaturalResponseOptions): Promise<TranslationResult>;
/**
* Ejecuta una consulta SQL directamente
* @param sql - Consulta SQL
* @param options - Opciones adicionales
* @returns Resultado de la consulta
*/
executeSQL(sql: string, options?: NaturalResponseOptions): Promise<SQLResult>;
/**
* Cierra la conexión a la base de datos
*/
close(): Promise<void>;
/**
* Cambia el idioma de las respuestas
* @param language - Idioma a establecer ('es' | 'en')
*/
setLanguage(language: SupportedLanguage): void;
/**
* Obtiene el idioma actual
* @returns Idioma actual
*/
getLanguage(): SupportedLanguage;
/**
* Genera SQL a partir de lenguaje natural usando OpenAI
* @param prompt - Consulta en lenguaje natural
* @param schema - Esquema de la base de datos
* @param requestId - ID de la solicitud para logging
* @returns Consulta SQL generada
*/
private generateSQL;
/**
* Intenta corregir una consulta SQL fallida mediante reflexión
* @param prompt - Consulta original en lenguaje natural
* @param sql - Consulta SQL que falló
* @param errorMessage - Mensaje de error
* @param schema - Esquema de la base de datos
* @param requestId - ID de la solicitud para logging
* @returns Resultado después de intentar corregir
*/
private reflectAndFix;
/**
* Genera una reflexión sobre un error en una consulta SQL
* @param prompt - Consulta original en lenguaje natural
* @param sql - Consulta SQL que falló
* @param errorMessage - Mensaje de error
* @param schema - Esquema de la base de datos
* @param requestId - ID de la solicitud para logging
* @returns Reflexión y SQL corregido
*/
private generateReflection;
/**
* Genera un hash del esquema de la base de datos para usar como clave de cache
* @param schema - Esquema de la base de datos
* @returns Hash del esquema
*/
private generateSchemaHash;
/**
* Obtiene estadísticas del cache
* @returns Estadísticas del cache o null si está deshabilitado
*/
getCacheStats(): CacheStats | null;
/**
* Limpia el cache completamente
*/
clearCache(): void;
/**
* Invalida entradas del cache relacionadas con una tabla específica
* @param tableName - Nombre de la tabla
* @returns Número de entradas invalidadas
*/
invalidateCacheByTable(tableName: string): number;
/**
* Habilita o deshabilita el cache dinámicamente
* @param enabled - Estado del cache
*/
setCacheEnabled(enabled: boolean): void;
/**
* Verifica si el cache está habilitado
* @returns Estado del cache
*/
isCacheEnabled(): boolean;
}
export default CyberMySQLOpenAI;