Accéder au contenu principal

L'IA locale avec Docker, n8n, Qdrant et Ollama

Apprenez à créer des applications d'IA locales et sécurisées qui protègent vos données sensibles à l'aide d'un cadre d'automatisation à code faible ou nul.
Actualisé 14 févr. 2025

Les entreprises du monde entier sont de plus en plus soucieuses de protéger les informations sensibles tout en exploitant la puissance de l'IA. Ce guide présente une solution complète pour créer des applications d'IA locales et sécurisées à l'aide d'une puissante combinaison d'outils open-source.

Nous utiliserons le Kit de démarrage de l'IA auto-hébergée pour mettre rapidement en place un environnement d'IA local. Ce kit exécutera automatiquement Ollama, Qdrant, n8n et Postgres. En outre, nous apprendrons à construire un flux de travail d'IA pour un chatbot RAG (Retrieval-augmented generation) en utilisant l'ensemble de données Harry Potter à travers le tableau de bord n8n.

Que vous soyez un développeur, un data scientist ou un professionnel non technique cherchant à mettre en œuvre des solutions d'IA sécurisées, ce tutoriel vous fournira les bases pour créer des flux de travail d'IA puissants et auto-hébergés tout en conservant un contrôle total sur vos données sensibles.

Qu'est-ce que l'IA locale ?

L'IA locale vous permet d'exécuter des systèmes d'intelligence artificielle et des flux de travail sur votre propre infrastructure plutôt que sur des services cloud, ce qui offre une confidentialité et une rentabilité accrues.

Si vous êtes nouveau dans l'écosystème de l'IA, vous devriez d'abord consulter notre cursus de compétences sur les sujets suivants. Principes fondamentaux de l'IA pour vous mettre à niveau. En suivant cette série de cours, vous acquerrez des connaissances exploitables sur des sujets d'IA populaires tels que le ChatGPT, les grands modèles de langage, l'IA générative, et plus encore.

Image des caractéristiques locales de l'IA.

Image par l'auteur

Voici la liste des outils que nous utiliserons pour créer et exécuter nos applications locales d'IA :

  1. Docker: Il s'agit de votre plateforme de conteneurisation qui regroupe tous les composants de l'IA dans des environnements gérables et isolés. Il nous permettra d'exécuter tous les outils d'IA à l'aide d'une seule commande. 
  2. n8n: Un cadre d'automatisation des flux de travail qui vous permet de créer des flux de travail d'IA à l'aide d'une interface de type "glisser-déposer". Il ne nécessite aucune connaissance en matière de codage, ce qui le rend idéal pour les personnes non techniques.
  3. Postgres: Cet outil stocke toutes les données et tous les journaux, agissant comme une mémoire tampon pour le cadre n8n.
  4. Qdrant: Une base de données vectorielle et un moteur de recherche qui rendent le contenu généré par l'IA consultable et gérable.
  5. Ollama: Un gestionnaire de modèles d'IA qui vous permet d'exécuter localement n'importe quel grand modèle de langage open-source avec des exigences matérielles minimales.

Le n8n est notre cadre principal pour construire le flux de travail de l'IA pour le Chatbot RAG. Nous utiliserons Qdrant comme magasin de vecteurs et Ollama comme fournisseur de modèles d'IA. Ensemble, ces éléments nous aideront à créer le système RAG.

Installation de Docker  

Nous allons télécharger et installer le logiciel Docker en allant sur le site officiel de Docker. Il est assez facile à installer et à mettre en route. 

Pour en savoir plus sur Docker, suivez le lien suivant Docker pour la science des données ou suivez notre cours cours d'introduction à Docker.

Bureau Windows Docker

Source : Docker : Développement accéléré d'applications en conteneur

Les utilisateurs de Windows ont besoin d'un outil supplémentaire pour exécuter avec succès les conteneurs Docker : le Windows Subsystem for Linux (WSL). Cela permet aux développeurs d'installer une distribution Linux et d'utiliser des applications Linux directement sous Windows.

Pour installer WSL sur Windows, tapez la commande suivante dans le terminal ou dans PowerShell. Veillez à lancer PowerShell en tant qu'administrateur.

$ wsl --install

Une fois l'installation du WSL terminée, redémarrez votre système. Ensuite, tapez la commande suivante dans PowerShell pour vérifier si Docker fonctionne correctement.

