Intermediário 13 minNo-code

Dify auto-hospedado: criar apps de IA com o seu LLM local

Dify é uma plataforma open source que permite construir aplicações de IA — chatbots, workflows, agentes, assistentes RAG — sem escrever uma linha de código, por meio de uma interface visual. Auto-hospedada e integrada ao Ollama, ela oferece uma camada completa de « no-code » sobre seus modelos locais: seus prompts, documentos e dados nunca saem da sua máquina. Este guia abrange a implantação com Docker Compose, a conexão com um LLM local e a construção de um primeiro assistente RAG funcional.

Por Marie L.·Atualização 2026-08-27·Testado no Windows, macOS e Linux

#Por que Dify em vez de uma interface de chat

Open WebUI ou LM Studio são suficientes para conversar com um modelo. O Dify busca ir um nível além: construir aplicações reutilizáveis. Você define um prompt de sistema, conecta a ele uma base de conhecimento, expõe tudo por meio de uma API ou um widget de chat integrável e versiona suas iterações. É o equivalente local e de código aberto ao OpenAI Assistants ou ao Coze.

O interesse do conjunto Dify + Ollama é duplo. Primeiro, a confidencialidade: ao contrário de Dify conectado a GPT-4 ou Claude, aqui os documentos indexados e as conversas permanecem na sua infraestrutura. Em seguida, o custo: nenhum token cobrado, você pode iterar em centenas de prompts sem monitorar uma fatura de API.

Chatbot
Um assistente conversacional com prompt de sistema, variáveis de entrada e memória de conversa.
Agente
Um assistente capaz de chamar ferramentas (busca web, cálculo, API) em loop até resolver a tarefa.
Workflow
Uma sequência visual de nós (LLM, condição, extração, HTTP) para processamento determinístico.
Knowledge / RAG
Indexação dos seus documentos para que as aplicações respondam com base neles, com citações das fontes.
i
Sem código, mas não sem configuração
O Dify dispensa a escrita de código de aplicação, mas continua sendo uma ferramenta técnica: você manipula prompts, variáveis e parâmetros de divisão de documentos. Reserve uma boa hora para se familiarizar com a ferramenta, além da simples instalação.

#Pré-requisitos

O kit Copiloto Local

Este guia leva você ao modelo. O kit leva você ao copiloto que programa no seu editor.

  • Espaço online vitalício
  • PDF + arquivos
  • Atualizações vitalícias

Dify é um aplicativo com vários contêineres (API, worker, frontend, banco de dados PostgreSQL, Redis, banco de dados vetorial). Ele é implantado via Docker Compose. Quanto ao modelo, pressupõe-se que o Ollama já esteja rodando e escutando na porta padrão.

Docker + Docker Compose
Docker Engine recente com o plugin Compose (comando docker compose). No Windows/macOS, o Docker Desktop é suficiente.
Ollama funcionando
O daemon Ollama instalado e acessível em http://localhost:11434. Teste com o comando ollama list antes de começar.
Um modelo de chat
Por exemplo, qwen3.5:9b (256k de contexto, multimodal, Apache 2.0), a opção de referência para 8 GB em 2026. Em Q4, cabe em ~6,6 GB de VRAM (uma RTX 3060 de 12 GB é mais que suficiente).
Um modelo de embeddings
Indispensável para o RAG: nomic-embed-text é a escolha padrão, leve e eficiente.
Recursos
Reserve cerca de 8 GB de RAM para a stack do Dify em si, além da VRAM/RAM consumida pelos seus modelos Ollama.
Terminal — preparar os modelos
# Vérifier qu'Ollama répond
ollama list

# Modèle de chat (choisissez selon votre VRAM)
ollama pull qwen3.5:9b

# Modèle d'embeddings pour le RAG
ollama pull nomic-embed-text

#Instalar o Dify com Docker Compose

O Dify fornece um repositório oficial com uma pasta docker pronta para uso. Você clona o repositório, copia o arquivo de exemplo de configuração do ambiente e inicia a stack.

  1. 01
    Clonar o repositório
    Baixe a última versão estável do projeto do GitHub, depois acesse a pasta docker que contém o arquivo docker-compose.yaml.
  2. 02
    Criar o arquivo .env
    Copie .env.example para .env. Os valores padrão são suficientes para uso local; é nesse arquivo que você ajustará as portas ou os segredos mais tarde.
  3. 03
    Iniciar a stack
    Execute docker compose up -d. A primeira inicialização baixa as imagens e inicializa o banco de dados PostgreSQL; reserve alguns minutos.
  4. 04
    Criar a conta administradora
    Abra http://localhost/install no navegador e preencha o e-mail e a senha do primeiro administrador. Essa conta gerenciará o espaço de trabalho.
