Spaces:
Runtime error
Runtime error
| title: Llama Dev Suite PRO v5 | |
| emoji: 🦙 | |
| colorFrom: blue | |
| colorTo: purple | |
| sdk: gradio | |
| sdk_version: "4.20.0" | |
| app_file: app.py | |
| pinned: false | |
| # Llama Dev Suite PRO v5 | |
| Entorno conversacional para desarrollo asistido por IA inspirado en la filosofía visual de Apple: claridad, deferencia y profundidad. El proyecto conserva la experiencia original sobre Gradio (Fase 1) y suma una arquitectura desacoplada con React + FastAPI (Fase 2). | |
| --- | |
| ## Visión General | |
| - **Claridad**: tres columnas (Navegador · Lienzo · Inspector) con jerarquía visual limpia. | |
| - **Deferencia**: la interfaz se retira; la conversación y el código son el protagonista. | |
| - **Profundidad**: vidrio esmerilado, sombras suaves, animaciones y streaming token a token. | |
| - **Paridad funcional**: persistencia de chats, carga de archivos, diff, exportación y control de Ollama. | |
| --- | |
| ## Fase 1 · Experiencia Gradio Refinada | |
| La app clásica sigue disponible con un rediseño completo (layout de tres columnas, barra flotante de prompt, burbujas estilizadas, toolbar en bloques de código, drag & drop, etc.). | |
| ```bash | |
| # 1) Crear/activar entorno | |
| python3 -m venv .venv | |
| source .venv/bin/activate | |
| # 2) Instalar dependencias backend (Gradio + FastAPI + requests) | |
| pip install -r requirements.txt | |
| # 3) Lanzar interfaz Gradio rediseñada | |
| python app.py | |
| ``` | |
| La aplicación quedará disponible en `http://127.0.0.1:7860` (con enlace público opcional provisto por Gradio). | |
| --- | |
| ## Fase 2 · Frontend React + API FastAPI | |
| La versión desacoplada (FastAPI + React) ahora se arranca con un solo comando: | |
| ```bash | |
| ./start_full.sh | |
| ``` | |
| El script: | |
| 1. Crea/actualiza `.venv` y ejecuta `pip install -r requirements.txt`. | |
| 2. Instala dependencias del frontend (sólo la primera vez que no exista `node_modules/`). | |
| 3. Levanta `uvicorn backend.main:app` en `http://127.0.0.1:8000`. | |
| 4. Inicia `npm run dev` en `http://127.0.0.1:5173` (con proxy hacia el backend). | |
| > Requisito: tener **Node.js + npm** instalados. Si no lo tenés, descárgalo desde [nodejs.org](https://nodejs.org/) o usa tu gestor de paquetes (`sudo apt install nodejs npm`, `brew install node`, etc.). | |
| Mantén la terminal abierta; usa `Ctrl+C` para cerrar ambos servicios. | |
| Si prefieres control manual, los comandos individuales siguen siendo: | |
| - Backend: `source .venv/bin/activate && uvicorn backend.main:app --reload --port 8000` | |
| - Frontend: `cd frontend && npm run dev` | |
| Características principales: | |
| - Tres columnas con efecto vidrio, atajos (Cmd/Ctrl + Enter y Cmd/Ctrl + K). | |
| - Prompt bar flotante con iconos integrados y estado “pensando”. | |
| - Streaming token a token, highlight.js en código y toolbar contextual. | |
| - Inspector con sliders, drag & drop y exportación/diff instantáneos. | |
| --- | |
| ## Persistencia y Archivos | |
| - Los chats se guardan en `saved_chats/` como JSON (mismo formato para Gradio y React). | |
| - `file_processing.py` soporta código, ZIPs, imágenes (OCR opcional) y PDFs. | |
| - El preview muestra las píldoras de archivo y puedes excluirlos por nombre. | |
| --- | |
| ## Scripts Útiles | |
| - `setup_ollama_and_app.sh` · instala/actualiza Ollama y dependencias. | |
| - `run.sh` · mantiene compatibilidad con el arranque Gradio clásico. | |
| - `backend/main.py` · API centralizada para el frontend moderno. | |
| - `frontend/package.json` · scripts `dev`, `build` y `preview`. | |
| --- | |
| ## Próximos Pasos Sugeridos | |
| 1. Configurar Docker Compose (Ollama + FastAPI + React) para despliegues reproducibles. | |
| 2. Añadir autenticación ligera si abres la demo públicamente. | |
| 3. Integrar pruebas E2E (Playwright) que validen flujo chat → código → diff → export. | |
| 4. Automatizar CI/CD para construir la imagen e invocar los tests antes de cada release. | |
| --- | |
| ## 🚀 Uso en Hugging Face Spaces | |
| Esta aplicación está optimizada para correr en HF Spaces y soporta modelos GGUF directamente desde el Hub. | |
| ### Modelos Disponibles | |
| Puedes usar cualquier modelo GGUF de Hugging Face con el formato: | |
| ``` | |
| hf.co/usuario/repositorio | |
| hf.co/usuario/repositorio:cuantización | |
| ``` | |
| ### Ejemplos de Uso | |
| 1. **Iniciar la app**: El Space se inicia automáticamente | |
| 2. **Seleccionar modelo**: Usa el dropdown o pega un modelo HF | |
| 3. **Descargar**: Click en "Descargar modelo" (primera vez) | |
| 4. **Chatear**: ¡Listo para usar! | |
| ### Modelos Recomendados | |
| - **Rápido**: `hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF` | |
| - **Balanceado**: `hf.co/bartowski/Qwen2.5-Coder-7B-Instruct-GGUF:Q4_K_M` | |
| - **Potente**: `hf.co/mlabonne/Meta-Llama-3.1-8B-Instruct-abliterated-GGUF` | |
| ### Cuantizaciones Disponibles | |
| - `Q4_K_M`: Balance óptimo (recomendado) | |
| - `Q8_0`: Máxima calidad, más lento | |
| - `IQ3_M`: Mínimo tamaño, menor calidad | |
| ### 🔍 Debugging | |
| Si Ollama no arranca, verifica en los logs del Space: | |
| - "✅ Ollama está corriendo" | |
| - Errores en /tmp/ollama.log | |
| - Puerto 11434 disponible | |
| Si el modelo no descarga, verifica el formato: | |
| - ✅ `hf.co/bartowski/Llama-3.2-1B-Instruct-GGUF` | |
| - ❌ `bartowski/Llama-3.2-1B-Instruct-GGUF` (falta hf.co/) | |
| ### Despliegue con Docker en HF Spaces | |
| 1. Crea el Space con la opción **Docker (Blank)** y apunta el repositorio. El `Dockerfile` ya instala Python, Node y Ollama mediante `start.sh`. | |
| 2. Durante el arranque, `start.sh` lanza `ollama serve`, espera hasta `OLLAMA_WAIT_TIMEOUT` segundos a que responda en `LLAMA_DEV_OLLAMA_URL` (por defecto `http://127.0.0.1:11434`) y luego inicia Gradio. | |
| 3. Si quieres precargar un modelo para evitar descargas manuales, añade la variable `OLLAMA_AUTO_PULL=hf.co/usuario/modelo[:quant]` en los _secrets_ del Space. | |
| 4. Usa `LLAMA_DEV_OLLAMA_URL` si expones un Ollama externo y `OLLAMA_WAIT_TIMEOUT` si necesitas ampliar el timeout en hardware lento. | |
| 5. Cuando algo falle, revisa `/tmp/ollama.log` en los logs del Space: el entrypoint lo imprime antes de salir. | |
| 6. En el runtime “Gradio” clásico tampoco tenés que instalar nada: `app.py` descarga automáticamente un binario portátil de Ollama (se guarda en `~/.local/ollama-lite`) si no detecta uno en el sistema y lo levanta antes de iniciar la UI. | |
| ### 🚨 Notas Importantes | |
| 1. **Primera ejecución**: El primer modelo tardará en descargarse | |
| 2. **Espacio en disco**: Los modelos se cachean en el Space | |
| 3. **Timeout**: Modelos grandes pueden necesitar más tiempo | |
| 4. **Reinicio del Space**: Los modelos descargados se pierden (Spaces efímeros) | |
| --- | |
| ¡Disfruta del nuevo Llama Dev Suite PRO v5! Cualquier feedback de diseño o UX es más que bienvenido. 🦙✨ | |