Skip to content

Repository files navigation

IAzoom - Detector de Contenido IA

Extensión de Chrome que analiza cualquier página web y detecta si el contenido fue generado por inteligencia artificial. Muestra un semáforo visual (verde/amarillo/rojo) y un score detallado al hacer click.

Version [License]

Arquitectura

IAzoom/
├── backend/              # FastAPI + Modelo RoBERTa (VPS)
│   ├── app/
│   │   ├── main.py       # API endpoints
│   │   ├── detector.py   # Motor de detección ML + heurísticas
│   │   ├── heuristics.py # Análisis lingüístico
│   │   └── models.py     # Schemas Pydantic
│   ├── requirements.txt
│   └── start.sh
├── chrome-extension/     # Plugin Chrome (Manifest V3)
│   ├── manifest.json
│   ├── popup.html        # UI del popup
│   ├── src/
│   │   ├── background.js # Service worker
│   │   ├── content.js    # Extracción de texto
│   │   ├── popup.js      # Lógica del popup
│   │   └── popup.css     # Estilos
│   └── icons/            # Iconos del semáforo
├── landing/              # Landing page (HTML estático)
│   └── index.html
└── scripts/
    ├── install.sh        # Instalación en VPS
    └── deploy.sh         # Deploy desde Mac

Stack Tecnico

Capa Tecnologia
Chrome Extension Manifest V3 + JavaScript
Backend API FastAPI + Uvicorn
ML Model RoBERTa OpenAI Detector (local)
Heuristicas Python puro (sin coste)
Landing HTML/CSS estatico
Servidor Nginx + Systemd

Instalacion en el VPS (Debian 12)

Opcion A: Script automatico

# Desde tu Mac, copia el proyecto al VPS
scp -r /ruta/local/IAzoom root@vps.iazoom.net:/var/www/

# SSH al VPS
ssh root@vps.iazoom.net

# Ejecutar instalador
cd /var/www/IAzoom
chmod +x scripts/install.sh
./install.sh iazoom.net

El script te preguntara si quieres SSL (Let's Encrypt) y que puerto usar.

Opcion B: Manual paso a paso

# 1. Conectar al VPS
ssh root@vps.iazoom.net

# 2. Instalar dependencias
apt-get update
apt-get install -y python3 python3-venv nginx git

# 3. Crear estructura
mkdir -p /var/www/IAzoom
cd /var/www/IAzoom

# 4. Python venv + dependencias
python3 -m venv backend/venv
source backend/venv/bin/activate
pip install fastapi uvicorn transformers torch numpy scikit-learn python-dotenv slowapi

# 5. Descargar modelo
python3 -c "
from transformers import AutoTokenizer, AutoModelForSequenceClassification
AutoTokenizer.from_pretrained('roberta-base-openai-detector')
AutoModelForSequenceClassification.from_pretrained('roberta-base-openai-detector')
print('OK')
"

# 6. Crear servicio systemd
cat > /etc/systemd/system/iazoom.service << 'EOF'
[Unit]
Description=IAzoom Backend
After=network.target

[Service]
Type=simple
WorkingDirectory=/var/www/IAzoom/backend
Environment="PATH=/var/www/IAzoom/backend/venv/bin"
ExecStart=/var/www/IAzoom/backend/venv/bin/uvicorn app.main:app --host 127.0.0.1 --port 8000
Restart=always

[Install]
WantedBy=multi-user.target
EOF

systemctl enable iazoom
systemctl start iazoom

# 7. Configurar Nginx
cat > /etc/nginx/sites-available/iazoom << 'EOF'
server {
    listen 80;
    server_name _;

    root /var/www/IAzoom/landing;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }

    location = /privacy {
        try_files /privacy.html =404;
    }

    location /api/ {
        proxy_pass http://127.0.0.1:8000/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        add_header 'Access-Control-Allow-Origin' '*' always;
    }
}
EOF

ln -s /etc/nginx/sites-available/iazoom /etc/nginx/sites-enabled/
rm -f /etc/nginx/sites-enabled/default
nginx -t && systemctl restart nginx

Instalar la Extension en Chrome

Modo desarrollador (para pruebas)

  1. Abre Chrome y ve a chrome://extensions/
  2. Activa "Modo de desarrollador" (arriba a la derecha)
  3. Click en "Cargar descomprimida"
  4. Selecciona la carpeta chrome-extension/
  5. El icono del semaforo aparecera en la barra de extensiones

Empaquetar para distribucion

cd chrome-extension
zip -r ../iazoom-extension-v1.zip . -x "*.DS_Store"

Sube el ZIP a la Chrome Web Store Developer Dashboard.

Configurar la API en la Extension

Edita chrome-extension/src/background.js y cambia:

// Linea 5 - Pon tu dominio
const API_BASE = 'https://iazoom.net/api';

Comandos utiles

# Ver logs del backend
journalctl -u iazoom -f

# Reiniciar servicio
systemctl restart iazoom

# Verificar que funciona
curl https://iazoom.net/api/health

# Deploy rapido (desde Mac)
./scripts/deploy.sh root@vps.iazoom.net

Como funciona la deteccion

  1. Extraccion: El content script extrae el texto principal de la pagina (articulos, blogs, reviews)
  2. Heuristicas locales: Se analizan patrones linguisticos (diversidad lexica, variabilidad de oraciones, frases tipicas de IA)
  3. Modelo ML: El backend usa RoBERTa OpenAI Detector para clasificacion
  4. Score combinado: 60% modelo ML + 40% heuristicas = score final 0-100%
  5. Semaforo: El icono cambia de color segun el score

Umbrales del semaforo

Score Color Clasificacion
0-39% Verde Humano
40-59% Amarillo Mixto
60-79% Naranja Probable IA
80-100% Rojo IA Generado

API Endpoints

Endpoint Metodo Descripcion
GET / - Health check
GET /health - Estado del servicio y modelo
POST /analyze JSON Analisis completo con breakdown
POST /analyze/quick JSON Score rapido (para la extension)
GET /stats - Estadisticas del servicio

Ejemplo de uso

curl -X POST https://iazoom.net/api/analyze \
  -H "Content-Type: application/json" \
  -d '{
    "text": "It is important to note that in today'\''s world...",
    "content_type": "article",
    "url": "https://iazoom.net"
  }'

Respuesta:

{
  "ai_probability": 78.5,
  "human_probability": 21.5,
  "confidence": 85,
  "classification": "likely_ai",
  "scores": {
    "perplexity_score": 72,
    "burstiness_score": 25,
    "repetition_score": 85,
    "semantic_score": 78,
    "model_score": 80
  }
}

Proximos pasos / Roadmap

  • Publicar en Chrome Web Store
  • Soporte para Firefox
  • Deteccion de imagenes generadas por IA
  • Panel de estadisticas del usuario
  • API key para limitar uso
  • Dashboard de administracion

Licencia

[License]

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages