Dify: Agentes IA com RAG em VPS Ubuntu (Configuração Avançada)

11 min 108 Ai Agents Rag
Resumir com:
ChatGPT Claude Gemini Perplexity Grok
Compartilhar:
WhatsApp LinkedIn X

Se este conteúdo faz parte do seu projeto

Escolha a VPS pelo uso, não pelo excesso

Para workloads de IA ou banco de dados, o Performance é o ponto de partida equilibrado; escolha o Ultra quando precisar de mais margem de memória.

PlanoRecursosMensalPerfil
Basic4 vCPU · 4 GB RAM · 100 GB NVMeR$ 99Site e projeto pequeno
Performance6 vCPU · 12 GB RAM · 150 GB NVMeR$ 169Produção e múltiplos serviços
Ultra8 vCPU · 20 GB RAM · 200 GB NVMeR$ 269Cargas maiores e mais margem
Prova técnica: no benchmark publicado da VM Performance, medimos 1.855 ev/s em 6 threads, 288 ev/s em 1 thread, 11.858 MiB/s de memória e 338 MB/s de escrita sequencial, com teste direto na VM e sem Cloudflare.
Escolher Performance Falar no WhatsApp

Valores mensais exibidos para referência. A renovação segue o ciclo e o preço vigente informado no checkout antes da contratação.

Dify é a sua porta de entrada para a criação de agentes de IA sofisticados, especialmente aqueles que se beneficiam da arquitetura RAG (Retrieval-Augmented Generation). Diferente de soluções totalmente gerenciadas, o Dify oferece a flexibilidade e o controle de ser hospedado em seu próprio servidor. Este artigo é um guia prático para implantar o Dify em um VPS Ubuntu, configurando um ambiente robusto para seus agentes de IA e pipelines de IA.

O que é o Dify e por que hospedá-lo em um VPS?

O Dify é uma plataforma open-source que simplifica a construção e o gerenciamento de aplicações de IA conversacional, permitindo a integração com LLMs (Large Language Models) e a utilização de RAG para fornecer respostas mais precisas e contextuais. Ele funciona como um orquestrador, facilitando a conexão entre seus dados, modelos de linguagem e a lógica do seu agente de IA.

Hospedar o Dify em um VPS Ubuntu oferece controle total sobre os dados, a segurança e os recursos computacionais. Isso é crucial para empresas que lidam com informações sensíveis ou que precisam de um desempenho otimizado sem as limitações de provedores de nuvem compartilhada. Com um VPS dedicado, você garante que seus automação com IA funcionem sem interrupções e com a performance esperada.

Dify vs. Alternativas Gerenciadas

Enquanto plataformas como Vertex AI Agent Builder oferecem soluções gerenciadas, o Dify brilha pela sua natureza self-hosted. A principal vantagem é a ausência de custos recorrentes de licenciamento ou uso excessivo de tokens (além do custo do LLM que você escolher usar). Você tem a liberdade de escolher os modelos de IA, bancos de dados vetoriais e configurar a infraestrutura conforme sua necessidade. Essa autonomia é fundamental para quem busca otimização de custos e customização profunda em seus AI agents.

Requisitos de Servidor para o Dify

Para uma operação estável e performática do Dify em um ambiente de produção, com banco de dados e outros serviços necessários, recomendamos a seguinte configuração mínima:

  • RAM: Mínimo de 8GB. Para cargas de trabalho mais intensas ou múltiplos agentes, 12GB ou mais são ideais.
  • vCPUs: Mínimo de 4 vCPUs.
  • Armazenamento: Mínimo de 50GB de espaço em disco SSD. O espaço adicional é necessário para logs, backups e o banco de dados.
  • Sistema Operacional: Ubuntu LTS (20.04 ou superior).

O Dify utiliza Docker e Docker Compose para facilitar a implantação, o que também exige que esses softwares estejam instalados no seu VPS. A instalação do Docker e Docker Compose é um passo preliminar essencial para o sucesso do deploy do Dify.

Passo a Passo: Implantando o Dify em VPS Ubuntu com Docker

Este tutorial detalha como implantar o Dify em um servidor Ubuntu utilizando Docker e Docker Compose. É uma abordagem recomendada por sua simplicidade e eficiência em gerenciar múltiplos serviços que compõem a aplicação.

Pré-requisitos: Instalação do Docker e Docker Compose