Terminal — implantação
git clone https://github.com/langgenius/dify.git
cd dify/docker

cp .env.example .env

docker compose up -d

# Vérifier que les conteneurs tournent
docker compose ps
→
A interface está na porta 80
Por padrão, o frontend do Dify fica exposto em http://localhost (porta 80), não em uma porta de aplicação incomum. Se a porta 80 já estiver ocupada, modifique EXPOSE_NGINX_PORT no arquivo .env antes de executar novamente docker compose up -d.

#Conectar o Ollama como fornecedor de modelos

O Dify só reconhece seus modelos locais se você configurar o Ollama como provedor. Isso é feito nas configurações do modelo, não em um arquivo de configuração. O principal ponto de atenção é a URL: de dentro de um contêiner Docker, localhost se refere ao próprio contêiner, e não à máquina host em que o Ollama está rodando.

  1. 01
    Abrir as configurações dos fornecedores
    Clique em seu avatar no canto superior direito → Configurações → Fornecedores de modelos. Procure Ollama na lista e selecione-o.
  2. 02
    Informar o URL do servidor
    No campo Base URL, insira o endereço acessível a partir do contêiner (ver o aviso abaixo). O nome do modelo deve corresponder exatamente ao que é retornado por ollama list, por exemplo qwen3.5:9b.
  3. 03
    Adicionar o modelo de chat
    Tipo de modelo: LLM. Insira o tamanho do contexto (por exemplo, 8192 ou mais conforme o modelo) e confirme. O Dify testa a conexão ao salvar.
  4. 04
    Adicionar o modelo de embeddings
    Repita a operação com nomic-embed-text escolhendo o tipo Text Embedding. Sem ele, você não poderá construir uma base de conhecimento.
  5. 05
    Definir os modelos padrão
    Ainda nas configurações, defina qwen3.5:9b como modelo de sistema padrão e nomic-embed-text como modelo de embeddings padrão.
!
localhost não funciona a partir do contêiner
O Ollama roda na máquina host, mas o Dify roda no Docker. Use http://host.docker.internal:11434 no Docker Desktop (Windows/macOS). No Linux, use o IP do gateway do Docker (geralmente http://172.17.0.1:11434) ou inicie o Ollama com OLLAMA_HOST=0.0.0.0 e depois aponte para o IP da máquina host na rede local.
Terminal — expor Ollama na rede (Linux)
# Rendre Ollama joignable au-delà de localhost
# (à ajouter dans le service systemd ou l'environnement)
OLLAMA_HOST=0.0.0.0 ollama serve

# Vérifier depuis l'hôte que l'API répond
curl http://localhost:11434/api/tags

#Construir um primeiro assistente RAG sem escrever código

O RAG (Retrieval-Augmented Generation) permite que o modelo responda com base em seus documentos, em vez de depender apenas dos conhecimentos adquiridos durante o treinamento. No Dify, isso é feito por meio de uma base de conhecimento (Knowledge), que depois é associada a uma aplicação.

  1. 01
    Criar uma base de conhecimento
    Aba Knowledge → Criar. Importe seus arquivos (PDF, Markdown, TXT, DOCX). O Dify os divide automaticamente em blocos (chunks).
  2. 02
    Ajustar a segmentação e a indexação
    Escolha o modo de indexação 'alta qualidade' que utiliza o seu modelo de embeddings nomic-embed-text. Ajuste o tamanho dos chunks se seus documentos forem muito estruturados (tabelas, código).
  3. 03
    Criar a aplicação de chat
    Aba Studio → Criar um app → Chatbot. Dê a ele um nome e uma descrição.
  4. 04
    Escrever o prompt de sistema
    No editor, descreva o papel do assistente: "Você responde apenas com base nos documentos fornecidos. Se a informação não estiver presente, diga isso." Isso limita as alucinações.
  5. 05
    Vincular a base de conhecimento
    No painel de Contexto do app, adicione a base criada no passo 1. Ative a citação de fontes para que as respostas mostrem os trechos utilizados.
  6. 06
    Testar e depois publicar
    Use o painel de depuração à direita para fazer perguntas. Quando o comportamento for adequado, clique em Publicar para obter uma URL de chat e uma chave de API.
