285 lines
8.1 KiB
Markdown
285 lines
8.1 KiB
Markdown
# 🤖 CBC Nextcloud AI Service - Documentación para Asistentes IA
|
|
|
|
## 📋 Resumen Ejecutivo
|
|
|
|
Este es un sistema automatizado de procesamiento de contenido académico que utiliza inteligencia artificial para transcribir audios, procesar PDFs y generar resúmenes colaborativos mediante la integración de 3 modelos de IA diferentes.
|
|
|
|
**Estado Actual**: ✅ ACTIVO y FUNCIONANDO
|
|
- **Servicio**: `cbc-main.service` (systemd)
|
|
- **Proceso Principal**: PID 49696 (única instancia)
|
|
- **GPU**: NVIDIA RTX 3050 (1.5GB/8GB en uso)
|
|
- **Última Actualización**: 2025-09-26
|
|
|
|
---
|
|
|
|
## 🖥️ Especificaciones del Sistema
|
|
|
|
### Hardware
|
|
- **CPU**: AMD Ryzen 5 5600X 6-Core Processor (12 hilos)
|
|
- **RAM**: 15GB DDR4 (9.7GB disponible)
|
|
- **GPU**: NVIDIA GeForce RTX 3050 (8GB VRAM)
|
|
- **Almacenamiento**: 439GB SSD (330GB libre)
|
|
- **Sistema Operativo**: Linux x86_64
|
|
|
|
### Software
|
|
- **Python**: 3.10.12
|
|
- **CUDA**: 12.2 (Driver 535.247.01)
|
|
- **Gestor de Servicios**: systemd
|
|
- **Directorio Principal**: `/home/ren/cbc/`
|
|
|
|
### Librerías Clave
|
|
- `torch` 2.8.0 (PyTorch con soporte CUDA)
|
|
- `transformers` 4.56.1 (Hugging Face)
|
|
- `whisper` 20240930 (OpenAI)
|
|
- `easyocr` 1.7.2 (OCR)
|
|
- `openai` 1.107.0 (API clientes)
|
|
- `python-docx` 1.2.0 (manipulación Word)
|
|
- `pdf2image` 1.17.0 (procesamiento PDF)
|
|
|
|
---
|
|
|
|
## 🚀 Funcionalidades Principales
|
|
|
|
### 1. Procesamiento de Audio
|
|
- **Formatos Soportados**: MP3, WAV, M4A, OGG
|
|
- **Transcripción**: Whisper (medium) con GPU aceleración
|
|
- **Salida**: Archivos de texto con timestamps
|
|
- **Ubicación**: Carpeta `Audios` en Nextcloud
|
|
|
|
### 2. Procesamiento de PDF
|
|
- **OCR Múltiple**: EasyOCR + Tesseract + TrOCR
|
|
- **Procesamiento por Lotes**: 3 páginas por chunk
|
|
- **Corrección IA**: Gemini para limpieza de texto
|
|
- **Salida**: Documentos DOCX editables
|
|
- **Ubicación**: Carpeta `Pdf` en Nextcloud
|
|
|
|
### 3. Sistema de Resúmenes Colaborativos
|
|
**3 Modelos de IA trabajando en secuencia**:
|
|
|
|
1. **GPT-OSS-120B** (DeepInfra API):
|
|
- Genera bullet points clave
|
|
- Análisis inicial del contenido
|
|
|
|
2. **Claude/Zhai** (CLI - API Z.ai):
|
|
- Desarrolla resumen integral
|
|
- 400-500 palabras estructuradas
|
|
|
|
3. **Gemini** (CLI - Google):
|
|
- Aplica formato final
|
|
- Optimiza presentación
|
|
|
|
### 4. Clasificación Inteligente de Contenido
|
|
El sistema clasifica automáticamente en 4 categorías temáticas:
|
|
- `historia` - Eventos históricos, cronologías
|
|
- `analisis_contable` - Contabilidad, finanzas, balances
|
|
- `instituciones_gobierno` - Política, gobierno, leyes
|
|
- `otras_clases` - Ciencias, tecnología, literatura, etc.
|
|
|
|
### 5. Generación de Quizzes
|
|
- **10 preguntas** de opción múltiple por documento
|
|
- **4 opciones** (A, B, C, D) por pregunta
|
|
- **Respuestas incluidas** en documentos separados
|
|
|
|
---
|
|
|
|
## ⚙️ Configuración Actual
|
|
|
|
### Variables de Entorno
|
|
```bash
|
|
CUDA_LAUNCH_BLOCKING=1 # Depuración CUDA síncrona
|
|
PYTHONPATH=/home/ren/cbc # Ruta del proyecto
|
|
HOME=/home/ren # Directorio home
|
|
```
|
|
|
|
### Rutas del Sistema
|
|
- **Descargas**: `/app/downloads/`
|
|
- **Resúmenes**: `./downloads/`
|
|
- **Documentos DOCX**: `./resumenes_docx/`
|
|
- **Archivos Procesados**: `/app/processed_files.txt`
|
|
|
|
### Límites de Recursos
|
|
- **Memoria RAM**: 8GB máximo
|
|
- **CPU**: 90% de cuota
|
|
- **Archivos Abiertos**: 65536
|
|
- **Reinicio Automático**: Siempre (10 segundos de espera)
|
|
|
|
---
|
|
|
|
## 📁 Estructura de Archivos Principal
|
|
|
|
```
|
|
/home/ren/cbc/
|
|
├── main.py # Servicio principal (72,405 líneas)
|
|
├── .env # Variables de entorno
|
|
├── requirements.txt # Dependencias Python
|
|
├── README_AI_ASSISTANT.md # Este documento
|
|
├── MEGA_HISTORIA_parte*.txt # Historiales académicos
|
|
├── resumen_*.py # Scripts de resumen
|
|
├── procesador_academico.py # Procesamiento especializado
|
|
├── analizador_*.py # Análisis de contenido
|
|
├── config_telegram.txt # Configuración Telegram
|
|
└── txt/ # Directorio de textos
|
|
```
|
|
|
|
---
|
|
|
|
## 🔧 Gestión del Servicio
|
|
|
|
### Comandos Essenciales
|
|
```bash
|
|
# Ver estado del servicio
|
|
sudo systemctl status cbc-main
|
|
|
|
# Ver logs en tiempo real
|
|
sudo journalctl -u cbc-main -f
|
|
|
|
# Detener servicio
|
|
sudo systemctl stop cbc-main
|
|
|
|
# Iniciar servicio
|
|
sudo systemctl start cbc-main
|
|
|
|
# Reiniciar servicio
|
|
sudo systemctl restart cbc-main
|
|
|
|
# Ver uso de GPU
|
|
nvidia-smi
|
|
|
|
# Ver uso de memoria del sistema
|
|
free -h
|
|
```
|
|
|
|
### Monitoreo de Salud
|
|
```bash
|
|
# Verificar proceso único
|
|
ps aux | grep "python3.*main.py" | grep -v grep
|
|
|
|
# Verificar memoria GPU
|
|
nvidia-smi --query-gpu=memory.used,memory.total --format=csv
|
|
|
|
# Verificar espacio en disco
|
|
df -h /
|
|
|
|
# Verificar actividad de red
|
|
sudo netstat -tlnp | grep :80
|
|
```
|
|
|
|
---
|
|
|
|
## 🚨 Problemas Comunes y Soluciones
|
|
|
|
### Error CUDA: "CUDA-capable device(s) is/are busy or unavailable"
|
|
**Causa**: Múltiples procesos compitiendo por recursos GPU
|
|
**Solución**:
|
|
```bash
|
|
# Verificar procesos múltiples
|
|
ps aux | grep "python3.*main.py"
|
|
|
|
# Si hay múltiples, reiniciar servicio
|
|
sudo systemctl restart cbc-main
|
|
```
|
|
|
|
### Error de Permiso: "Permission denied"
|
|
**Causa**: El servicio no tiene permisos para escribir en `/app/`
|
|
**Solución**:
|
|
```bash
|
|
# Crear directorios con permisos correctos
|
|
sudo mkdir -p /app/downloads /app/resumenes
|
|
sudo chown -R ren:ren /app/
|
|
```
|
|
|
|
### Alto Uso de Memoria GPU
|
|
**Configuración actual optimizada**:
|
|
- `MAX_PAGES_PER_CHUNK = 3` (reducido de 5)
|
|
- `PDF_DPI = 200` (reducido de 300)
|
|
- `batch_size = 1` (procesamiento individual)
|
|
- `_MODEL_TIMEOUT_SECONDS = 300` (liberación rápida)
|
|
|
|
---
|
|
|
|
## 🔄 Flujo de Trabajo Automático
|
|
|
|
### 1. Detección de Archivos
|
|
- Monitorea carpetas Nextcloud cada 5 segundos
|
|
- Verifica archivos no procesados en `processed_files.txt`
|
|
|
|
### 2. Procesamiento según Tipo
|
|
**Audio** → Transcripción → Resumen Colaborativo → Clasificación → Subida
|
|
**PDF** → OCR → Corrección IA → Documento Editable → Resumen → Subida
|
|
|
|
### 3. Clasificación y Organización
|
|
- Análisis de contenido con Gemini
|
|
- Clasificación en categorías temáticas
|
|
- Renombrado automático con temas extraídos
|
|
- Organización en carpetas específicas
|
|
|
|
### 4. Notificaciones
|
|
- Envío de alertas por Telegram
|
|
- Reportes de progreso y errores
|
|
- Confirmación de procesamiento completado
|
|
|
|
---
|
|
|
|
## 📊 Métricas de Rendimiento
|
|
|
|
### Rendimiento Actual
|
|
- **Procesamiento PDF**: ~3-5 minutos por documento (12 páginas)
|
|
- **Transcripción Audio**: ~2-3 minutos por 10 minutos de audio
|
|
- **Generación Resúmenes**: ~1-2 minutos por documento
|
|
- **Uso GPU**: 1.5GB (estable)
|
|
- **Uso CPU**: 44% promedio
|
|
- **Memoria RAM**: 1.1GB utilizada
|
|
|
|
### Optimizaciones Aplicadas
|
|
- ✅ Procesamiento único (sin duplicados)
|
|
- ✅ Gestión agresiva de VRAM
|
|
- ✅ Límites de recursos controlados
|
|
- ✅ Reintentos automáticos para errores CUDA
|
|
- ✅ Sistema de clasificación inteligente
|
|
|
|
---
|
|
|
|
## 🔮 Estado y Próximos Pasos
|
|
|
|
### Estado Actual: SISTEMA ESTABLE
|
|
- ✅ Servicio systemd funcionando correctamente
|
|
- ✅ GPU operativa sin errores
|
|
- ✅ Procesamiento de PDF activo
|
|
- ✅ Clasificación automática funcionando
|
|
- ✅ Notificaciones Telegram operativas
|
|
|
|
### Posibles Mejoras Futuras
|
|
- Implementar cola de procesamiento para manejar carga pesada
|
|
- Añadir interfaz web para monitoreo
|
|
- Optimizar tiempos de procesamiento con modelos más eficientes
|
|
- Implementar sistema de backup automático
|
|
- Añadir métricas detalladas de rendimiento
|
|
|
|
---
|
|
|
|
## 📞 Información de Contacto y Soporte
|
|
|
|
### Para Emergencias del Sistema
|
|
```bash
|
|
# Reinicio completo del sistema
|
|
sudo systemctl restart cbc-main
|
|
|
|
# Liberación forzada de VRAM
|
|
sudo pkill -f python3
|
|
sudo systemctl start cbc-main
|
|
```
|
|
|
|
### Archivos de Log Importantes
|
|
- **Journal Systemd**: `sudo journalctl -u cbc-main`
|
|
- **Log GPU**: `nvidia-smi --query-gpu=timestamp,memory.used --format=csv -l 1`
|
|
- **Log Memoria**: `free -h -s 5`
|
|
|
|
### Puntos Críticos del Sistema
|
|
1. **Disponibilidad GPU**: NVIDIA RTX 3050 (8GB)
|
|
2. **Espacio en Disco**: 330GB disponibles
|
|
3. **Conexión Nextcloud**: WebDAV funcional
|
|
4. **API Keys**: Configuradas y operativas
|
|
|
|
---
|
|
|
|
*Este documento fue generado automáticamente el 2025-09-26 para proporcionar a asistentes IA una comprensión completa del estado y funcionalidad del sistema CBC Nextcloud AI Service.* |