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

podman run -d -p 3000:8080 -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama
  • With GPU Support: Utilize GPU resources by running the following command:

    sudo podman run -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
  • For CPU Only: If you're not using a GPU, use this command instead:

    podman run -d -p 3000:8080 -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama

Both commands facilitate a built-in, hassle-free installation of both Open WebUI and Ollama, ensuring that you can get everything up and running swiftly.

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