Initial commit
This commit is contained in:
285
README_AI_ASSISTANT.md
Normal file
285
README_AI_ASSISTANT.md
Normal file
@@ -0,0 +1,285 @@
|
||||
# 🤖 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.*
|
||||
Reference in New Issue
Block a user