Este proyecto utiliza Streamlit, Groq API, y PostgreSQL para automatizar la generación y ejecución de consultas SQL basadas en transcripciones de voz. El flujo incluye grabar audio, transcribirlo, generar consultas SQL con un modelo de lenguaje grande (LLM) y ejecutarlas en una base de datos.
Asegúrate de tener Python 3.8 o superior instalado.
$ git clone https://github.com/devjaime/taller_intermedio_python_ia.git
$ cd <nombre-del-directorio>
$ python -m venv .venv
$ source .venv/bin/activate # En Windows: .venv\Scripts\activate
$ pip install streamlit sounddevice scipy psycopg2-binary pandas requests
Este proyecto requiere una API Key válida de Groq para transcribir audio y generar consultas SQL.
- Ingresa tu API Key al ejecutar la aplicación en el campo de configuración de la barra lateral.
Proporciona los siguientes detalles para conectarte a tu base de datos PostgreSQL en la barra lateral:
- descargar postgres: https://www.postgresql.org/download/
- Host: Dirección de tu servidor de base de datos (por defecto:
localhost
) - Nombre de la base de datos: Nombre de tu base de datos (por defecto:
postgres
) - Usuario: Usuario de la base de datos (por defecto:
postgres
) - Contraseña: Contraseña de la base de datos
- Crear el esquema de la tabla:
CREATE TABLE ventas (
id SERIAL PRIMARY KEY,
producto VARCHAR(100) NOT NULL,
cantidad INT NOT NULL,
precio DECIMAL(10, 2) NOT NULL,
fecha TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
- Crear el listado de ventas:
INSERT INTO ventas (producto, cantidad, precio) VALUES
('Laptop', 5, 999.99),
('Teclado', 10, 49.99),
('Ratón', 15, 19.99);
Ejecuta el siguiente comando para iniciar la aplicación:
$ streamlit run app.py
- Configura la API Key: Ingresa tu API Key de Groq en el panel lateral izquierdo.
- Configura la base de datos: Completa los detalles de tu conexión a PostgreSQL.
- Graba audio:
- Haz clic en el botón "Grabar Audio" para capturar tu voz.
- El audio se guardará en formato WAV y se transcribirá usando la API de Groq.
- Genera la consulta SQL:
- Basado en la transcripción, se generará automáticamente una consulta SQL.
- Revisa y edita la consulta generada si es necesario.
- Ejecuta la consulta:
- Si la consulta generada es válida, se ejecutará en la base de datos configurada.
- Los resultados se mostrarán en una tabla interactiva.
- Exporta los resultados:
- Descarga los resultados en formato CSV con el botón correspondiente.
- Descarga PyCharm Community desde su página oficial: https://www.jetbrains.com/pycharm/download
- Sigue las instrucciones del instalador para tu sistema operativo.
- Abre PyCharm y selecciona "Open" para importar el repositorio clonado.
- Configura el intérprete del proyecto:
- Ve a File > Settings > Project > Python Interpreter.
- Haz clic en "Add Interpreter" y selecciona Virtualenv Environment.
- Escoge la ubicación de tu entorno virtual
.venv
creado anteriormente.
- PyCharm detectará automáticamente las dependencias del proyecto.
Abre el terminal integrado en PyCharm y ejecuta:
$ pip install -r requirements.txt # Si el archivo requirements.txt está disponible
├── app.py # Código principal de la aplicación
├── audio.wav # Archivo de audio grabado (temporal)
├── README.md # Documentación del proyecto
└── requirements.txt # Lista de dependencias (opcional)
-
Formatos de audio compatibles:
- El archivo grabado se guarda en formato WAV, compatible con la API de Groq.
-
Errores comunes:
- Si recibes un error relacionado con el formato
Content-Type
, asegúrate de que el archivo de audio se envía comomultipart/form-data
. - Si la consulta SQL generada no es válida, edítala antes de ejecutarla.
- Si recibes un error relacionado con el formato
-
Limitaciones:
- La API de Groq puede tener restricciones de tokens o latencia en solicitudes concurrentes.
Este proyecto incluye un archivo Dockerfile
para configurar y ejecutar PostgreSQL localmente con un esquema inicial.
Ejecuta el siguiente comando en el directorio donde se encuentra el Dockerfile
:
docker build -t postgres-local .
- Ejecutar el contenedor Inicia el contenedor con el siguiente comando:
docker run -d \
--name postgres-container \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgres1 \
-e POSTGRES_DB=db_test \
-p 5433:5432 \
postgres-local
- Verificar el contenedor Confirma que el contenedor esté ejecutándose correctamente:
docker ps
- Documentación de Groq: https://console.groq.com/docs/
- Documentación de Streamlit: https://docs.streamlit.io/
- Documentación de PostgreSQL: https://www.postgresql.org/docs/
- Guía de PyCharm: https://www.jetbrains.com/help/pycharm/
Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE
para más detalles.