Créer un chatbot IA local avec Ollama et Open WebUI : Partie 1
Installer et déployer un LLM en local avec Ollama
Les modèles de langage sont gourmands en ressources et nécessitent du matériel adapté. L’objectif de ce tutoriel n’est pas d’obtenir un assistant ultra-rapide, mais de construire un POC fonctionnel, capable de tourner sur un ordinateur classique, même si les réponses prennent plusieurs secondes.
Dans mon cas, j’utilise un Mac Apple Silicon (M4). Les réponses prennent une dizaine de secondes, ce qui reste acceptable pour une preuve de concept.
Objectifs
Pour ce projet, je souhaite :
- Un chatbot avec lequel discuter ;
- Un fonctionnement entièrement hors ligne ;
- La possibilité d’intégrer mes propres données ;
- La capacité de donner des consignes spécifiques (type de réponses, humour, ton...) ;
- Un projet exécutable sur une machine standard (macOS, Windows ou Linux).
Mettre en place un chatbot IA (LLM) local
Commençons le projet simplement : installons un chatbot IA (LLM) local qui fonctionne avec des modèles existants.
Pour cela, j'ai décidé d'utiliser Ollama pour sa simplicité.
Ollama
Ollama est une application gratuite et open source qui permet d'exécuter un modèle de langage directement sur son ordinateur. C’est une solution légère, adaptée à un POC. Il suffit d’installer l’outil et de télécharger un modèle.
Installer Ollama
Ollama est disponible via une interface graphique (GUI) ou en ligne de commande (CLI). Personnellement, j'utilise la version graphique, mais la version en ligne de commande fonctionne tout aussi bien.
Ollama est disponible via Docker, mais d’après mon expérience, je ne le recommande pas : cela peut dégrader significativement les performances sur une machine personnelle.
Pour installer Ollama (macOS, Windows ou Linux), rendez-vous sur la page de téléchargement du projet et :
- Téléchargez l’exécutable (version graphique) ;
- Ou exécutez la commande fournie dans un terminal (mode CLI).
Choisir un modèle
La seconde étape consiste à choisir un modèle. Le modèle représente en quelque sorte la “personnalité” du chatbot.
Un modèle est entrainé sur un large volume de textes. Selon la nature des données utilisées (documents scientifiques, blogs, livres de cuisine, forums…), il pourra avoir un style, des connaissances et des compétences différentes.
J’ai décidé d’utiliser le modèle mistral-nemo car il est français. Libre à vous d’en choisir un autre selon vos besoins.
L'objectif principal d’un modèle n’est pas de restituer des connaissances générales, mais surtout de traiter des informations qu’on lui fournit et de les reformuler intelligemment.
C’est sur cet aspect que nous allons nous appuyer pour lui intégrer nos propres données par la suite.
Choisir le nombre de paramètres (xb)
La plupart des modèles sont disponibles en plusieurs tailles (exprimées en “xb”, par exemple 7b, 12b, etc.).
En règle générale :
- Plus il y a de paramètres, plus le modèle est "intelligent" ;
- Mais plus il est exigeant en ressources (RAM, CPU, GPU).
Dans mon cas, je vais donc utiliser mistral-nemo:12b . Cette version tourne correctement sur mon ordinateur portable, avec des réponses en quelques secondes. Selon votre configuration, n’hésitez pas à tester une version plus légère (ou plus lourde) si nécessaire.
Télécharger le modèle
Version graphique
Dans l’interface graphique :
- Sélectionnez un modèle dans la liste en bas à droite ;
- Envoyez un message ;
- Le téléchargement démarre automatiquement si le modèle n’est pas encore présent sur votre machine.
Version ligne de commande
Dans un terminal, saisir :
(bash)1ollama run mistral-nemo:12b
La commande téléchargera automatiquement le modèle si nécessaire, puis lancera une session interactive.
Échanger avec le chatbot
Version graphique
Il suffit d’ouvrir l’interface et de commencer à discuter.
Version CLI
Dans un terminal, saisir :
(bash)1ollama run mistral-nemo:12b
Vous pouvez alors poser vos questions directement dans la console.
Où en sommes-nous ?
À ce stade :
- Vous avez un chatbot fonctionnel ;
- Il fonctionne 100 % hors ligne.
En revanche, il ne dispose que de ses connaissances générales issues de son entraînement.
Si vous commencez à lui parler d’un sujet très spécifique ou interne à votre organisation, les réponses risquent d’être approximatives.
Conclusion (prochaine étape)
Nous avons maintenant un LLM local, autonome et opérationnel. Mais il reste générique.
Dans la prochaine partie, nous verrons comment intégrer nos propres données afin de transformer ce simple chatbot en véritable assistant.
― Valentin LORTET