Plateformes d’IA et automatisation
Les plateformes d’IA et les outils d’automatisation vous aident à créer rapidement des applications d’IA et des flux de travail d’automatisation, en intégrant de grandes capacités de modèles de langage dans des processus métier réels. Cet article couvre le déploiement et l’utilisation de Dify, n8n et LangChain/LangGraph sur Ubuntu 26.04.
Difier
Dify est une plate-forme de développement d’applications LLM open source qui fournit une orchestration d’invites visuelles, RAG (Retrieval-Augmented Generation), des flux de travail d’agent, etc., avec la prise en charge de plusieurs fournisseurs de modèles.
Configuration système requise
- Docker et Docker Composent
- Au moins 4 Go de RAM
- Au moins 20 Go d’espace disque
Docker Composer le déploiement
# 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 .envÉléments de configuration clés :
# 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)Accéder à Modifier
# 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 inUtilisation de base
Principaux modules de fonctionnalités de Dify :
-
Applications – Créez et gérez des applications d’IA
- Assistant de chat – Créez des chatbots
- Génération de texte – Créez des applications de génération de texte
- Agent – Créez des agents IA autonomes
- Workflow – Orchestre visuellement des processus d’IA complexes
-
Connaissances — Fonctionnalité RAG
- Téléchargez des documents (PDF, Word, Markdown, etc.)
- Segmentation et vectorisation automatiques
- Référencer le contenu de la base de connaissances dans les conversations
-
Fournisseurs de modèles – Configurer les modèles d’IA
Configurer les fournisseurs de modèles
Ajoutez des modèles dans les paramètres 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)Si Ollama est en cours d’exécution sur la machine hôte, configurez-le pour autoriser l’accès au conteneur Docker :
# Modify Ollama listen address
sudo systemctl edit ollama
# Add:
# [Service]
# Environment="OLLAMA_HOST=0.0.0.0:11434"
sudo systemctl restart ollamaMettre à jour Dify
cd ~/dify/docker
# Pull latest code
git pull origin main
# Update images and restart
docker compose pull
docker compose down
docker compose up -dSauvegarde des données
# 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 prend en charge l’appel de vos applications créées via l’API. Vous pouvez obtenir des clés API et des exemples d’appels dans les paramètres de l’application. Cela signifie que vous pouvez créer visuellement des applications d’IA dans Dify, puis les intégrer dans vos propres produits via l’API.
n8n
n8n est un puissant outil visuel d’automatisation des flux de travail avec des centaines de nœuds d’intégration, y compris des nœuds liés à l’IA (OpenAI, Ollama, bases de données vectorielles, etc.), facilitant la création de flux de travail d’automatisation de l’IA.
Installer n8n
Méthode 1 : Installation d’Docker (recommandée)
# 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éthode 2 : Installation de 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éthode 3 : installation globale 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 &Accéder à n8n
# Open your browser
# http://localhost:5678
# First visit requires creating an accountExemples de flux de travail d’IA
n8n dispose de nœuds d’IA intégrés pour créer de puissants flux de travail d’automatisation de l’IA.
Exemple 1 : Réponse automatique du service client IA
Connexions des nœuds de workflow :
Webhook Trigger -> AI Agent (Claude/GPT) -> Knowledge Base Retrieval -> Generate Reply -> Send ResponseExemple 2 : Résumé automatique du document
File Monitor -> Read File -> AI Summary Generation -> Save Result -> Email NotificationExemple 3 : Connectez-vous localement à Ollama
Configurez la connexion Ollama dans n8n :
- Ajoutez un nœud “Ollama Chat Model” à votre flux de travail
- Créez les informations d’identification Ollama :
- URL de base :
http://host.docker.internal:11434(environnement Docker) - Ou
http://localhost:11434(installation locale)
- URL de base :
- Sélectionnez un modèle (par exemple,
qwen2.5:14b)
Nœuds IA dans n8n
| Type de nœud | But |
|---|---|
| Agent IA | Créer des agents IA autonomes |
| Modèle de discussion OpenAI | Connectez-vous aux API OpenAI/compatibles |
| Ollama Modèle de discussion | Connectez-vous à l’Ollama local |
| Modèle de discussion anthropique | Connectez-vous à Claude |
| Magasin de vecteurs | Opérations de base de données vectorielles |
| Séparateur de texte | Segmentation du texte |
| Intégrations | Vectorisation de texte |
| Mémoire | Gestion de la mémoire des conversations |
| Outil | Outils d’IA personnalisés |
Créer un flux de travail d’agent 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 workflowL’édition communautaire n8n (auto-hébergée) est entièrement gratuite et inclut tous les nœuds IA. n8n Cloud propose un service hébergé avec des fonctionnalités supplémentaires. Pour les particuliers et les petites équipes, la version auto-hébergée est déjà assez puissante.
LangChain / LangGraph
LangChain est le principal framework de développement pour la création d’applications LLM. LangGraph est son sous-projet axé sur la création de flux de travail d’agent IA avec état et en plusieurs étapes.
Installer 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 splittingExemple de base 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.pyExemple RAG (génération augmentée par récupération)
# 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.pyExemple d’agent 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}")Débogage LangSmith (facultatif)
# 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 LangSmithL’écosystème de LangChain est vaste. Les débutants doivent commencer avec des chaînes simples, puis progresser progressivement vers RAG et Agents. LangGraph est idéal pour créer des agents complexes en plusieurs étapes. Pour les applications conversationnelles simples, les chaînes LangChain de base sont suffisantes.
Comparaison des plateformes
| Fonctionnalité | Difier | n8n | LangChaîne |
|---|---|---|---|
| Taper | Plateforme visuelle | Automatisation du flux de travail | Cadre de développement |
| Usage | Interface Internet | Interface Internet | Code Python |
| Courbe d’apprentissage | Faible | Moyen | Plus haut |
| Flexibilité | Moyen | Haut | Très élevé |
| Prise en charge du RAG | Intégré | Via des nœuds | Par code |
| Assistance des agents | Intégré | Via les nœuds IA | LangGraph |
| Déploiement | Docker | Docker/npm | pépin |
| Idéal pour | Utilisateurs non techniques | Passionnés d’automatisation | Développeurs |
| Source ouverte | Oui | Oui (édition communautaire) | Oui |
Choisir le bon outil
- Vous souhaitez créer rapidement des applications d’IA sans code —> Choisissez Dify
- Besoin d’intégrer l’IA dans les flux de travail d’automatisation —> Choisissez n8n
- Besoin d’applications d’IA entièrement personnalisées et connaissez Python —> Choisissez LangChain/LangGraph
- Vous pouvez les combiner : utilisez Dify pour le prototypage rapide, n8n pour la planification d’automatisation et LangChain pour la logique de base