$ docker run hello-world

Docker a réussi à extraire l'image hello-world et a démarré le conteneur.

Exécution de l'exemple d'image Docker

Installer et exécuter des applications d'IA locales avec Docker Compose

Dans ce guide, nous allons apprendre à utiliser Docker Compose pour mettre en place des services d'IA localement. Cette approche vous permet de charger des images Docker et de déployer des conteneurs en quelques minutes, ce qui constitue un moyen simple d'exécuter et de gérer plusieurs services d'IA sur votre infrastructure.

Tout d'abord, nous allons cloner n8n-io/self-hosted-ai-starter-kit en tapant la commande suivante dans le terminal.

$ git clone https://github.com/n8n-io/self-hosted-ai-starter-kit.git
$ cd self-hosted-ai-starter-kit

Le kit de démarrage est le moyen le plus simple de mettre en place les serveurs et les applications nécessaires à l'élaboration d'un flux de travail d'IA. Ensuite, nous chargerons les images Docker et exécuterons les conteneurs. 

$ docker compose --profile cpu up

Si vous disposez d'un GPU NVIDIA, essayez de taper la commande ci-dessous pour accéder à l'accélération dans la génération de réponses. Configurez également le GPU NVIDIA pour Docker en suivant la procédure suivante Ollama Docker d'Ollama.

$ docker compose --profile gpu-nvidia up

Cela prendra quelques minutes, le temps de télécharger toutes les images Docker et d'exécuter les conteneurs Docker un par un.

Exécutez le script Docker Compose à partir du kit de démarrage AI.

Tous les services Docker sont en cours d'exécution. Les conteneurs Docker quittés ont été utilisés pour télécharger le modèle Llama 3.2 et importer le flux de travail de sauvegarde n8n.

Affichage de l'état des conteneurs Docker.

Nous pouvons même vérifier l'état d'exécution du conteneur Docker en tapant la commande suivante dans le terminal. 

$ docker compose ps

Le kit de démarrage comprenait le script permettant de télécharger le modèle Llama 3.2. Cependant, pour une application RAG Chatbot appropriée, nous avons également besoin du modèle d'intégration. Nous allons nous rendre dans le conteneur Docker d'Ollama, cliquer sur l'onglet "Exec", et taper la commande suivante pour télécharger le modèle "nomic-embed-text".

$ ollama pull nomic-embed-text

Comme nous le voyons, nous pouvons interagir avec un conteneur Docker comme s'il s'agissait d'une machine virtuelle distincte.

Exécution de la commande dans le conteneur Docker.

Ouvrez l'URL du tableau de bord n8n http://localhost:5678/ dans votre navigateur pour créer un compte utilisateur n8n avec un e-mail et un mot de passe. Ensuite, cliquez sur le bouton d'accueil de la page principale du tableau de bord et accédez au flux de travail de démonstration. 

La démo est un simple flux de travail LLM qui prend l'entrée de l'utilisateur et génère la réponse.

Exemple de flux de travail d'IA sur le n8n

Pour lancer le flux de travail, cliquez sur le bouton "Chat" et commencez à taper votre question. Dans les secondes qui suivent, une réponse est générée. 

Veuillez noter que nous utilisons un petit modèle linguistique avec accélération GPU, de sorte que la réponse ne prend généralement que 2 secondes.

Exécution du flux de travail de l'IA sur le n8n

Créez le flux de travail de l'IA avec un tableau de bord n8n

Dans ce projet, nous construirons un RAG (Retrieval-Augmented Generation) qui utilise les données des films Harry Potter pour fournir des réponses précises et adaptées au contexte. Ce projet est une solution sans code, ce qui signifie que tout ce que vous avez à faire est de rechercher les composants de flux de travail nécessaires et de les connecter pour créer un flux de travail d'IA.

n8n est une plateforme sans code similaire à Langchain. Suivez le RAG avec Llama 3.1 8B, Ollama et Langchain pour avoir une vue d'ensemble de la façon de créer un flux de travail d'IA similaire en utilisant Langchain.

1. Ajouter le déclencheur de chat

Cliquez sur le bouton "Ajouter la première étape" au milieu du tableau de bord, recherchez le "déclencheur de chat" et ajoutez-le. 

