Skip to content

antuansabe/InclusioCheck

Repository files navigation

SinOdio - Detector de Discurso de Odio con IA

VersiΓ³n 3.0 | Especializado en EspaΓ±ol Latinoamericano

Detector de lenguaje de odio con inteligencia artificial, especializado en identificar tanto discurso de odio explΓ­cito como sutil/normalizado en espaΓ±ol de AmΓ©rica Latina.

πŸš€ DescripciΓ³n

SinOdio es una aplicaciΓ³n web moderna que utiliza inteligencia artificial de ΓΊltima generaciΓ³n para detectar lenguaje de odio en textos en espaΓ±ol latinoamericano. Construida con Next.js 15, TypeScript, y respaldada por un modelo BETO (BERT en EspaΓ±ol) fine-tuned con ~35,000 ejemplos especializados.

El modelo v3 representa una mejora significativa de +21% en F1 score comparado con versiones anteriores, con Γ©nfasis en detectar lenguaje discriminatorio normalizado que muchas veces pasa desapercibido.

TecnologΓ­a para comunicar sin odio. Espacios digitales mΓ‘s seguros e inclusivos.

🎯 Problema Social que Resuelve

El discurso de odio en espaΓ±ol latinoamericano frecuentemente se presenta de forma normalizada y sutil, haciendo difΓ­cil su detecciΓ³n. Frases discriminatorias disfrazadas de "opiniones" o "humor" perpetΓΊan violencia hacia grupos vulnerables (mujeres, LGBTQ+, migrantes, indΓ­genas, personas con discapacidad).

SinOdio combate esto identificando tanto lenguaje explΓ­citamente violento como discriminaciΓ³n encubierta, ayudando a crear espacios digitales mΓ‘s seguros para comunidades hispanohablantes en AmΓ©rica Latina.

πŸ“Š MΓ©tricas Impactantes

Modelo de IA (v3)

  • Accuracy: 91.85% (+14% vs v1)
  • F1 Score: 87.00% (+21% vs v1)
  • Precision: 83.30% (+22% vs v1)
  • Recall: 91.03% (detecta 91 de cada 100 casos reales)
  • Dataset: ~35,000 ejemplos de LATAM (Chile, MΓ©xico, Argentina, Colombia, PerΓΊ)

CategorΓ­as de DiscriminaciΓ³n Detectadas

βœ“ Xenofobia e inmigraciΓ³n | βœ“ GΓ©nero y sexismo | βœ“ OrientaciΓ³n sexual (LGBTQ+) βœ“ Raza y etnicidad | βœ“ Clase social (aporofobia) | βœ“ Discapacidad (capacitismo) | βœ“ Pueblos indΓ­genas

✨ Características

  • πŸ€– Modelo BETO v3 - 110M parΓ‘metros, fine-tuned para espaΓ±ol LATAM
  • ⚑ AnΓ‘lisis en tiempo real - Respuesta < 2 segundos
  • 🎯 DetecciΓ³n avanzada - Identifica hate speech explΓ­cito y normalizado
  • πŸ“Š MΓ©tricas transparentes - VisualizaciΓ³n de confianza y probabilidades
  • 🎨 UI moderna - DiseΓ±ada con shadcn/ui y Tailwind CSS
  • 🌐 100% en espaΓ±ol - Optimizado para variantes latinoamericanas
  • πŸ”’ Open Source - Apache 2.0 License

πŸ› οΈ Stack TΓ©cnico Destacado

Machine Learning & AI

Full-Stack Development

UI/UX

Production & DevOps

πŸš€ Inicio RΓ‘pido

Requisitos Previos

  • Node.js 18+ (v22.18.0 recomendado)
  • npm 9+ o pnpm

InstalaciΓ³n Local

# Clonar el repositorio
git clone https://github.com/antuansabe/InclusioCheck.git
cd inclusiocheck

# Instalar dependencias
npm install

# Ejecutar en modo desarrollo
npm run dev

