Skip to content

devjaime/taller_intermedio_python_ia

Repository files navigation

README - Automatización de Consultas SQL con Voz, Whisper y Llama

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.

Instalación de dependencias

Asegúrate de tener Python 3.8 o superior instalado.

1. Clonar el repositorio

$ git clone https://github.com/devjaime/taller_intermedio_python_ia.git
$ cd <nombre-del-directorio>

2. Crear un entorno virtual

$ python -m venv .venv
$ source .venv/bin/activate  # En Windows: .venv\Scripts\activate

3. Instalar las dependencias necesarias

$ pip install streamlit sounddevice scipy psycopg2-binary pandas requests

Configuración

1. API Key de Groq

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.

2. Configuración de la base de datos

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);

Ejecución

1. Inicia la aplicación

Ejecuta el siguiente comando para iniciar la aplicación:

$ streamlit run app.py

2. Pasos en la interfaz

  1. Configura la API Key: Ingresa tu API Key de Groq en el panel lateral izquierdo.
  2. Configura la base de datos: Completa los detalles de tu conexión a PostgreSQL.
  3. 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.
  4. 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.
  5. 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.
  6. Exporta los resultados:
    • Descarga los resultados en formato CSV con el botón correspondiente.

Instalación de PyCharm Community y creación de entornos virtuales

1. Descarga e instalación de PyCharm Community

2. Configura el proyecto en PyCharm

  1. Abre PyCharm y selecciona "Open" para importar el repositorio clonado.
  2. 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.
  3. PyCharm detectará automáticamente las dependencias del proyecto.

3. Instala dependencias adicionales

Abre el terminal integrado en PyCharm y ejecuta:

$ pip install -r requirements.txt  # Si el archivo requirements.txt está disponible

Estructura del proyecto

├── 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)

Notas importantes

  1. Formatos de audio compatibles:

    • El archivo grabado se guarda en formato WAV, compatible con la API de Groq.
  2. Errores comunes:

    • Si recibes un error relacionado con el formato Content-Type, asegúrate de que el archivo de audio se envía como multipart/form-data.
    • Si la consulta SQL generada no es válida, edítala antes de ejecutarla.
  3. Limitaciones:

    • La API de Groq puede tener restricciones de tokens o latencia en solicitudes concurrentes.

instalaciòn docker postgress

Iniciar la Base de Datos con Docker

Este proyecto incluye un archivo Dockerfile para configurar y ejecutar PostgreSQL localmente con un esquema inicial.

1. Construir la imagen de Docker

Ejecuta el siguiente comando en el directorio donde se encuentra el Dockerfile:

docker build -t postgres-local .
  1. 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
  1. Verificar el contenedor Confirma que el contenedor esté ejecutándose correctamente:
docker ps

Recursos

Licencia

Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published