jeanmarcocruz207's picture
Upload 29 files
7d0a50b verified
|
raw
history blame contribute delete
6.42 kB

A newer version of the Gradio SDK is available: 6.18.0

Upgrade
metadata
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.).

# 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:

./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 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. 🦙✨