Plataformas e automação de IA
As plataformas de IA e as ferramentas de automação ajudam você a criar rapidamente aplicativos de IA e fluxos de trabalho de automação, integrando grandes recursos de modelos de linguagem em processos de negócios reais. Este artigo aborda a implantação e o uso de Dify, n8n e LangChain/LangGraph no Ubuntu 26.04.
Modificar
Dify é uma plataforma de desenvolvimento de aplicativos LLM de código aberto que fornece orquestração de prompt visual, RAG (Retrieval-Augmented Generation), fluxos de trabalho de agentes e muito mais, com suporte para vários provedores de modelos.
Requisitos do sistema
- Docker e Docker Compor
- Pelo menos 4 GB de RAM
- Pelo menos 20 GB de espaço em disco
Docker Compor implantação
# Install Docker (if not already installed)
sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo usermod -aG docker $USER
newgrp docker
# Clone the Dify repository
git clone https://github.com/langgenius/dify.git
cd dify/docker
# Copy the environment variable configuration file
cp .env.example .env
# Edit the configuration file (modify as needed)
nano .envPrincipais itens de configuração:
# Important settings in .env file
# Secret key (must change to a random value)
SECRET_KEY=your-random-secret-key-here
# Database configuration
DB_USERNAME=postgres
DB_PASSWORD=your-secure-password
DB_HOST=db
DB_PORT=5432
DB_DATABASE=dify
# Redis configuration
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=your-redis-password
# Storage configuration
STORAGE_TYPE=local
STORAGE_LOCAL_PATH=storage
# Web configuration
WEB_API_URL=http://localhost/api# Start Dify
docker compose up -d
# Check startup status
docker compose ps
# View logs
docker compose logs -f
# Wait for all services to start (about 1-2 minutes)Acessar Dificar
# Dify web interface defaults to port 80
# Open your browser and visit
# http://localhost
# First visit requires setting up an admin account
# Set email and password, then log inUso Básico
Principais módulos de recursos do Dify:
-
Aplicativos – Crie e gerencie aplicativos de IA
- Assistente de bate-papo – Crie chatbots
- Geração de texto - Crie aplicativos de geração de texto
- Agente – Crie agentes de IA autônomos
- Fluxo de trabalho – Orquestre visualmente processos complexos de IA
-
Conhecimento — Funcionalidade RAG
- Carregar documentos (PDF, Word, Markdown, etc.)
- Segmentação e vetorização automáticas
- Faça referência ao conteúdo da base de conhecimento em conversas
-
Provedores de modelos – Configure modelos de IA
Configurar provedores de modelo
Adicione modelos nas configurações do Dify:
# Connect OpenAI
# Settings > Model Providers > OpenAI > Enter API Key
# Connect Anthropic (Claude)
# Settings > Model Providers > Anthropic > Enter API Key
# Connect local Ollama
# Settings > Model Providers > Ollama
# Model name: qwen2.5:14b
# Base URL: http://host.docker.internal:11434
# (Use host.docker.internal to access host machine from Docker)Se Ollama estiver em execução na máquina host, configure-o para permitir o acesso ao contêiner Docker:
# Modify Ollama listen address
sudo systemctl edit ollama
# Add:
# [Service]
# Environment="OLLAMA_HOST=0.0.0.0:11434"
sudo systemctl restart ollamaAtualizar Dify
cd ~/dify/docker
# Pull latest code
git pull origin main
# Update images and restart
docker compose pull
docker compose down
docker compose up -dDados de backup
# Backup Dify data (database and storage)
cd ~/dify/docker
# Stop services
docker compose down
# Backup data volumes
sudo tar -czf ~/dify-backup-$(date +%Y%m%d).tar.gz \
./volumes/
# Restart services
docker compose up -dDify suporta chamar seus aplicativos criados via API. Você pode obter chaves de API e exemplos de chamadas nas configurações do aplicativo. Isso significa que você pode criar aplicativos de IA visualmente no Dify e integrá-los aos seus próprios produtos por meio da API.
n8n
n8n é uma poderosa ferramenta visual de automação de fluxo de trabalho com centenas de nós de integração, incluindo nós relacionados à IA (OpenAI, Ollama, bancos de dados vetoriais, etc.), facilitando a construção de fluxos de trabalho de automação de IA.
Instale n8n
Método 1: Instalação Docker (recomendado)
# Create data directory
mkdir -p ~/.n8n
# Run n8n with Docker
docker run -d \
--name n8n \
-p 5678:5678 \
-v ~/.n8n:/home/node/.n8n \
-e N8N_SECURE_COOKIE=false \
--restart always \
n8nio/n8nMétodo 2: Instalação do Docker Compose
mkdir -p ~/n8n && cd ~/n8n
cat > docker-compose.yml << 'EOF'
services:
n8n:
image: n8nio/n8n
container_name: n8n
ports:
- "5678:5678"
environment:
- N8N_SECURE_COOKIE=false
- GENERIC_TIMEZONE=Asia/Shanghai
volumes:
- n8n_data:/home/node/.n8n
extra_hosts:
- "host.docker.internal:host-gateway"
restart: always
volumes:
n8n_data:
EOF
docker compose up -dMétodo 3: instalação global npm
# Install Node.js
curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash -
sudo apt install -y nodejs
# Install n8n globally
npm install -g n8n
# Start n8n
n8n start
# Or run in background
n8n start &Acesso n8n
# Open your browser
# http://localhost:5678
# First visit requires creating an accountExemplos de fluxo de trabalho de IA
O n8n possui nós de IA integrados para criar fluxos de trabalho poderosos de automação de IA.
Exemplo 1: Resposta automática do atendimento ao cliente de IA
Conexões do nó de fluxo de trabalho:
Webhook Trigger -> AI Agent (Claude/GPT) -> Knowledge Base Retrieval -> Generate Reply -> Send ResponseExemplo 2: Resumo automático do documento
File Monitor -> Read File -> AI Summary Generation -> Save Result -> Email NotificationExemplo 3: Conecte Ollama local
Configure a conexão Ollama em n8n:
- Adicione um nó “Ollama Chat Model” ao seu fluxo de trabalho
- Crie credenciais Ollama:
- URL base:
http://host.docker.internal:11434(ambiente Docker) - Ou
http://localhost:11434(instalação local)
- URL base:
- Selecione um modelo (por exemplo,
qwen2.5:14b)
Nós AI em n8n
| Tipo de nó | Propósito |
|---|---|
| Agente de IA | Crie agentes de IA autônomos |
| Modelo de bate-papo OpenAI | Conecte-se a APIs OpenAI/compatíveis |
| Modelo de bate-papo Ollama | Conecte-se ao Ollama local |
| Modelo de bate-papo antrópico | Conecte-se com Claude |
| Loja de vetores | Operações de banco de dados vetorial |
| Divisor de texto | Segmentação de texto |
| Incorporações | Vetorização de texto |
| Memória | Gerenciamento de memória de conversa |
| Ferramenta | Ferramentas de IA personalizadas |
Crie um fluxo de trabalho de agente de IA
1. Add a "When chat message received" trigger
2. Add an "AI Agent" node
3. Connect a model: Add an "Ollama Chat Model" sub-node
4. Add tools:
- "Calculator" -- Math calculations
- "Code" -- Execute code
- "HTTP Request" -- Call APIs
- "Wikipedia" -- Search Wikipedia
5. Add memory: Connect a "Window Buffer Memory" node
6. Save and activate the workflowA edição da comunidade n8n (auto-hospedada) é totalmente gratuita e inclui todos os nós de IA. n8n Cloud oferece um serviço hospedado com recursos adicionais. Para indivíduos e equipes pequenas, a versão auto-hospedada já é bastante poderosa.
LangChain / LangGraph
LangChain é a estrutura de desenvolvimento líder para a construção de aplicativos LLM. LangGraph é seu subprojeto focado na construção de fluxos de trabalho de agentes de IA com estado e várias etapas.
Instale LangChain
# Create a project virtual environment
mkdir -p ~/langchain-project && cd ~/langchain-project
python3 -m venv venv
source venv/bin/activate
# Install LangChain core packages
pip install langchain langchain-core
# Install model provider packages
pip install langchain-anthropic # Claude
pip install langchain-openai # OpenAI
pip install langchain-ollama # Ollama (local models)
# Install LangGraph
pip install langgraph
# Install common tools
pip install langchain-community # Community integrations
pip install langchain-chroma # Chroma vector database
pip install langchain-text-splitters # Text splittingExemplo básico de LangChain
# basic_chain.py
from langchain_ollama import ChatOllama
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
# Use local Ollama model
llm = ChatOllama(model="qwen2.5:14b", base_url="http://localhost:11434")
# Create a prompt template
prompt = ChatPromptTemplate.from_messages([
("system", "You are an Ubuntu Linux expert skilled at answering system administration questions."),
("human", "{question}")
])
# Build the chain
chain = prompt | llm | StrOutputParser()
# Invoke the chain
response = chain.invoke({"question": "How do I check disk usage on Ubuntu?"})
print(response)# Run the example
python basic_chain.pyExemplo RAG (geração aumentada de recuperação)
# rag_example.py
from langchain_ollama import ChatOllama, OllamaEmbeddings
from langchain_chroma import Chroma
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser
# 1. Prepare documents
documents = [
"Ubuntu 26.04 LTS, codenamed Resolute Raccoon, is scheduled for release on April 23, 2026.",
"Ubuntu uses APT as its package manager. You can install software with apt install.",
"Ubuntu's default desktop environment is GNOME, but it also supports KDE, XFCE, etc.",
"Ubuntu Server edition does not include a graphical interface, making it suitable for server deployments.",
]
# 2. Split text
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=200, chunk_overlap=50
)
splits = text_splitter.create_documents(documents)
# 3. Create vector database
embeddings = OllamaEmbeddings(model="nomic-embed-text")
vectorstore = Chroma.from_documents(splits, embeddings)
retriever = vectorstore.as_retriever()
# 4. Build RAG chain
llm = ChatOllama(model="qwen2.5:14b")
prompt = ChatPromptTemplate.from_template("""
Answer the question based on the following context. If the answer is not in the context, say you don't know.
Context: {context}
Question: {question}
""")
rag_chain = (
{"context": retriever, "question": RunnablePassthrough()}
| prompt
| llm
| StrOutputParser()
)
# 5. Query
result = rag_chain.invoke("What is the codename for Ubuntu 26.04?")
print(result)# Install additional dependencies and run
pip install chromadb
python rag_example.pyExemplo de agente LangGraph
# agent_example.py
from langchain_ollama import ChatOllama
from langgraph.prebuilt import create_react_agent
from langchain_core.tools import tool
# Define tools
@tool
def search_docs(query: str) -> str:
"""Search Ubuntu documentation for information"""
docs = {
"apt": "APT is Ubuntu's package management tool. Use apt install to install software",
"systemd": "systemd is Ubuntu's service management system. Use systemctl to manage services",
}
for key, value in docs.items():
if key in query.lower():
return value
return "No relevant documentation found"
@tool
def run_command(command: str) -> str:
"""Simulate running a Linux command and return the result"""
return f"Command '{command}' executed (simulated)"
# Create Agent
llm = ChatOllama(model="qwen2.5:14b")
agent = create_react_agent(llm, [search_docs, run_command])
# Run Agent
result = agent.invoke({
"messages": [{"role": "user", "content": "How do I install nginx on Ubuntu?"}]
})
for message in result["messages"]:
print(f"[{message.type}]: {message.content}")Depuração LangSmith (opcional)
# LangSmith provides visual debugging and monitoring for LangChain applications
# Register at https://smith.langchain.com to get an API key
export LANGCHAIN_TRACING_V2=true
export LANGCHAIN_API_KEY="your-langsmith-api-key"
export LANGCHAIN_PROJECT="my-ubuntu-project"
# LangChain code run afterward will automatically report chain data to LangSmithO ecossistema da LangChain é vasto. Os iniciantes devem começar com Cadeias simples e depois progredir gradualmente para RAG e Agentes. LangGraph é melhor para construir agentes complexos de várias etapas. Para aplicações de conversação simples, cadeias LangChain básicas são suficientes.
Comparação de plataformas
| Recurso | Modificar | n8n | LangChain |
|---|---|---|---|
| Tipo | Plataforma visual | Automação de fluxo de trabalho | Estrutura de desenvolvimento |
| Uso | Interface web | Interface web | Código Python |
| Curva de aprendizado | Baixo | Médio | Mais alto |
| Flexibilidade | Médio | Alto | Muito alto |
| Suporte RAG | Integrado | Através de nós | Através do código |
| Suporte do agente | Integrado | Através de nós de IA | LangGraph |
| Implantação | Docker | Docker/npm | pip |
| Melhor para | Usuários não técnicos | Entusiastas da automação | Desenvolvedores |
| Código aberto | Sim | Sim (edição comunitária) | Sim |
Escolhendo a ferramenta certa
- Deseja criar aplicativos de IA rapidamente sem código —> Escolha Dificar
- É necessário integrar IA em fluxos de trabalho de automação —> Escolha n8n
- Precisa de aplicativos de IA totalmente personalizados e conheça Python —> Escolha LangChain/LangGraph
- Você pode combiná-los: use Dify para prototipagem rápida, n8n para agendamento de automação e LangChain para lógica central