MLticBga / app.py
EdwinFdo's picture
Upload 5 files
ed2eb33 verified
# app.py
import gradio as gr
import joblib
import numpy as np
# Cargar
modelo = joblib.load("modelo_tic.pkl")
le_ciiu = joblib.load("encoder_actividad.pkl")
CIIU_OPCIONES = ["6201 - Desarrollo software", "6202 - Consultoría TIC", "6209 - Otros servicios TIC", "6311 - Hosting/Cloud"]
def predecir_innovacion(ciiu_str, empleados, exporta, usa_ia, tiene_github):
# Extraer código CIIU
ciiu = ciiu_str.split(" ")[0]
try:
ciiu_cod = le_ciiu.transform([ciiu])[0]
except:
ciiu_cod = 0 # fallback
entrada = np.array([[ciiu_cod, empleados, int(exporta), int(usa_ia), int(tiene_github)]])
prob = modelo.predict_proba(entrada)[0][1]
if prob >= 0.7:
mensaje = "🚀 Alta innovación: probable startup tecnológica o empresa exportadora."
elif prob >= 0.4:
mensaje = "💡 Innovación moderada: podría beneficiarse de apoyo del clúster TIC."
else:
mensaje = "🔧 Empresa tradicional: servicios básicos de TI."
return f"{prob*100:.1f}%", mensaje
with gr.Blocks(title="TIC Bucaramanga") as demo:
gr.Markdown("# 🧠 ¿Es innovadora tu empresa TIC en Bucaramanga?")
gr.Markdown("Modelo basado en datos del MinTIC, RUES y clústeres locales.")
with gr.Row():
ciiu = gr.Dropdown(CIIU_OPCIONES, label="Actividad principal (CIIU)", value=CIIU_OPCIONES[0])
empleados = gr.Slider(1, 100, value=10, label="Número de empleados")
with gr.Row():
exporta = gr.Checkbox(label="¿Exporta servicios?")
usa_ia = gr.Checkbox(label="¿Usa inteligencia artificial?")
tiene_github = gr.Checkbox(label="¿Tiene repositorios públicos (GitHub)?")
prob_output = gr.Textbox(label="Probabilidad de ser innovadora")
mensaje_output = gr.Textbox(label="Interpretación")
btn = gr.Button("Analizar empresa")
btn.click(
predecir_innovacion,
inputs=[ciiu, empleados, exporta, usa_ia, tiene_github],
outputs=[prob_output, mensaje_output]
)
gr.Markdown("""
> ℹ️ Este modelo ayuda a identificar talento TIC en Bucaramanga.
> Datos: MinTIC, RUES, ParqueSoft Santander.
> Proyecto de código abierto para el ecosistema local.
""")
demo.launch()