Ajout du déclencheur Chat au flux de travail n8n

Assurez-vous d'avoir activé l'option "Autoriser les téléchargements de fichiers".

en activant l'option permettant le téléchargement de fichiers.

2. Ajouter le magasin de vecteurs Qdrant

Vous pouvez ajouter un autre composant appelé "Qdrant Vector Store" en cliquant sur le bouton plus (+) du composant "Chat Trigger" et en le recherchant. 

Changez le mode d'opération en "Insérer des documents", changez la collection Qdrant en "Par ID" et tapez l'ID comme "Harry_Potter".

Ajouter le magasin de vecteurs Qdrant

Lorsque nous quittons l'option, nous constatons que le déclencheur de chat est connecté à notre boutique vectorielle.  

connecter le déclencheur de chat avec le magasin de vecteurs Qdrant.

3. Connecter le modèle d'intégration avec le magasin de vecteurs

Cliquez sur le bouton plus situé sous le magasin de vecteurs Qdrant et intitulé "Embedding". Nous serons amenés au menu de gestion du modèle, où nous sélectionnerons les embeddings Ollama et changerons le modèle en "nomic-embed-text:latest".

Ajout du modèle Embedding Ollama.

4. Connexion du chargeur de documents avec le magasin de vecteurs

Cliquez sur le bouton plus situé sous le magasin de vecteurs Qdrant, qui indique "Document", et sélectionnez "Default Data Loader" dans le menu. Changez le type de données en "Binaire".

Ajout du chargeur de données par défaut

Ensuite, ajoutez un séparateur de jetons avec une taille de bloc de 500 et un chevauchement de bloc de 50 sera ajouté au chargeur de documents.

Ajout du séparateur de jetons

Voici à quoi devrait ressembler notre flux de travail à la fin. Ce flux de travail prend les fichiers CSV de l'utilisateur, les convertit en texte, puis transforme le texte en enchâssements et les stocke dans le magasin vectoriel.

Flux d'ingestion de données pour la base de données vectorielles.

5. Test du magasin de vecteurs Qdrant

Cliquez sur le bouton Chat en bas du tableau de bord. Lorsque la fenêtre de chat s'ouvre, cliquez sur le bouton "fichier" comme indiqué ci-dessous.

ajouter un seul fichier

Dans ce flux de travail, nous chargerons tous les fichiers CSV de la base de données Films Harry Potter de l'ensemble de données. Toutefois, pour tester notre flux de travail, nous ne chargerons qu'un seul fichier CSV appelé "orthographe" en fonction d'une requête de l'utilisateur.

ajouter un seul fichier CSV

Vous pouvez accéder au serveur Qdrant en utilisant l'URL suivante http://localhost:6333/dashboard et vérifier si le fichier a été chargé dans le magasin de vecteurs ou dans la note.

Tableau de bord Qdrant

Ajoutez maintenant le reste des fichiers au magasin vectoriel. 

ajout d'un fichier multiple à la base de données vectorielles

6. Ajout de l'agent d'intelligence artificielle

Nous allons connecter le déclencheur de chat au magasin de vecteurs, le relier à l'agent d'intelligence artificielle et changer le type d'agent en "agent de conversation".

Création du deuxième flux de travail.

7. Connecter le modèle de chat à l'agent d'intelligence artificielle

Cliquez sur le bouton "Chat Model" sous AI agent et sélectionnez le modèle Ollama Chat dans le menu. Ensuite, scandez le nom du modèle à "Llama3.2:latest".

Connecter le modèle de chat à l'agent d'intelligence artificielle

8. Connecter l'outil vectoriel à l'agent d'intelligence artificielle

Cliquez sur le bouton "Outil" sous l'agent AI et sélectionnez l'outil magasin vectoriel dans le menu. Indiquez le nom de l'outil et sa description. 

Connecter l'outil du magasin vectoriel à l'agent d'intelligence artificielle.

9. Connecter le récupérateur Qdrant à l'outil de stockage de vecteurs

Nous devons ajouter des composants à l'outil de stockage vectoriel. Tout d'abord, nous allons incorporer Qdrant comme magasin de vecteurs et définir l'identifiant de la collection à "Harry_Potter". Ce magasin vectoriel accèdera à la collection Harry Potter lors de la recherche de similarités. De plus, changez le mode d'opération en "Documents récupérés".

