doganddev
Accueil Blog Boutique

Ollama et n8n : intégration complète

DOG&DEV · 26/01/2025

Serveurs Mises à Jour
Ollama et n8n : intégration complète

Ollama et n8n : intégration complète

Ollama permet d'exécuter des LLMs localement, et n8n peut les intégrer dans vos workflows d'automation. Cette combinaison offre une IA privée et automatisée. Ce guide explique l'intégration complète.

Prérequis

  • Ollama installé et fonctionnel
  • n8n installé (version 1.0+)
  • Modèle LLM téléchargé dans Ollama (Llama, Mistral, etc.)
  • Connaissances de base en workflows n8n

Installation

Étape 1 : Installer Ollama

Linux :

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

Docker :

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama

Étape 2 : Télécharger un modèle

# Modèles populaires
ollama pull llama2
ollama pull mistral
ollama pull phi

Étape 3 : Vérifier Ollama

# Tester Ollama
ollama run llama2 "Bonjour, comment ça va ?"

Vérifier l'API :

curl http://localhost:11434/api/generate -d '{
  "model": "llama2",
  "prompt": "Test"
}'

Configuration n8n

Méthode 1 : HTTP Request (Recommandé)

Créer un workflow avec un nœud HTTP Request :

Configuration :

  • Method : POST
  • URL : http://localhost:11434/api/generate
  • Body : JSON

Body JSON :

{
  "model": "llama2",
  "prompt": "{{ $json.prompt }}",
  "stream": false
}

Exemple complet :

  1. Nœud Trigger : Webhook ou Schedule
  2. Nœud HTTP Request :
    • URL : http://localhost:11434/api/generate
    • Method : POST
    • Body :
      {
        "model": "mistral",
        "prompt": "Résume ce texte : {{ $json.text }}",
        "stream": false
      }
      
  3. Nœud Set : extraire la réponse
    • {{ $json.response }}

Méthode 2 : Code Node (JavaScript)

Utiliser un nœud Code pour plus de contrôle :

const response = await $http.request({
  method: 'POST',
  url: 'http://localhost:11434/api/generate',
  body: {
    model: 'mistral',
    prompt: $input.item.json.text,
    stream: false
  },
  headers: {
    'Content-Type': 'application/json'
  }
});

return {
  json: {
    original: $input.item.json.text,
    summary: response.response
  }
};

Cas d'usage pratiques

1. Résumé automatique d'emails

Workflow :

  1. Trigger : Email (nouvel email reçu)
  2. Extract : extraire le contenu de l'email
  3. HTTP Request (Ollama) : résumer l'email
  4. Send Email : envoyer le résumé

Prompt Ollama :

Résume cet email en 3-4 phrases :
{{ $json.emailContent }}

2. Génération de contenu

Workflow :

  1. Trigger : Webhook (nouvel article à créer)
  2. HTTP Request (Ollama) : générer le contenu
  3. Format : formater le contenu
  4. Save : sauvegarder dans votre CMS

Prompt Ollama :

Écris un article de 500 mots sur : {{ $json.topic }}

3. Classification de tickets

Workflow :

  1. Trigger : Nouveau ticket créé
  2. HTTP Request (Ollama) : classifier le ticket
  3. Switch : router selon la classification
  4. Assign : assigner au bon département

Prompt Ollama :

Classifie ce ticket de support en une catégorie (technique, facturation, vente) :
{{ $json.ticketDescription }}

4. Traduction automatique

Workflow :

  1. Trigger : Nouveau contenu à traduire
  2. HTTP Request (Ollama) : traduire
  3. Save : sauvegarder la traduction

Prompt Ollama :

Traduis ce texte en anglais :
{{ $json.frenchText }}

Configuration avancée

Utiliser plusieurs modèles

Workflow conditionnel :

  • Switch : selon le type de tâche
  • HTTP Request 1 : utiliser mistral pour les résumés
  • HTTP Request 2 : utiliser llama2 pour la génération

Streaming (réponses en temps réel)

Configuration HTTP Request :

{
  "model": "mistral",
  "prompt": "{{ $json.prompt }}",
  "stream": true
}

Note : Le streaming nécessite un traitement spécial dans n8n (Code Node).

Paramètres avancés Ollama

Options disponibles :

{
  "model": "mistral",
  "prompt": "{{ $json.prompt }}",
  "stream": false,
  "options": {
    "temperature": 0.7,
    "top_p": 0.9,
    "top_k": 40,
    "num_predict": 100
  }
}

Paramètres :

  • temperature : créativité (0-1, plus haut = plus créatif)
  • top_p : diversité des réponses
  • num_predict : nombre maximum de tokens

Optimisation

Performance

Pour de meilleures performances :

  • Utiliser GPU : Ollama détecte automatiquement
  • Modèles quantifiés : utiliser des modèles plus légers (Q4)
  • Cache : n8n peut mettre en cache les réponses similaires

Coûts

Avantages Ollama :

  • Pas de coûts par requête : exécution locale
  • Pas de limites : utilisation illimitée
  • Confidentialité : données ne quittent pas votre serveur

Sécurité

Accès local uniquement

Par défaut, Ollama écoute sur localhost:11434.

Pour accès réseau (attention sécurité) :

# Variable d'environnement
OLLAMA_HOST=0.0.0.0:11434 ollama serve

Recommandation : utiliser un reverse proxy avec authentification si accès réseau nécessaire.

Firewall

Limiter l'accès :

# Autoriser uniquement depuis n8n
ufw allow from [IP_N8N] to any port 11434

Dépannage

Problème Cause possible Solution
"Connection refused" Ollama non démarré Démarrer Ollama (ollama serve)
Réponse vide Modèle non téléchargé Télécharger le modèle (ollama pull model)
Timeout Modèle trop lent, prompt trop long Utiliser modèle plus petit ; réduire le prompt
Erreur HTTP URL incorrecte Vérifier l'URL (localhost:11434)

Exemples de workflows complets

Workflow : Assistant IA pour support

Structure :

  1. Webhook : recevoir une question
  2. HTTP Request (Ollama) : générer une réponse
  3. Format : formater la réponse
  4. Webhook Response : retourner la réponse

Prompt :

Tu es un assistant de support technique. Réponds à cette question de manière claire et concise :
{{ $json.question }}

Workflow : Génération de contenu SEO

Structure :

  1. Schedule : déclencher quotidiennement
  2. HTTP Request (API) : récupérer les sujets tendances
  3. HTTP Request (Ollama) : générer le contenu
  4. Format : optimiser pour SEO
  5. HTTP Request (CMS) : publier l'article

Bonnes pratiques

  • Prompts clairs : être spécifique dans les prompts
  • Gestion d'erreurs : ajouter des nœuds de gestion d'erreur
  • Limites : définir des limites de tokens pour éviter les réponses trop longues
  • Cache : mettre en cache les réponses fréquentes
  • Monitoring : surveiller les performances Ollama

Ressources


Cet article s'inscrit dans notre série de guides IA et automation. Pour une installation sur-mesure, contact.

Commentaires (0)

Laisser un commentaire