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.
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
| 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 |
# 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.netEl script te preguntara si quieres SSL (Let's Encrypt) y que puerto usar.
# 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- Abre Chrome y ve a
chrome://extensions/ - Activa "Modo de desarrollador" (arriba a la derecha)
- Click en "Cargar descomprimida"
- Selecciona la carpeta
chrome-extension/ - El icono del semaforo aparecera en la barra de extensiones
cd chrome-extension
zip -r ../iazoom-extension-v1.zip . -x "*.DS_Store"Sube el ZIP a la Chrome Web Store Developer Dashboard.
Edita chrome-extension/src/background.js y cambia:
// Linea 5 - Pon tu dominio
const API_BASE = 'https://iazoom.net/api';# 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- Extraccion: El content script extrae el texto principal de la pagina (articulos, blogs, reviews)
- Heuristicas locales: Se analizan patrones linguisticos (diversidad lexica, variabilidad de oraciones, frases tipicas de IA)
- Modelo ML: El backend usa RoBERTa OpenAI Detector para clasificacion
- Score combinado: 60% modelo ML + 40% heuristicas = score final 0-100%
- Semaforo: El icono cambia de color segun el score
| Score | Color | Clasificacion |
|---|---|---|
| 0-39% | Verde | Humano |
| 40-59% | Amarillo | Mixto |
| 60-79% | Naranja | Probable IA |
| 80-100% | Rojo | IA Generado |
| 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 |
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
}
}- 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