Entrar ou criar conta

Laboratório em bancada

Laboratório: RAG local com Ollama, Open WebUI e Qdrant

Você terá um sistema de perguntas e respostas baseado em RAG rodando localmente, usando Ollama, Open WebUI e Qdrant. O laboratório leva cerca de 2 horas.

IA aplicada com Ollama e modelos abertos: LLMs locais, RAG e agentes
Ligado ao treinamento IA aplicada com Ollama e modelos abertos: LLMs locais, RAG e agentes
Duração estimada
120 min
Passos
12
Validações
5
Objetivo

Implementar um pipeline completo de Retrieval-Augmented Generation (RAG) em ambiente local, usando apenas software de código aberto. Você irá instalar e configurar Ollama para servir um LLM, Qdrant como banco vetorial e Open WebUI para interface gráfica, conectando tudo para consultar um conjunto de documentos próprios.

Topologia

Uma máquina local (192.168.1.10) executa três serviços: Ollama (porta 11434), Qdrant (porta 6333) e Open WebUI (porta 8080). O usuário acessa o Open WebUI via navegador. O Open WebUI consulta Ollama para geração e Qdrant para busca vetorial. Nenhum serviço exposto à internet.

┌─────────────┐n│ Navegador   │n└─────┬───────┘n      │ http://192.168.1.10:8080n┌─────▼───────┐n│ Open WebUI  │n├─────┬───────┤n│     │       │n▼     ▼       nOllama Qdrant n(11434)(6333) 

Equipamentos e software

ItemRequisito, licença ou versão
PC ou VMCPU x86_64 de 4 núcleos, 8GB RAM, 20GB disco, portas 8080, 11434, 6333 livres
OllamaMIT · a versão estável atual
Open WebUIApache-2.0 · a versão estável atual
QdrantApache-2.0 · a versão estável atual
PythonPSF · 3.10 ou superior

Roteiro

  1. Preparar ambiente

    Atualize o sistema e instale Docker. Docker simplifica a execução dos serviços isoladamente.

    sudo apt update && sudo apt upgrade -ynsudo apt install docker.io docker-compose -y

    O que você deve ver: Docker instalado, serviços docker ativos

  2. Baixar e rodar Qdrant

    Qdrant será o banco vetorial. Ele armazena embeddings dos seus documentos.

    docker run -d --name qdrant -p 6333:6333 qdrant/qdrant

    O que você deve ver: Container qdrant ativo, porta 6333 ouvindo

  3. Instalar Ollama

    Ollama serve o modelo de linguagem localmente, sem depender de nuvem.

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

    O que você deve ver: Ollama instalado, comando 'ollama' disponível

  4. Baixar modelo LLM

    Escolha um modelo aberto, por exemplo, 'llama3'. Consulte a documentação para outros modelos.

    ollama pull llama3

    O que você deve ver: Download do modelo concluído

  5. Rodar Ollama

    Inicie o servidor Ollama para aceitar requisições.

    ollama serve &

    O que você deve ver: Ollama ouvindo na porta 11434

  6. Rodar Open WebUI

    Open WebUI oferece interface gráfica e integra Ollama e Qdrant.

    docker run -d --name open-webui -p 8080:8080 -e 'OLLAMA_BASE_URL=http://host.docker.internal:11434' -e 'QDRANT_URL=http://host.docker.internal:6333' open-webui/open-webui:latest

    O que você deve ver: Open WebUI ouvindo na porta 8080

  7. Acessar Open WebUI

    Abra o navegador em http://localhost:8080. Crie usuário e faça login.

    O que você deve ver: Tela de login/cadastro do Open WebUI

  8. Carregar documentos

    No Open WebUI, acesse a área de RAG e faça upload de um PDF ou texto. O sistema irá indexar e gerar embeddings via Ollama, armazenando no Qdrant.

    O que você deve ver: Documento listado como indexado, sem erros

  9. Realizar consulta RAG

    Digite uma pergunta sobre o conteúdo do documento. O sistema busca trechos relevantes no Qdrant e gera resposta com o LLM.

    O que você deve ver: Resposta contextualizada, citando o documento

  10. Verificar logs dos serviços

    Confira os logs dos containers para identificar possíveis falhas.

    docker logs qdrantndocker logs open-webui

    O que você deve ver: Logs sem erros críticos

  11. Testar persistência

    Reinicie os containers e verifique se os documentos indexados permanecem disponíveis.

    docker restart qdrant open-webui

    O que você deve ver: Documentos e histórico preservados após reinício

  12. Limpar ambiente

    Para liberar recursos, pare e remova os containers.

    docker stop qdrant open-webui && docker rm qdrant open-webui

    O que você deve ver: Containers removidos

Como saber que funcionou

TesteComandoCritério
Acesso ao Open WebUIcurl -I http://localhost:8080HTTP 200 OK
Ollama respondendocurl http://localhost:11434/api/tagsLista de modelos disponíveis
Qdrant ativocurl http://localhost:6333/collectionsJSON com coleções (mesmo vazio)
Resposta RAG contextualizadaResposta do LLM faz referência ao documento carregado
Persistência dos dadosDocumentos indexados permanecem após restart dos containers

Troubleshooting

SintomaCausa provávelCorreção
Open WebUI não acessívelPorta 8080 bloqueada ou container não iniciouVerifique firewall e status do container com 'docker ps'
Ollama não respondeServiço não iniciado ou porta 11434 ocupadaExecute 'ollama serve' e verifique conflitos de porta
Qdrant sem coleções após uploadFalha na integração com Open WebUICheque variáveis de ambiente e logs dos containers
Respostas genéricas, sem contextoDocumentos não indexados corretamenteReindexe os documentos via Open WebUI e monitore logs
Erro ao baixar modelo no OllamaConexão de internet instável ou falta de espaço em discoVerifique conectividade e espaço disponível

Segurança e hardening

  • Nunca exponha as portas dos serviços diretamente na internet sem autenticação e firewall
  • Utilize senhas fortes no Open WebUI
  • Restrinja acesso às portas 8080, 11434 e 6333 à rede local
  • Monitore logs para identificar acessos não autorizados
  • Atualize os containers regularmente para corrigir vulnerabilidades

Checklist final

Referências

  1. Ollama Documentation
  2. Open WebUI Documentation
  3. Qdrant Documentation
  4. LangChain Python API Reference