Abre http://localhost:3000 en tu navegador.

Nota: La primera peticiΓ³n puede tardar 60-90 segundos (cold start del modelo en HuggingFace). Peticiones subsecuentes: < 2 segundos.

Deployment a ProducciΓ³n

El proyecto estΓ‘ optimizado para deployment en Vercel con configuraciΓ³n zero-config:

# Build de producciΓ³n
npm run build

# Iniciar servidor de producciΓ³n
npm start

Ver DEPLOYMENT.md para guΓ­a completa de deployment en Vercel.

πŸ“ Scripts Disponibles

npm run dev      # Inicia el servidor de desarrollo
npm run build    # Construye la aplicaciΓ³n para producciΓ³n
npm run start    # Inicia el servidor de producciΓ³n
npm run lint     # Ejecuta el linter

πŸ—οΈ Estructura del Proyecto

src/
β”œβ”€β”€ app/              # App Router de Next.js
β”‚   β”œβ”€β”€ api/         # API routes
β”‚   β”œβ”€β”€ layout.tsx   # Layout principal
β”‚   └── page.tsx     # PΓ‘gina principal
β”œβ”€β”€ components/      # Componentes React
β”‚   β”œβ”€β”€ ui/         # Componentes de shadcn/ui
β”‚   β”œβ”€β”€ layout/     # Header, Footer, Container
β”‚   β”œβ”€β”€ features/   # Componentes de caracterΓ­sticas
β”‚   └── shared/     # Componentes compartidos
└── lib/            # Utilidades y configuraciΓ³n
    β”œβ”€β”€ constants.ts # Constantes de la app
    β”œβ”€β”€ types.ts     # Tipos TypeScript
    └── utils.ts     # Funciones auxiliares

πŸ”— Enlaces del Proyecto

Recursos de IA

Repositorio

πŸ‘¨β€πŸ’» Autor

Antonio Dromundo

πŸ“„ Licencia

Este proyecto estΓ‘ bajo la Licencia Apache 2.0 - ver el archivo LICENSE para mΓ‘s detalles.

πŸ—οΈ Arquitectura del Sistema

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    Next.js 15 App                        β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚   Frontend  β”‚  β”‚  API Routes  β”‚  β”‚  Components   β”‚   β”‚
β”‚  β”‚  (React 19) │──│  (Node.js)   │──│  (shadcn/ui)  β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
                       β”‚ Gradio Client API
                       β”‚ (HTTP/SSE)
                       β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚            HuggingFace Space (Gradio)                    β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚  BETO Model (110M params)                        β”‚   β”‚
β”‚  β”‚  β”œβ”€ Tokenizer (Spanish BERT)                     β”‚   β”‚
β”‚  β”‚  β”œβ”€ Transformer Layers (12)                      β”‚   β”‚
β”‚  β”‚  └─ Classification Head (binary)                 β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                       β”‚
                       β–Ό
              Response: [label, score, message]

🀝 Contribuciones

Las contribuciones son bienvenidas. Por favor:

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add: AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

Ver CONTRIBUTING.md para mΓ‘s detalles.

πŸ™ Agradecimientos

  • dccuchile - Modelo BETO base
  • HuggingFace - Platform y hosting del modelo
  • shadcn - Sistema de componentes UI
  • Vercel - Hosting y deployment
  • Comunidad de desarrolladores open source

πŸ“œ Versiones

  • v3.0 (Nov 2025) - Modelo mejorado (+21% F1), dataset LATAM, retry mechanism
  • v2.0 (Nov 2025) - IntegraciΓ³n dataset regional, detecciΓ³n mejorada
  • v1.0 (Oct 2025) - Release inicial, modelo base

⭐ Si este proyecto te ayuda, considera darle una estrella en GitHub ⭐

Demo Live β€’ Reportar Bug β€’ Request Feature

Hecho con ❀️ para comunidades hispanohablantes en América Latina

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors