jeanmarcocruz207's picture
Upload 29 files
7d0a50b verified
|
Raw
History Blame Contribute Delete
6.42 kB
---
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. 🦙✨