Open WebUI: interface semelhante ao ChatGPT para Ollama

Open WebUI Ollama é hoje a combinação mais prática para ter uma interface tipo ChatGPT em sua própria máquina, sem dependência de nuvem. Essa pilha inteiramente auto-hospedada transforma seu servidor Ollama em uma aplicação web multiusuário, com histórico de conversas, gestão de modelos e RAG documental. Este guia detalha a instalação de Open WebUI Ollama via Docker, a configuração de rede, os modelos compatíveis de acordo com sua VRAM, as funcionalidades avançadas (RAG, multiusuário, MCP) e as limitações que você deve conhecer antes de uma implantação em produção interna.

O que é Open WebUI e por que associá-lo a Ollama

Open WebUI (antigo Ollama WebUI) é um front-end open-source escrito em SvelteKit + FastAPI, publicado sob licença BSD-3 em github.com/open-webui/open-webui. Ele oferece uma interface conversacional equivalente à do ChatGPT, mas conectada a um backend de inferência local. Ollama desempenha esse papel de backend: um daemon que carrega modelos GGUF quantizados e expõe uma API HTTP compatível com a OpenAI na porta 11434.

A associação dos dois dá uma interface para LLM local completa:

Diferentemente do LM Studio, que é para um único usuário e funciona apenas no desktop, o Open WebUI gerencia contas, grupos, permissões por modelo e um modo RAG com uma base vetorial ChromaDB integrada. É a opção recomendada para compartilhar um servidor de inferência entre vários colaboradores.

Instalação via Docker: o método recomendado

L'installation WebUI Docker é a opção suportada pela equipe do Open WebUI. Ela evita conflitos de dependências Python e permite atualizações atômicas.

Pré-requisitos :

Comando mínimo (Ollama já instalado na máquina hospedeira) :

docker run -d -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

A interface é então acessível em http://localhost:3000. A primeira conta criada é automaticamente promovida a administradora.

Stack docker-compose tudo em um (Ollama + WebUI + GPU NVIDIA) : ver o arquivo de referência em docs.openwebui.com/getting-started/quick-start. O serviço ollama deve montar um volume persistente /root/.ollama para manter os modelos baixados entre reinícios, caso contrário, você vai baixar novamente centenas de gigabytes a cada docker compose down.

Para AMD ROCm, use a imagem ghcr.io/open-webui/open-webui:main combinada com ollama/ollama:rocm. O desempenho da RX 7900 XTX corresponde a aproximadamente 70-80 % do desempenho de uma RTX 4090 em Q4_K_M (valor estimado, depende do modelo).

Escolher o modelo adequado ao seu hardware

Open WebUI exibe todos os modelos presentes no repositório Ollama local. O fator limitante continua a VRAM. Aqui estão três níveis coerentes com o hardware de uso comum e profissional.

Uma RTX 4090 (24 GB de VRAM) é adequada para modelos de 30 a 70B em Q4 com offload parcial para a CPU:

Uma estação de trabalho com 2× RTX 6000 Ada (96 GB no total) permite considerar os MoE compactos:

Um servidor 8× H100 (640 GB) ou cluster Abra as fronteiras:

Para um dimensionamento preciso de acordo com sua placa, use o configurador de QualLLM que cruza a VRAM disponível, a quantização desejada e o comprimento de contexto alvo.

Recursos avançados: RAG, funções, MCP

Open WebUI vai além de um simples chat. Três capacidades merecem ser configuradas desde a instalação.

RAG integrado : adicione arquivos PDF, DOCX, TXT ou URLs a uma "Coleção". O Open WebUI os divide (tamanho padrão dos chunks de 1500, sobreposição de 100), gera embeddings via sentence-transformers/all-MiniLM-L6-v2 localmente ou via Ollama (nomic-embed-text), e armazena no ChromaDB. Na inferência, os chunks relevantes são injetados no contexto. Para bancos de dados volumosos, mude para PostgreSQL + pgvector via a variável VECTOR_DB=pgvector.

Funções em Python (Pipelines) : Open WebUI permite executar código arbitrário em pré- ou pós-processamento. Exemplo: rotear automaticamente os prompts que contêm « code » para Qwen3-Coder-Next 80B-A3B, e os demais para Mistral Medium 3.5 128B. Os pipelines rodam em um contêiner separado na porta 9099, isolamento útil para a segurança.

Suporte ao protocolo MCP (Model Context Protocol) : a partir da versão 0.6, Open WebUI utiliza os servidores MCP. Veja a especificação oficial para servidores disponíveis (filesystem, GitHub, Postgres, etc.).

Comparação detalhada dos frontends em quelllm.fr/compare/open-webui-vs-lm-studio.