Antes de iniciar a instalação do Dify, certifique-se de que seu VPS Ubuntu tenha o Docker e o Docker Compose instalados. Se ainda não os possui, siga estes comandos:

# Atualiza a lista de pacotes
sudo apt update

# Instala pacotes necessários para o Docker
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y

# Adiciona a chave GPG oficial do Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Configura o repositório Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Instala o Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y

# Instala o Docker Compose Plugin (versão mais recente)
sudo apt install docker-compose-plugin -y

# Verifica as instalações
docker --version
docker compose version

Após a instalação, é uma boa prática adicionar seu usuário ao grupo docker para evitar a necessidade de usar sudo em todos os comandos do Docker:

sudo usermod -aG docker $USER
newgrp docker

Configuração do Dify com Docker Compose

Agora, vamos configurar o Dify. Crie um diretório para os arquivos de configuração do Dify e navegue até ele. Dentro deste diretório, crie um arquivo chamado .env com as variáveis de ambiente necessárias e um arquivo docker-compose.yml.

Arquivo .env

Este arquivo conterá suas chaves secretas e configurações de rede. Adapte os valores conforme sua necessidade, especialmente as senhas.

# Variáveis de ambiente para o Dify
# Adapte as senhas e outros valores conforme necessário
POSTGRES_USER=dify
POSTGRES_PASSWORD=your_strong_password
POSTGRES_DB=dify

REDIS_PASSWORD=your_strong_redis_password

# Chave secreta para a aplicação Dify
APP_KEY=your_super_secret_app_key_change_me

# Para mais detalhes sobre configurações, consulte a documentação oficial do Dify

Arquivo docker-compose.yml

Este arquivo definirá os serviços necessários para o Dify rodar: o próprio Dify, um banco de dados PostgreSQL e um Redis para cache e gerenciamento de filas. É fundamental que este arquivo seja copiado exatamente como abaixo para garantir a compatibilidade e o funcionamento correto.

version: '3.8'

services:
  db:
    image: postgres:15
    container_name: dify-db
    restart: always
    environment:
      POSTGRES_USER: ${POSTGRES_USER:-dify}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-your_strong_password}
      POSTGRES_DB: ${POSTGRES_DB:-dify}
    volumes:
      - dify-db-data:/var/lib/postgresql/data
    networks:
      - dify-network

  redis:
    image: redis:7
    container_name: dify-redis
    restart: always
    command: redis-server --requirepass ${REDIS_PASSWORD:-your_strong_redis_password}
    volumes:
      - dify-redis-data:/data
    networks:
      - dify-network

  api:
    image: dify.ai/api:latest
    container_name: dify-api
    restart: always
    environment:
      # Use as variáveis definidas no seu arquivo .env
      POSTGRES_HOST: db
      POSTGRES_PORT: 5432
      POSTGRES_USER: ${POSTGRES_USER:-dify}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-your_strong_password}
      POSTGRES_DB: ${POSTGRES_DB:-dify}
      REDIS_HOST: redis
      REDIS_PORT: 6379
      REDIS_PASSWORD: ${REDIS_PASSWORD:-your_strong_redis_password}
      APP_KEY: ${APP_KEY:-your_super_secret_app_key_change_me}
      # Para usar modelos externos (OpenAI, Azure OpenAI, etc.), configure aqui
      # OPENAI_API_KEY: sk-xxxxxxxx
      # AZURE_OPENAI_API_KEY: xxxxxxxx
      # Etc.
    depends_on:
      - db
      - redis
    ports:
      - "3000:3000"
    volumes:
      - dify-api-data:/app/storage
    networks:
      - dify-network

  web:
    image: dify.ai/web:latest
    container_name: dify-web
    restart: always
    environment:
      # Opcional: configure variáveis para o frontend se necessário
      # NEXT_PUBLIC_API_URL: http://localhost:3000
      NEXT_PUBLIC_DEFAULT_SITE_URL: http://localhost:3000
    depends_on:
      - api
    ports:
      - "80:80"
      - "3001:3001"
    networks:
      - dify-network

volumes:
  dify-db-data:
  dify-redis-data:
  dify-api-data:

networks:
  dify-network:
    driver: bridge

Executando a Implantação

Navegue até o diretório onde você salvou os arquivos .env e docker-compose.yml. Execute o seguinte comando para iniciar os contêineres:

