Ce document détaille la mise en place de A à Z d'un assistant conversationnel privé permettant d'interroger une documentation interne sans aucune fuite de données vers le cloud. L'ensemble de la solution (cerveau IA, base de données et interface) tourne localement sur votre machine.
L'environnement repose sur deux composants isolés via Docker :
Pourquoi Docker ? Docker permet de faire tourner ces deux applications dans des "boîtes" (conteneurs) isolées, avec toutes leurs dépendances, garantissant que la solution fonctionnera sur n'importe quelle machine de la même manière.
Ouvrez votre terminal Linux. Nous allons créer un dossier dédié pour ranger proprement notre projet et nous y déplacer :
mkdir -p ~/chatbot-local
cd ~/chatbot-local
Nous devons maintenant créer le fichier qui va indiquer à Docker comment télécharger et relier Ollama et AnythingLLM. Créez un fichier nommé docker-compose.yml (par exemple avec la commande vi docker-compose.yml) et collez-y très exactement ce contenu :
vi docker-compose.yml
version: '3.8'
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
ports:
- "11434:11434"
volumes:
- ./ollama-data:/root/.ollama
restart: always
anythingllm:
image: mintplexlabs/anythingllm
container_name: anythingllm
ports:
- "3001:3001"
volumes:
- ./anythingllm-data:/app/server/storage
environment:
- STORAGE_DIR=/app/server/storage
restart: always
(Note : les lignes volumes permettent de sauvegarder vos documents et configurations directement dans votre dossier chatbot-local pour ne rien perdre si le serveur redémarre).
Maintenant que le fichier est prêt, lancez la création de l'infrastructure avec cette commande dans votre terminal :
# Lancement des conteneurs en tâche de fond
docker compose up -d
Une fois les conteneurs démarrés, il faut indiquer à Ollama de télécharger le "cerveau" de notre chatbot. Nous utilisons Mistral, un modèle performant, très bon en français, et suffisamment léger pour tourner sans carte graphique (sur CPU). Exécutez :
# Téléchargement et installation de Mistral dans le conteneur Ollama
docker exec -it ollama ollama run mistral
Une fois les services démarrés et Mistral téléchargé, toute la configuration s'effectue depuis le navigateur web.
http://localhost:3001 (ou l'IP de votre serveur).
Il faut maintenant connecter l'interface AnythingLLM au moteur Ollama qui contient notre modèle Mistral.
Ollama.http://ollama:11434.
ollama). Le réseau interne de Docker fait automatiquement le lien.mistral (ou mistral:latest).
AnythingLLM Embedder. C'est le petit moteur intégré qui va découper et transformer vos documents en vecteurs mathématiques (coordonnées) sans avoir besoin d'un outil externe.LanceDB. C'est la base de données locale qui stocke ces vecteurs de façon sécurisée.
Un espace de travail regroupe des documents spécifiques et des règles de comportement pour l'IA.
Tu es l'assistant du support informatique interne (niveau 0).
RÈGLE DE LANGUE : Ta langue par défaut est le français. Tu dois répondre en français, SAUF si l'utilisateur t'écrit dans une autre langue ou te demande explicitement de changer de langue.
RÈGLE DE SUPPORT : Base-toi uniquement sur les documents fournis. N'invente aucune manipulation ni procédure non documentée.
Si la réponse ne figure pas dans tes documents ou si la solution proposée échoue, indique clairement : « Je ne trouve pas la solution dans la documentation. Merci d'ouvrir un ticket d'incident. »

Pour que l'IA puisse répondre, elle a besoin de connaissances. Nous utilisons des fiches de procédures (format texte, Markdown ou PDF). Vous pouvez télécharger un exemple comme celui ci :
llm_procedure.txt


Pour vous assurer du bon fonctionnement, lancez un nouveau fil de discussion (New Thread) et effectuez trois tests :
J'ai oublié mon mot de passe. Le bot doit lister les étapes exactes de votre document et afficher ses sources.
L'intelligence artificielle (surtout le modèle Mistral via Ollama) consomme beaucoup de ressources CPU et de mémoire RAM. Il est donc recommandé d'éteindre les conteneurs lorsque vous ne les utilisez pas.
Grâce aux "volumes" que nous avons configurés dans le fichier docker-compose.yml, aucune donnée ne sera perdue (ni vos documents, ni votre configuration) lorsque vous éteignez le système.
Ouvrez votre terminal et placez-vous dans le dossier de votre projet :
cd ~/chatbot-local
docker compose stop
Cette commande arrête les conteneurs sans les détruire. Votre machine retrouve toutes ses ressources.
Lorsque vous souhaitez utiliser à nouveau le chatbot, retournez dans le dossier et relancez les conteneurs :
cd ~/chatbot-local
docker compose start
Le démarrage est quasi-instantané et vous retrouverez votre espace de travail exactement tel que vous l'avez laissé.
(Alternative : Si vous avez redémarré complètement votre ordinateur physique, utilisez plutôt docker compose up -d pour tout réinitialiser proprement).