Chat Conversacional + Bigquery + IA
Este proyecto implementa un chat conversacional inteligente que permite realizar análisis de datos de natalidad en Estados Unidos utilizando consultas en lenguaje natural. El sistema combina BigQuery para el acceso a datos, Gemini AI para la generación automática de consultas SQL, y Streamlit para una interfaz interactiva y visualizaciones.

Componentes Principales
- 🤖 Motor de IA Conversacional: Transforma preguntas en lenguaje natural a consultas SQL optimizadas usando Gemini AI
- 📊 Conexión BigQuery: Acceso directo a la base de datos pública de natalidad de Google Cloud Platform
- 📈 Visualización Automática: Generación inteligente de gráficos basados en los resultados de las consultas
- 💬 Interfaz Chat: Sistema de chat intuitivo que mantiene el historial de conversaciones
📦 Fuente de Datos
Los datos provienen del dataset público bigquery-public-data.samples.natality que contiene registros históricos de nacimientos en Estados Unidos desde 1969 hasta 2008. Esta base de datos incluye información detallada sobre:
| Campo | Descripción |
|---|---|
| year | Año de nacimiento (1969-2008) |
| state | Estado donde ocurrió el nacimiento |
| weight_pounds | Peso del bebé al nacer en libras |
| mother_age | Edad de la madre |
| gestation_weeks | Semanas de gestación |
| plurality | Número de bebés (1=simple, 2=gemelos, etc.) |
| is_male | Género del bebé (booleano) |
| mother_race | Raza de la madre (códigos numéricos) |
| father_age | Edad del padre |
| mother_married | Estado civil de la madre |
| cigarette_use | Uso de cigarrillos durante el embarazo |
| alcohol_use | Consumo de alcohol durante el embarazo |
| apgar_1min / apgar_5min | Puntuaciones Apgar del recién nacido |
Volumen de datos: Millones de registros de nacimientos procesados eficientemente a través de BigQuery.
🧠 Motor de IA Conversacional
El sistema utiliza gemini-2.0-flash-thinking-exp-1219 para interpretar preguntas en lenguaje natural y generar consultas SQL precisas. El proceso incluye:
Procesamiento de Consultas Naturales
- Análisis contextual de la pregunta del usuario
- Mapeo inteligente de conceptos a campos de la base de datos
- Validación automática de rangos temporales (evita consultas fuera del período 1969-2008)
- Optimización de sintaxis específica para BigQuery
Generación SQL Inteligente
-- Ejemplo de consulta generada automáticamente
SELECT
state,
AVG(weight_pounds) as peso_promedio,
COUNT(*) as total_nacimientos
FROM `bigquery-public-data.samples.natality`
WHERE year = 2005 AND weight_pounds IS NOT NULL
GROUP BY state
ORDER BY peso_promedio DESC
LIMIT 10