Skip to content

serguccierrez/indesIAhack_UPM-COTEC-LLM-ROUTER-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🧠⚡ OptimIA — Enrutador Inteligente y Sostenible de Modelos de IA

ES: Sistema de routing que selecciona dinámicamente el modelo óptimo maximizando calidad, eficiencia energética y coste.
EN: Dynamic router that selects the optimal AI model, maximizing quality, energy efficiency, and cost performance.


📌 Descripción General | Overview

🟢 ES:

OptimIA es un enrutador inteligente de modelos de IA diseñado para decidir, en tiempo real, qué modelo ejecutar entre:

  • Llama 3.1 8B
  • GPT-4o-mini
  • GPT-5

El sistema estima la categoría, dificultad y requerimientos del usuario, y selecciona el modelo ideal con base en:

  • Categoría del prompt (biology, law, math, etc.)
  • Nivel de dificultad (easy | medium | hard)
  • Modo operativo (ahorro | equilibrado | calidad)
  • Tabla de performance real por categoría/dificultad
  • Coste por token (input/output)
  • Consumo energético relativo por modelo

Además incorpora:

  • Clasificador automático en Python
  • Algoritmo de selección coste-calidad-energía
  • Streaming tipo ChatGPT
  • Historial persistente en cliente
  • Cálculo de ahorro económico
  • Estimación de energía evitada
  • Dashboard de métricas

🔵 EN:

OptimIA is a smart AI model router that dynamically chooses the optimal model (Llama 3.1 8B, GPT-4o-mini or GPT-5) based on the incoming prompt's category, difficulty and user mode, optimizing quality, cost and energy consumption.
It provides streaming output, analytics, persistent history, and an intelligent cost-savings engine.


🎯 Objetivo del Proyecto | Project Goal

🟢 ES:

Desarrollar un router de modelos IA reutilizable y robusto capaz de:

  • Clasificar el prompt usando un modelo Python.
  • Seleccionar el modelo óptimo utilizando métricas de rendimiento, coste y energía.
  • Optimizar el prompt original para reducir tokens y mejorar eficiencia sin perder intención.
  • Ejecutar un único modelo evitando redundancias.
  • Registrar métricas clave (coste, energía, tiempo de ejecución).
  • Ofrecer un dashboard accesible para visualizar resultados y ahorros.

🔵 EN:

Build a reusable and production-ready AI model router that classifies prompts, selects the best model, optimizes prompts to reduce token consumption, executes efficiently, and exposes relevant metrics through a modern web UI. Build a reusable and production-ready AI model router that classifies prompts, selects the best model, executes it efficiently, and exposes relevant metrics through a modern web UI.


🧠 Tecnologías Utilizadas | Tech Stack

Frontend

  • React + Vite
  • ReactMarkdown
  • Persistencia en localStorage

Backend

  • Node.js + Express
  • Socket.IO para streaming
  • Python (subproceso)
  • Azure OpenAI API
  • Groq API

Data & Analytics

  • Python (pandas, openpyxl, etc.)
  • Scripts de benchmark que generan tabla_global.json

⚙️ Flujo de Trabajo | Workflow

🟢 ES:

  • Clasificación del prompt: Python determina categoría y dificultad.
  • Selección de modelo: se calcula el balance entre accuracy, coste y energía según el modo del usuario.
  • Ejecución del modelo elegido vía Node.js.
  • Optimización del prompt para eficiencia.
  • Frontend visualiza respuesta, métricas y ahorros.

🔵 EN:

  • Prompt classification (Python)
  • Optimal model selection
  • Execution of the chosen model
  • Prompt optimization (Groq)
  • UI rendering and analytics

📂 Estructura del Proyecto | Project Structure

.
├── IndesIAHack/
│   ├── Cliente/
│   │   ├── src/App.jsx
│   │   ├── public/send.png
│   │   └── …
│   └── Servidor/
│       ├── index.js
│       ├── classifier_api.py
│       ├── classifier_prompt_engineering.py
│       ├── test_classifier.py
│       ├── model_selector.py
│       ├── performance_analyzer.py
│       ├── data_treatment/tabla_global.json
│       ├── requirements.txt
│       └── …
└── README.md

🧩 Ejecución | How to Run

1. Configurar entorno

cp .env.example .env

Editar claves en .env.

2. Instalar dependencias

Backend

cd Servidor
npm install
pip install -r requirements.txt

Frontend

cd Cliente
npm install

3. Ejecutar proyecto

Backend

npm run dev

Frontend

npm run dev

📈 Métricas Disponibles | Available Metrics

🟢 ES:

  • Modelo seleccionado
  • Coste estimado por mensaje
  • Índice energético
  • Tiempo de enrutamiento
  • Tiempo de inferencia del modelo
  • Historial persistente del usuario
  • Ahorro acumulado (€/tokens)
  • Energía evitada (estimada)

🔵 EN:

  • Selected model
  • Estimated cost per message
  • Energy index
  • Routing time
  • Model inference time
  • Persistent user history
  • Cumulative savings (€/tokens)
  • Avoided energy (estimated)

👥 Equipo | Team

Valeria — Javier — Sergio — Cesar — Clara

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors