# 🦙 Ollama Model Manager

Script web para gestionar modelos de Ollama de forma sencilla e intuitiva.

## 🚀 Características

- **📋 Listar modelos**: Ve todos los modelos instalados con información detallada
- **📥 Descargar modelos**: Descarga nuevos modelos desde la interfaz web
- **🗑️ Eliminar modelos**: Elimina modelos que ya no necesites
- **ℹ️ Información detallada**: Ve información completa de cada modelo
- **💾 Monitoreo de espacio**: Controla cuánto espacio ocupan tus modelos
- **🔄 Estado en tiempo real**: Verifica el estado de conexión con Ollama
- **🔴 Cierre elegante**: Botón para cerrar la aplicación y la página web

## 📋 Requisitos

1. **Ollama instalado y ejecutándose**
   ```bash
   # Instalar Ollama (si no está instalado)
   curl -fsSL https://ollama.ai/install.sh | sh
   
   # Iniciar Ollama
   ollama serve
   ```

2. **Python 3.7+** con las siguientes librerías:
   ```bash
   pip install flask requests
   ```

## 🏃‍♂️ Uso Rápido

1. **Ejecutar el script**:
   ```bash
   python manager.py
   ```

2. **Abrir navegador**: El script abrirá automáticamente tu navegador en `http://127.0.0.1:PUERTO`

3. **¡Listo!** Ya puedes gestionar tus modelos de Ollama

## ⚙️ Configuración

El script puede usar un archivo `script_config.json` opcional para personalizar su comportamiento:

```json
{
    "ollama_host": "http://localhost:11434",
    "auto_open_browser": true,
    "level1": {
        "default_models": ["llama3.2", "mistral", "codellama"],
        "recommended_models": {
            "llama3.2": "Modelo general de Meta",
            "mistral": "Modelo rápido y eficiente",
            "codellama": "Especializado en programación"
        }
    }
}
```

### Parámetros de configuración:

- `ollama_host`: URL del servidor Ollama (por defecto: `http://localhost:11434`)
- `auto_open_browser`: Abrir navegador automáticamente (por defecto: `true`)
- `recommended_models`: Lista de modelos recomendados con descripciones

## 🔧 Integración con el Sistema Principal

Este script está diseñado para integrarse con el sistema ParamManagerScripts:

1. **Colocar en directorio de proyectos**: El script se puede colocar en cualquier proyecto del launcher
2. **Ejecutar como script web**: Usar el endpoint `execute-python-web-script` del frontend principal
3. **Configuración automática**: Si está en el sistema principal, carga configuración automáticamente

## 📖 API Endpoints

El script expone los siguientes endpoints:

- `GET /` - Interfaz web principal
- `GET /api/status` - Estado de conexión con Ollama
- `GET /api/models` - Lista de modelos instalados
- `GET /api/models/<name>/info` - Información detallada de un modelo
- `POST /api/models/pull` - Descargar un modelo
- `DELETE /api/models/<name>` - Eliminar un modelo
- `POST /_shutdown` - Cerrar la aplicación (uso interno)

## 🎨 Interfaz Web

La interfaz incluye:

- **Panel de estado**: Muestra si Ollama está conectado y estadísticas generales
- **Botón de cierre**: Permite cerrar la aplicación de forma elegante
- **Barra de acciones**: Campo para descargar nuevos modelos y botón de actualización
- **Grid de modelos**: Tarjetas con información de cada modelo instalado
- **Modal de información**: Detalles completos del modelo (licencia, parámetros, template)
- **Mensajes**: Notificaciones de éxito y error

## 🔍 Modelos Recomendados

### Para uso general:
- **llama3.2** - Modelo versátil de Meta, excelente para conversaciones
- **mistral** - Rápido y eficiente, bueno para tareas generales
- **gemma2** - De Google, bueno para análisis y razonamiento

### Para programación:
- **codellama** - Especializado en código y programación
- **deepseek-coder** - Excelente para tareas de desarrollo

### Para recursos limitados:
- **phi3** - Modelo compacto de Microsoft
- **tinyllama** - Muy pequeño, ideal para pruebas

### Multilingüe:
- **qwen2.5** - Excelente soporte para español y otros idiomas

## 🐛 Solución de Problemas

### Ollama no se conecta
```bash
# Verificar que Ollama esté ejecutándose
ollama serve

# Verificar modelos instalados
ollama list
```

### Error de puerto ocupado
El script encuentra automáticamente un puerto libre. Si hay problemas, reinicia el script.

### Descarga lenta de modelos
Las descargas pueden tardar varios minutos dependiendo del tamaño del modelo y la velocidad de internet. Los modelos grandes (>7B parámetros) pueden ocupar varios GB.

## 📝 Logs y Debug

Para activar logs detallados, modifica `script_config.json`:

```json
{
    "level3": {
        "debug_mode": true,
        "log_api_calls": true
    }
}
```

## 🤝 Contribuir

Este script es parte del sistema ParamManagerScripts. Para mejoras o reportar problemas:

1. Crea un issue describiendo el problema o mejora
2. Si es un bug, incluye logs y pasos para reproducir
3. Para nuevas características, explica el caso de uso

## 📄 Licencia

Este script es parte del proyecto ParamManagerScripts y sigue la misma licencia del proyecto principal.

---

**¡Disfruta gestionando tus modelos de Ollama! 🦙✨**