- Arrancar Open WebUI, Ollama y Qdrant con Docker Compose.
- Entender qué hace cada servicio y cómo se comunican.
- Verificar que el stack responde antes de subir documentos.
Estructura del proyecto
aulafy-stack/
docker-compose.yml
data/
ollama/
open-webui/
qdrant/docker-compose.yml
services:
ollama:
image: ollama/ollama:latest
container_name: aulafy-ollama
ports:
- "11434:11434"
volumes:
- ./data/ollama:/root/.ollama
restart: unless-stopped
qdrant:
image: qdrant/qdrant:latest
container_name: aulafy-qdrant
ports:
- "6333:6333"
- "6334:6334"
volumes:
- ./data/qdrant:/qdrant/storage
restart: unless-stopped
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: aulafy-open-webui
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://ollama:11434
- VECTOR_DB=qdrant
- QDRANT_URI=http://qdrant:6333
volumes:
- ./data/open-webui:/app/backend/data
depends_on:
- ollama
- qdrant
restart: unless-stoppedArranque
mkdir aulafy-stack cd aulafy-stack # crea docker-compose.yml con el contenido anterior docker compose up -d docker compose ps
http://localhost:3000 para Open WebUI y http://localhost:6333/dashboard para Qdrant. Si ambas cargan, la base está viva.Descarga un modelo
docker exec -it aulafy-ollama ollama pull qwen3:4b docker exec -it aulafy-ollama ollama run qwen3:4b
Evalúa antes de confiar
Subir documentos y recibir una respuesta bonita no demuestra que el RAG funcione. Crea una mini batería de preguntas con respuesta esperada, fuente esperada y criterio de fallo.
evals_rag:
- id: "manual-001"
pregunta: "¿Cuál es el plazo de devolución?"
fuente_esperada: "manual_cliente.pdf#p12"
debe_contener:
- "30 días"
- "ticket de compra"
fallo_si:
- "no cita fuente"
- "mezcla política antigua"
- "responde sin evidencia"Comandos útiles
docker compose logs -f open-webui docker compose logs -f ollama docker compose logs -f qdrant docker compose pull docker compose up -d docker compose down
Si has guardado la evidencia de esta lección, continúa con «Chatbot que cita la ley». Si no, repite la comprobación antes de avanzar.