Files
cbcren2026/README_AI_ASSISTANT.md
2025-12-16 22:32:27 +00:00

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.*