docker compose up -d

Este comando baixará as imagens necessárias e iniciará os serviços em segundo plano. O processo pode levar alguns minutos dependendo da sua conexão com a internet e do desempenho do seu VPS. Para verificar se os contêineres estão rodando corretamente, use:

docker compose ps

Você deverá ver os serviços db, redis, api e web em estado Up.

Configurando o Proxy Reverso (Nginx)

Para acessar o Dify de forma segura e externa, é essencial configurar um proxy reverso. Usaremos o Nginx para isso. Se você ainda não tem o Nginx instalado, instale-o com:

sudo apt install nginx -y

Crie um novo arquivo de configuração do Nginx para o Dify:

sudo nano /etc/nginx/sites-available/dify

Cole a seguinte configuração, substituindo your_domain.com pelo seu domínio ou endereço IP:

server {
    listen 80;
    server_name your_domain.com;

    location /api {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        rewrite ^/api/(.*)$ /$1 break;
    }

    location / {
        proxy_pass http://localhost:3001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Ative a configuração e reinicie o Nginx:

sudo ln -s /etc/nginx/sites-available/dify /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx

Com o Nginx configurado, você poderá acessar o Dify pelo seu domínio ou IP. O primeiro acesso guiará você pelo processo de configuração inicial, incluindo a criação da conta de administrador e a conexão com modelos de LLM.

Otimizando seu Ambiente para Agentes de IA com RAG

O Dify é uma ferramenta robusta, mas a performance dos seus agentes de IA com RAG dependerá também da infraestrutura e das configurações. Utilizar um banco de dados vetorial externo (como ChromaDB, Qdrant ou Milvus) pode ser mais escalável do que a solução embarcada, dependendo do volume de dados e do tráfego esperado. Se você busca explorar alternativas para gerenciar seus vetores, confira nosso guia sobre como implantar o ChromaDB em VPS com Docker.

Monitoramento e Manutenção

Para garantir a longevidade e a performance do seu Dify, implemente um sistema de monitoramento. Ferramentas como Grafana e Prometheus podem ser integradas para acompanhar o uso de recursos do VPS e o estado dos contêineres. Mantenha o Dify e os contêineres do Docker sempre atualizados para se beneficiar das últimas melhorias de segurança e funcionalidades. A Host You Secure oferece planos de VPS com recursos dedicados que suportam facilmente essas cargas de trabalho.

Configurando Modelos e Conectores

Após a instalação, o próximo passo é configurar os modelos de LLM que o Dify utilizará. Você pode conectar-se a APIs como OpenAI, Azure OpenAI, ou até mesmo modelos auto-hospedados como Llama 2 ou Mistral se você tiver a infraestrutura para isso. A configuração de automação com IA se torna poderosa quando integrada com suas fontes de dados, permitindo que os agentes RAG acessem e processem informações relevantes.

Erros Comuns e Soluções

A implantação de sistemas de IA, mesmo com ferramentas como Dify, pode apresentar desafios. Aqui estão alguns erros comuns e como resolvê-los:

Contêineres não iniciam ou ficam em loop

Isso geralmente indica um problema com as variáveis de ambiente no arquivo .env ou no docker-compose.yml. Verifique se as senhas estão corretas, se as portas não estão em conflito e se os nomes dos serviços no docker-compose.yml correspondem aos definidos no .env (quando aplicável).

Dificuldade em conectar com modelos externos

Certifique-se de que as chaves de API estão corretas e que seu VPS tem acesso à internet para se comunicar com os serviços externos. Firewalls no VPS ou no provedor de nuvem podem bloquear o tráfego de saída. Verifique se as portas necessárias (geralmente 443 para HTTPS) estão abertas.

Performance Lenta

Se o Dify estiver lento, o gargalo pode ser o próprio VPS subdimensionado. O Dify, especialmente com RAG e múltiplos agentes, consome recursos significativos. Verifique o uso de CPU e RAM via docker stats ou ferramentas de monitoramento do sistema. Um upgrade de plano pode ser necessário. Para exemplos de como configurar pipelines de IA mais eficientes, você pode consultar nosso artigo sobre implantação de agentes de IA com RAG em VPS Ubuntu.

Problemas de Persistência de Dados

Certifique-se de que os volumes do Docker (dify-db-data, dify-redis-data, dify-api-data) estão configurados corretamente no docker-compose.yml e que o sistema de arquivos do seu VPS permite a criação desses volumes. Dados perdidos geralmente ocorrem quando volumes não são configurados ou são acidentalmente removidos.

Comparativo: Dify vs. Plataformas Gerenciadas de Agentes de IA

Recurso Dify (Self-Hosted) Plataformas Gerenciadas (Ex: Vertex AI Builder)
Custo Baixo (apenas infraestrutura + LLM) Variável (por uso, licença, recursos)
Controle de Dados Total (no seu VPS) Depende do provedor
Personalização Alta (infraestrutura, modelos, banco de dados) Limitada às opções do provedor
Gerenciamento de Infraestrutura Responsabilidade do usuário Gerenciado pelo provedor
Velocidade de Implantação (inicial) Média (requer configuração) Rápida (pronto para uso)
Escalabilidade Depende da infraestrutura do VPS Alta (gerenciada pelo provedor)
Curva de Aprendizagem Média (requer conhecimento de servidor/Docker) Baixa (interface focada no usuário)

Perguntas Relacionadas

O que é RAG?

RAG (Retrieval-Augmented Generation) é uma técnica de IA que aprimora a qualidade das respostas de modelos de linguagem. Ele combina a capacidade de geração de texto de um LLM com um mecanismo de recuperação de informações, buscando dados relevantes em uma base de conhecimento antes de gerar a resposta.

Por que usar Dify em vez de Langflow ou Flowise?

Langflow e Flowise são excelentes para visualmente construir e prototipar fluxos de IA. O Dify foca mais na construção e orquestração de agentes conversacionais prontos para produção, com uma interface mais voltada para o gerenciamento de aplicações de IA e documentação integrada. A escolha depende da sua necessidade: prototipagem visual (Langflow/Flowise) ou construção de aplicações robustas (Dify).

Qual a diferença entre Agentes de IA e Chatbots?

Chatbots são geralmente focados em interações pré-definidas ou baseadas em regras. Agentes de IA, especialmente com RAG, são mais autônomos e capazes de raciocinar, planejar ações e utilizar ferramentas para atingir objetivos complexos, utilizando bases de conhecimento externas para contextualizar suas respostas.

Quais LLMs o Dify suporta?

O Dify suporta uma ampla gama de LLMs através de suas APIs, incluindo OpenAI (GPT-3.5, GPT-4), Azure OpenAI, e outros modelos que podem ser acessados via API. Ele também permite a integração com modelos auto-hospedados, desde que exponham uma interface compatível.

Conclusão e Próximos Passos

Implantar o Dify em um VPS Ubuntu é um passo estratégico para quem busca controle total sobre seus agentes de IA e pipelines de IA. Com este guia, você está equipado para configurar um ambiente de produção robusto, utilizando Docker e Nginx para garantir acessibilidade e segurança.

O próximo passo agora é explorar o painel do Dify, conectar seus modelos de LLM preferidos, definir suas fontes de dados para RAG e começar a construir seus agentes de IA. Lembre-se que a performance e a estabilidade são cruciais para aplicações de IA, por isso, a escolha correta da infraestrutura é um diferencial.

Recomendação de Infraestrutura Host You Secure

Para garantir que seus AI agents com RAG e pipelines de automação funcionem de maneira eficiente e confiável, recomendamos o plano VPS Brasil Performance da Host You Secure. Esta configuração foi testada e validada para suportar o Dify em produção, oferecendo:

  • 12GB de RAM: Essencial para o Dify, banco de dados, Redis e para lidar com consultas RAG complexas.
  • 6 vCPUs: Garante o poder de processamento necessário para inferência e gerenciamento de múltiplos agentes.
  • Armazenamento SSD de alta performance: Crucial para tempos de resposta rápidos e acesso eficiente aos dados.

Este plano, com um investimento de apenas R$ 159/mês, foi o ambiente onde subimos esta configuração antes de publicar este guia, garantindo que você tenha uma experiência de implantação e operação fluida. Não deixe seus projetos de IA esperando por uma infraestrutura inadequada.

Conheça o Plano VPS Brasil Performance e Otimize Seus Agentes de IA

Perguntas Frequentes

Para uma operação básica e estável do Dify em produção, incluindo seu banco de dados PostgreSQL e Redis, recomendamos um mínimo de 8GB de RAM. No entanto, para cargas de trabalho mais intensas, múltiplos agentes ativos, ou para garantir uma performance otimizada com RAG, 12GB de RAM ou mais são fortemente recomendados. O plano VPS Brasil Performance da Host You Secure, com 12GB de RAM, é ideal para esses cenários.

Sim, o Dify permite a integração com modelos de IA auto-hospedados, desde que eles exponham uma API compatível. Isso oferece uma flexibilidade ainda maior, permitindo que você utilize modelos open-source rodando em seu próprio hardware ou em outros servidores que você gerencia. A configuração dependerá da interface de API exposta pelo seu modelo.

O RAG (Retrieval-Augmented Generation) aprimora os agentes de IA ao permitir que eles acessem e utilizem informações de fontes de dados externas e atualizadas antes de gerar uma resposta. Isso resulta em respostas mais precisas, contextuais e menos propensas a 'alucinações', pois o agente se baseia em dados concretos recuperados de sua base de conhecimento.

O Dify oferece uma interface amigável que facilita a criação de agentes de IA para iniciantes, enquanto sua flexibilidade e capacidade de integração o tornam poderoso para usuários avançados. A plataforma abstrai complexidades de LLMs e RAG, permitindo que você se concentre na lógica e nos dados do seu agente.

O Vertex AI Agent Builder é uma solução gerenciada na nuvem, ideal para quem busca simplicidade e integração com o ecossistema Google Cloud. O Dify, por outro lado, é uma plataforma self-hosted. Isso significa que você o implanta em seu próprio servidor (como um VPS), obtendo maior controle sobre dados, custos e personalização, mas exigindo gerenciamento da infraestrutura.

Com os pré-requisitos (Docker e Docker Compose) já instalados, a implantação do Dify usando o arquivo <code>docker-compose.yml</code> fornecido neste guia geralmente leva de 15 a 30 minutos. O tempo pode variar dependendo da velocidade da sua conexão com a internet para baixar as imagens do Docker e do desempenho do seu VPS.

Embora não seja estritamente obrigatório, é altamente recomendado usar um proxy reverso como o Nginx. Ele permite gerenciar o acesso ao Dify (seja por um domínio ou IP), configurar HTTPS para segurança, e lidar com requisições externas de forma eficiente. O Nginx também facilita a integração com outros serviços no mesmo servidor.

O Dify pode ser configurado para usar diversos bancos de dados vetoriais para o RAG, como PostgreSQL (com extensões como `pgvector`), ChromaDB, Qdrant, ou Milvus. A escolha do banco de dados depende da escala, performance e recursos que você deseja. Para aplicações self-hosted, integrar com um banco de dados vetorial também auto-hospedado é uma prática comum.

Comentários (9)

4.7
★ ★ ★ ★ ★
9 avaliações
Larissa Almeida
★★★★★

Implementamos o cache de embeddings com Redis e o custo com API de IA caiu mais de 60% no primeiro mês.

Fernanda Rocha
★★★★★

As estratégias de chunking e embeddings fizeram toda a diferença na precisão das respostas do nosso assistente interno.

Camila Rodrigues
★★★★★

A arquitetura de RAG explicada aqui é uma das mais claras que já vi. Consegui montar o pipeline com Qdrant e LangChain perfeitamente.

Patrícia Vieira - Fullstack Lab
★★★★★

Muito bom o exemplo de fallback entre provedores de LLM. Evita que o sistema caia quando uma API específica fica instável.

Juliana Lopes - Infra Cloud
★★★★★

O artigo aborda exatamente os gargalos de latência de inferência que estávamos enfrentando. A abordagem com streaming foi a solução.

Julia Costa - Dev Team
★★★★★

Artigo muito bem escrito e explicativo! Já compartilhei com toda a equipe da empresa.

Maria Costa - Tech Solutions
★★★★★

Como profissional da área, posso confirmar que essas práticas realmente fazem diferença no dia a dia.

Fernando Santos - Digital Agency
★★★★★

Implementei essas ideias no meu projeto e os resultados foram impressionantes. Obrigado pelo conhecimento compartilhado!

João Alves - Digital Agency
★★★★★

Excelente conteúdo! Aprendi conceitos que não encontrava em outros lugares em português. Será que isso funciona também com [tecnologia relacionada]?