Qdrant Document Retriever

10. Connecter le modèle de chat à l'outil de stockage vectoriel

L'outil de stockage de vecteurs nécessite également un modèle LLM. Nous allons connecter le modèle de chat Ollama et changer le modèle en "llama3.2:latest".

Modèle de chat Ollama

11. Connecter le modèle d'intégration avec le récupérateur Qdrant

Dans la dernière étape, nous alimenterons le magasin de vecteurs de recherche avec le modèle d'intégration. Cela lui permet de convertir la requête de l'utilisateur en une image intégrée, puis de reconvertir l'image intégrée en texte pour que le LLM puisse la traiter. 

Assurez-vous de fournir le modèle d'intégration correct pour votre magasin de vecteurs.

Modèle d'intégration

Voici à quoi devrait ressembler le flux de travail de l'IA. 

Flux de travail complet de l'IA pour le Chatbot RAG.

12. Tester le flux de travail de l'IA

Cliquez sur le bouton "chat" pour commencer à poser des questions sur l'univers de Harry Potter.

Prompt : "Quel est l'endroit le plus secret de Poudlard ?"

Test du flux de travail de l'IA 1

Prompt : "Quel est le sort le plus puissant ?"

Test du flux de travail de l'IA 2

Notre flux de travail en matière d'IA est rapide et fonctionne sans heurts. Cette approche sans code est assez facile à exécuter. n8n permet également aux utilisateurs de partager leurs applications afin que n'importe qui puisse y accéder à l'aide d'un lien, tout comme un ChatGPT.

Conclusion 

n8n est un outil parfait pour les projets LLM/AI, en particulier pour les personnes non techniques. Parfois, il n'est même pas nécessaire de créer le flux de travail à partir de zéro. Il suffit de rechercher des projets similaires sur le site web de site web n8ncopier le code JSON et le coller dans notre tableau de bord n8n. C'est aussi simple que cela. 

n8n modèles d'automatisation du flux de travail.

Source : Découvrez plus de 900 flux d'automatisation de la communauté n8n's

Dans ce tutoriel, nous avons appris ce qu'est l'IA locale et comment utiliser le kit de démarrage de l'IA auto-hébergée pour créer et déployer divers services d'IA. Nous avons ensuite lancé le tableau de bord n8n et créé notre propre flux de travail d'IA en utilisant Qdrant, des modèles d'intégration, des outils de stockage de vecteurs, des LLM et des chargeurs de documents. La création et l'exécution de flux de travail sont très faciles avec n8n. Si vous êtes novice en matière d'outils d'IA et que vous souhaitez en savoir plus sur les solutions d'IA sans code, consultez nos autres ressources :


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

En tant que data scientist certifié, je suis passionné par l'utilisation des technologies de pointe pour créer des applications innovantes d'apprentissage automatique. Avec une solide expérience en reconnaissance vocale, en analyse de données et en reporting, en MLOps, en IA conversationnelle et en NLP, j'ai affiné mes compétences dans le développement de systèmes intelligents qui peuvent avoir un impact réel. En plus de mon expertise technique, je suis également un communicateur compétent, doué pour distiller des concepts complexes dans un langage clair et concis. En conséquence, je suis devenu un blogueur recherché dans le domaine de la science des données, partageant mes idées et mes expériences avec une communauté grandissante de professionnels des données. Actuellement, je me concentre sur la création et l'édition de contenu, en travaillant avec de grands modèles linguistiques pour développer un contenu puissant et attrayant qui peut aider les entreprises et les particuliers à tirer le meilleur parti de leurs données.

Sujets

Principaux cours sur l'IA

cursus

Principes de l'IA

10 heures hr
Découvrez les fondamentaux de l'IA, plongez dans des modèles comme ChatGPT et décodez les secrets de l'IA générative pour naviguer dans le paysage dynamique de l'IA.
Afficher les détailsRight Arrow
Commencer le cours
Certification disponible

cours

Docker intermédiaire

4 hr
1.9K
Maîtrisez les constructions en plusieurs étapes, les outils de mise en réseau Docker et Docker Compose pour des applications conteneurisées optimales !
Voir plusRight Arrow