Skip to main content

Conceptos

image.png

Arquitectura

              ┌───────────────────────────────────────────────────────────────┐
              │                        USUARIO                                │
              │───────────────────────────────────────────────────────────────│
              │  💬 Usa navegador web (Chrome, Firefox, etc.)                 │
              │  🌐 Accede a http://tu-servidor:3000                          │
              └───────────────┬───────────────────────────────────────────────┘
                              │ 1️⃣ Escribe / envía prompt
                              ▼
        ┌──────────────────────────────────────────────────────────────────────┐
        │                      🖥️  Open WebUI (contenedor Docker)              │
        │──────────────────────────────────────────────────────────────────────│
        │ - Interfaz tipo ChatGPT                                              │
        │ - Guarda historiales de chat (persistencia)                          │
        │ - Tiene “Knowledge Base” (memoria larga / aprendizaje)               │
        │ - Llama al modelo LLM a través de API local                          │
        └───────────────┬──────────────────────────────────────────────────────┘
                        │ 2️⃣ Envía prompt al motor de IA local (Ollama)
                        ▼
        ┌──────────────────────────────────────────────────────────────────────┐
        │                 🧠 Ollama (host, fuera del contenedor)               │
        │──────────────────────────────────────────────────────────────────────│
        │ - Maneja modelos LLM (Llama 3, Mistral, Phi-3, etc.)                 │
        │ - Usa GPU vía CUDA para acelerar inferencia                          │
        │ - Expone API local http://localhost:11434                            │
        │ - Compatible con múltiples modelos y embeddings                      │
        └───────────────┬──────────────────────────────────────────────────────┘
                        │ 3️⃣ Llama a la GPU para procesar el modelo
                        ▼
        ┌──────────────────────────────────────────────────────────────────────┐
        │             ⚙️ NVIDIA Container Toolkit + Drivers CUDA               │
        │──────────────────────────────────────────────────────────────────────│
        │ - “Puentea” la GPU física hacia los contenedores                     │
        │ - Permite ejecutar CUDA/Tensor ops dentro de Docker                  │
        │ - Asegura compatibilidad entre driver y librerías del contenedor     │
        └───────────────┬──────────────────────────────────────────────────────┘
                        │ 4️⃣ Acceso a la GPU física
                        ▼
        ┌──────────────────────────────────────────────────────────────────────┐
        │                 💻 GPU Física (RTX, CUDA cores, VRAM)                │
        │──────────────────────────────────────────────────────────────────────│
        │ - Ejecuta el modelo LLM en paralelo masivo                           │
        │ - Usa librerías CUDA/cuDNN/TensorRT instaladas en Ubuntu             │
        │ - Devuelve resultados procesados a Ollama                            │
        └──────────────────────────────────────────────────────────────────────┘

 

Requisitos

Ubuntu 24.04 o superior instalado

Drivers Nvidia instalados

  • Ollama → ejecuta el modelo LLM local (usa tu GPU NVIDIA).

  • Open WebUI → interfaz web tipo ChatGPT con historial persistente, usuarios, adjuntos y memoria/Knowledge Base.

  • (Opcional) ChromaDB → memoria vectorial para que “aprenda” de tus chats y documentos (RAG).

Instalar OLLAMA

curl -fsSL https://ollama.com/install.sh | sh

# Arranca el servicio (si no arrancó solo):
sudo systemctl enable --now ollama

Prueba el modelo (descarga automática y usa la GPU si la detecta):

ollama run llama3.1

Consejo: si el prompt responde fluido y nvidia-smi muestra uso durante la generación, está usando GPU.Ejecuta el contenedor usando CPU solo

🏡 Home | Open WebUI

Open WebUI corre dentro de Docker y usa Ollama o PyTorch como backend IA.
Para

que

Instalar

crea un fichero docker-compose.yaml con el contenedor pueda usar tu GPU NVIDIA (para acelerar el modelo Llama 3, Mistral, etc.), necesitas este toolkit. Sin él, tus contenedores funcionarían, pero solo con CPU (10–30 veces más lento).

Installing Open WebUI with Bundled Ollama Support

This installation method uses a single container image that bundles Open WebUI with Ollama, allowing for a streamlined setup via a single command. Choose the appropriate command based on your hardware setup:contenido:

podmanservices:
  runopen-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: unless-stopped
    ports:
      -d "3000:8080"
    environment:
      -p 3000:8080OLLAMA_BASE_URL=http://host.docker.internal:11434
    volumes:
      -v ollama:/root/.ollama -v open-webui:/app/backend/data
    deploy:
      resources:
        reservations:
          devices:
            --name capabilities: [gpu]

volumes:
  open-webui --restart always ghcr.io/open-webui/open-webui:ollama

    Levanta

  • el

    With GPU Support: Utilize GPU resources by running the following command:contenedor:

    sudodocker podmancompose runup -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama

    Elegir
    y
    preparar
    el
  • modelo

    ForModelos CPUconversacionales Onlymuy buenos y “ligeros”: If you're not using a GPU, use this command instead:


  • #
Llama 3.1 Instruct (8B) ollama pull llama3.1 # Mistral (7B) ollama pull mistral # (Opcional) Un modelo de embeddings para RAG ollama pull nomic-embed-text

BothEn commands facilitate a built-in, hassle-free installation of both Open WebUI and Ollama,Settings ensuring thatModels youselecciona cantu getmodelo everythingpor updefecto and(ej. running swiftly.llama3.1).

After installation, you can access Open WebUI at http://localhost:3000. Enjoy! 😄