- description="Chatbot inteligente para análisis de facturación y nómina electrónica.",
- version="0.0.1"
Chatbot inteligente hackathon talentotech
- Daniel Mazo
- Robin Cardenas
- Veronica Moreno
- Daniela Muñoz
- Julian Salazar
- Procesamiento de Lenguaje Natural (NLP): Convierte tus preguntas en lenguaje natural en consultas SQL complejas.
- Integración con MariaDB: Conecta y extrae información directamente de tu base de datos MariaDB.
- Potenciado por Google Gemini: Utiliza la capacidad avanzada de Gemini para entender, razonar y generar respuestas.
- Respuestas Amigables: Un segundo LLM se encarga de transformar las respuestas técnicas de la base de datos en mensajes concisos y fáciles de entender para el usuario.
- API REST: Expone un endpoint HTTP para integrar el chatbot en cualquier aplicación externa.
- Python 3.13 +
- FastAPI: Framework web para construir la API REST.
- LangChain: Orquestación de LLMs, agentes y herramientas para interacción con bases de datos.
- Google Gemini (vía langchain-google-genai): Modelos de lenguaje grandes para el procesamiento de lenguaje natural y la generación de SQL/respuestas.
- mysql-connector-python: Driver de Python para conectar con la bases de dato.
- python-dotenv: Para la gestión segura de variables de entorno.
- httpx: Cliente HTTP asíncrono para interactuar con la API.
- ngrok: (Para desarrollo) Herramienta para exponer tu servidor local a Internet y probar webhooks.
Sigue estos pasos para poner a funcionar NiloBot en tu entorno local.
python -m venv venv
# En Windows:
.\venv\Scripts\activate
# En macOS/Linux:
source venv/bin/activatepip install -r requirements.txtEn .env
# .env
# --- Google Gemini API Key ---
# Obtén tu clave en Google AI Studio: https://aistudio.google.com/app/apikey
GOOGLE_API_KEY="TU_API_KEY_DE_GEMINI_AQUI"
# --- Database Connection ---
# Formato: mysql+mysqlconnector://usuario:contraseña@host:puerto/nombre_base_de_datos
# Ejemplo: mysql+mysqlconnector://admin:password@localhost:3306/mi_empresa_db
DATABASE_URL="mysql+mysqlconnector://tu_usuario:tu_password@tu_host:3306/nombre_de_tu_db"
Importante: Asegúrate de reemplazar los valores placeholder con tus credenciales reales.
Asegúrate de que tu base de datos esté funcionando y accesible desde tu_host:3306 (o el puerto que uses). La estructura de las tablas (esquema) en tu base de datos es crucial, ya que el chatbot la usará para generar consultas SQL. NiloBot introspectará automáticamente todas las tablas disponibles en la nombre_de_tu_db especificada.
Desde la raíz de tu proyecto, inicia el servidor FastAPI.
uvicorn main:app --host 0.0.0.0 --port 8000 --reload- Probar la Conexión a la Base de Datos
Puedes verificar que NiloBot se conecta a tu base de datos y lee el esquema ejecutando directamente el script de conexión:
python database/connection.pyDeberías ver mensajes de "Conexión a la base de datos exitosa" y una parte del esquema. 2. Probar la API REST del Chatbot
Accede a la documentación interactiva de FastAPI en tu navegador:
Aquí podrás probar el endpoint /chat enviando mensajes y viendo las respuestas de tu chatbot. 3. exponer tu servidor a Internet
- Iniciar ngrok
En una nueva terminal (mientras FastAPI sigue ejecutándose), navega a la carpeta donde descomprimiste ngrok y ejecútalo para exponer el puerto 8000: Bash
./ngrok http 8000 # macOS/Linux
ngrok http 8000 # Windows
ngrok te proporcionará una URL HTTPS pública temporal (ej., https://tu-id-aleatorio.ngrok-free.app). Cópiala, esta será tu NGROK_PUBLIC_URL.