Desempenho e tokens por segundo observados

As taxas dependem da combinação modelo/GPU. Algumas medições de referência com Ollama 0.5+ e Open WebUI 0.6+ em Q4_K_M:

O streaming WebSocket do Open WebUI adiciona uma latência imperceptível (<10 ms). O gargalo continua sendo a inferência em si. Para otimizar, ative OLLAMA_FLASH_ATTENTION=1 et OLLAMA_KV_CACHE_TYPE=q8_0 no ambiente do contêiner Ollama: economia de memória de 30-40% no contexto (ver github.com/ollama/ollama/blob/main/docs/faq.md).

Para modelos de raciocínio como DeepSeek R1 671B, espere de 3 a 10× mais tokens gerados por solicitação (cadeia de pensamento interna), portanto tempos de resposta de vários minutos mesmo com uma infraestrutura potente.

Segurança e implantação para múltiplos usuários

Nas empresas, três precauções são necessárias:

Audite regularmente os logs /app/backend/data/audit.log que registram os prompts e os uploads.

FAQ

P: Open WebUI funciona sem Ollama?

Sim. Open WebUI aceita qualquer API compatível com a OpenAI: vLLM, servidor llama.cpp, LiteLLM, TGI. Configure a URL em Configurações → Conexões. Ollama continua sendo a forma mais simples de começar, pois sua CLI gerencia automaticamente o download, a quantização GGUF e a memória. Para uma implantação de alto desempenho com paralelismo tensorial maduro, vLLM ou SGLang são preferíveis.

P: Qual a quantidade mínima de VRAM para começar?

Com 8 GB de VRAM (RTX 3060, 4060), você pode rodar confortavelmente modelos de 7-8B, como variantes destiladas leves. Com 12-16 GB, opte por modelos de 13-14B. A regra empírica: VRAM ≈ parâmetros × 0,6 em Q4_K_M, mais 1-2 GB para o contexto 8K. Veja quelllm.fr/guide/vram-quantification para os detalhes por quantização (Q4, Q5, Q8, FP16).

P: Como instalar Open WebUI sem Docker?

Via pip install open-webui puis open-webui serve. Este método está documentado, mas oferece menos isolamento: possíveis conflitos com outros ambientes Python e atualizações mais delicadas. Reserve-o para máquinas de desenvolvimento. Para uma estação de trabalho com um único usuário, LM Studio ou Jan podem ser mais simples; compare em quelllm.fr/compare/lm-studio-vs-jan.

P: É possível conectar Open WebUI a vários servidores Ollama?

Sim. Em Configurações → Conexões, adicione várias URLs do Ollama (ex. http://gpu-01:11434, http://gpu-02:11434). Open WebUI agrega os modelos disponíveis. O roteamento é manual (o usuário escolhe o modelo); para balanceamento automático, insira o LiteLLM como proxy. Útil para distribuir Mixtral 8x22B Instruct em um nó e Llama 3.1 405B Instruct em outro.

P: As conversas são criptografadas em repouso?

Não por padrão. O banco de dados SQLite /app/backend/data/webui.db armazena as mensagens em texto claro. Para criptografia em repouso, use um volume Docker em um sistema de arquivos criptografado (LUKS, criptografia nativa do ZFS) ou mude para PostgreSQL com Criptografia de Dados Transparente. O tráfego de rede, por sua vez, pode ser criptografado via reverse proxy TLS mencionado acima.

P: Open WebUI suporta visão e imagens?

Sim, com modelos multimodais. Envie uma imagem para a conversa: o Open WebUI a codifica em base64 e a envia para o Ollama se o modelo oferecer suporte à modalidade de visão. Modelos compatíveis no catálogo: Qwen 2.5 VL 72B, Qwen 3 VL 235B-A22B, LLaVA-OneVision 72B et Molmo 72B.

Conclusão

Open WebUI com Ollama constitui a pilha de referência para oferecer uma interface semelhante à do ChatGPT em auto-hospedagem, do notebook ao cluster de GPUs. A instalação com Docker leva quinze minutos, e a configuração de RBAC e RAG pode ser acrescentada em algumas horas. A escolha do modelo continua sendo o fator determinante: alinhe precisamente os parâmetros, a quantização e a VRAM disponível. Para explorar os 249 modelos indexados de acordo com suas restrições de hardware, consulte o catálogo completo de QualLLM ou deixe o configurador recomendar o par modelo/quantização ideal para o seu GPU.

Artigo publicado em por Mohamed Meguedmi · Fonte de dados: /api/models.json · Licença de conteúdo: CC BY 4.0.

Algum erro ou alguma atualização para informar? Contribuir.