Este proyecto contiene el desarrollo de un agente capaz de interactuar con un motor de base de datos SQL (SQLite), utilizando lenguaje natural. Este sistema utiliza un razonador (LLM) con la capacidad de auto-correción de errores, generar salida de datos estructurada, con el objetivo de facilitar preguntas concretas de los usuarios.
- Orquestación : LangChain & LangGraph
- LLM : OpenAI (GPT-4o)
- Base de Datos: SQLite - Dataset (Chinook)
- Visualización : Plotly
El agente sigue un flujo de cadena de pensamiento (CoT), es decir, se provee una lógica de razonamiento, con el objetivo de dar un sólo resultado.
- Herramientas de búsqueda : Lista de tablas para entender en contexto global de la base de datos relacional.
- Pensamiento: Obtiene desde los
Create Tablede las tablas relevantes a la pregunta del usuario. - Escritura de consulta : Crea una consulta en SQL basada el motor de la base datos, en este caso SQLite.
- Ejecución y Validación: Ejecuta la consulta, con dos casos probables (acierto) y, caso de error (error) entra un bucle de correción.
- Salida: Entrega los resultados de la consulta del humano en Json estructurado y/o una visualización en caso de haberla solicitado.
- Clonar el repositorio:
git clone https://github.com/dbascunl/sql-agent.git - Instalar dependencias:
pip install -r requirements.txt - Configurar variables de entorno: Crear un archivo
.envcon tuOPENAI_API_KEY.
- Puedes escribirme a mi correo personal dbascunl@gmail.com