→
O modelo de embeddings importa tanto quanto o modelo de chat
A qualidade de um RAG depende principalmente da relevância dos trechos recuperados. Um bom modelo de embeddings (nomic-embed-text, ou mxbai-embed-large se você tiver margem) melhora significativamente as respostas, mesmo com um modelo de chat simples. Não invista tudo em um grande LLM ignorando os embeddings.

#Fluxos e agentes: até onde o no-code vai

Além de um simples chatbot, o Dify oferece dois modos mais avançados. O modo Workflow apresenta uma área de trabalho visual onde você conecta nós: entrada do usuário, chamada ao LLM, condição (if/else), extração de parâmetros, requisição HTTP, iteração sobre uma lista. Assim, você constrói pipelines determinísticos — por exemplo: receber um e-mail, classificá-lo, extrair as entidades e depois redigir uma resposta padrão.

O modo Agente, por outro lado, deixa o modelo decidir quais ferramentas chamar e em qual ordem, em loop, até chegar a um resultado. É mais poderoso, mas mais frágil: a qualidade depende fortemente da capacidade do modelo de raciocinar e respeitar o formato de chamada das ferramentas. Modelos locais muito pequenos (2-4B) têm dificuldade com isso; opte por um modelo desenvolvido para uso de ferramentas, tipo GLM 4.7 Flash (MoE 30B-A3B, MIT, ~19 GB) ou Qwen 3.8 27B (~18 GB) se sua VRAM permitir.

O que o no-code faz bem
Prototipar rapidamente um chatbot RAG, conectar algumas etapas LLM, expor uma API sem precisar escrever backend, iterar sobre prompts em equipe.
Onde surgem dificuldades na execução local
Agentes exigentes que usam várias ferramentas precisam de um modelo capaz de usar ferramentas de forma confiável e, portanto, de VRAM. Um Qwen 3.5 9B é suficiente para RAG, mas raramente para um agente complexo.
Quando passar para o código
Lógica de negócios refinada, integrações personalizadas, controle total do pipeline de recuperação: uma biblioteca como a LangChain assume o comando onde o canvas visual mostra suas limitações.

#Solução de problemas

Erro 'Connection refused' ao adicionar o modelo
O Dify não consegue se conectar ao Ollama. O problema é quase sempre a URL: substitua localhost por host.docker.internal (Docker Desktop) ou pelo IP do gateway do Docker (Linux) e verifique se o Ollama está de fato escutando em 0.0.0.0.
O modelo não aparece
O nome informado não corresponde ao listado por ollama list. Copie o nome exato, incluindo a tag (qwen3.5:9b e não qwen3.5).
Erro durante a indexação dos documentos
O modelo de embeddings não está configurado ou não foi baixado. Faça ollama pull nomic-embed-text e selecione-o como modelo de embeddings padrão.
Respostas muito lentas
Parte do modelo de chat provavelmente está sendo executada na CPU. Mude para uma quantização mais leve (Q4_K_M) ou para um modelo menor e verifique se a GPU está realmente sendo usada no Ollama.
A porta 80 já está em uso
Outro serviço está usando a porta. Altere EXPOSE_NGINX_PORT no arquivo .env (por exemplo, 8080) e execute novamente docker compose up -d.
Respostas fora do assunto apesar do RAG
Verifique se a base de conhecimento está corretamente vinculada ao aplicativo e se o prompt de sistema obriga o modelo a se basear no contexto. Ajuste também o tamanho dos chunks.

#Para se aprofundar

O valor do Dify depende da robustez do modelo e da infraestrutura que o sustentam. Esses guias consolidam os componentes nos quais ele se apoia.

Instalar Ollama
O daemon que serve seu modelo de chat e seus embeddings na porta 11434 — a base de toda a stack Dify local.
RAG local com ChromaDB e Ollama
Para entender o que o Dify automatiza nos bastidores e retomar o controle em Python quando o no-code mostra suas limitações.
n8n + Ollama: automatizar localmente
Outra abordagem sem código, voltada para automação de tarefas, complementar aos workflows do Dify.
Este guia ajudou você?

Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.