Passer au contenu principal

AnythingLLM : guide complet d'installation, de fonctionnalités et de cas d'usage

Apprenez à installer AnythingLLM avec Docker et Ollama, à configurer des pipelines RAG pour le chat documentaire privé, et à choisir entre AnythingLLM, ChatGPT et Open WebUI.
Actualisé 17 avr. 2026  · 11 min lire

Une question récurrente dans l’univers de l’IA auto-hébergée est la suivante : comment discuter avec des documents privés sans les envoyer à une API cloud ? 

AnythingLLM est une réponse plébiscitée. Il gère tout (téléversement de documents, embeddings, recherche et chat) dans une seule interface et se connecte à un large écosystème de fournisseurs de LLM. Vous pouvez bâtir des workflows d’IA privés sans dépendre de services cloud.

Dans ce guide, j’explique ce qu’est AnythingLLM, j’en décris l’architecture, je vous montre comment l’installer avec Docker et Ollama, et je démontre un pipeline Retrieval-Augmented Generation (RAG) opérationnel. Je le comparerai également à Open WebUI et à ChatGPT.

Qu'est-ce qu'AnythingLLM ?

AnythingLLM est une application open source de Mintplex Labs sous licence MIT. Elle dispose d’une communauté GitHub active, de sorties fréquentes, et est largement adoptée dans l’écosystème de l’IA auto-hébergée.

Son rôle : transformer vos documents en contexte exploitable par un grand modèle de langage (LLM) pendant la conversation. Vous téléversez des fichiers, le système les traite et les stocke, puis le LLM peut répondre à des questions en s’appuyant sur vos données. Le projet a rapidement gagné en ampleur, avec une communauté Discord active et des mises à jour mensuelles ajoutant de nouveaux fournisseurs et fonctionnalités.

Deux points clés : premièrement, AnythingLLM n’est pas un modèle en soi. C’est un pont vers des fournisseurs de LLM externes, locaux (comme Ollama) ou cloud (OpenAI, Anthropic, etc.). 

Deuxièmement, la plateforme s’organise en espaces de travail. Imaginez des salles distinctes pour chaque projet. Chaque espace dispose de ses propres documents et conversations, qui restent isolés sauf configuration explicite de partage.

Interface d’espace de travail AnythingLLM affichant le panneau de chat et la barre latérale des documents.

Interface d’espace de travail AnythingLLM avec documents. Image par l’auteur.

AnythingLLM en application de bureau vs Docker

L’application de bureau (macOS, Windows, Linux) s’adresse à un utilisateur unique qui exécute tout en local. Elle inclut un moteur LLM intégré, un embedder sur CPU, et LanceDB embarqué. Installation en un clic, sans configuration.

La version Docker est conçue pour les équipes et les serveurs. Elle ajoute un contrôle d’accès (rôles Admin, Manager, Default), des widgets de chat embarquables pour sites web et le white-label. Si vous avez besoin d’accès équipe ou de widgets publics, Docker est votre seule option.

Fonctionnalité

Bureau

Docker

Support multi-utilisateurs

Non

Oui (rôles Admin, Manager, Default)

Moteur LLM intégré

Oui

Non (connexion à des fournisseurs externes)

Widgets de chat embarquables

Non

Oui

White-label

Non

Oui

Complexité d'installation

Installation en un clic

Nécessite des compétences Docker

Fonctionnalités clés d'AnythingLLM

Maintenant que vous savez ce qu’est AnythingLLM et comment choisir entre Bureau et Docker, passons en revue les atouts qui le rendent utile pour des workflows d’IA centrés documents.

Ingestion de documents

Compatible avec PDF, DOCX, TXT, Markdown, CSV, XLSX, PPTX, HTML, plus de 50 types de fichiers code, et fichiers audio (via la transcription Whisper). Vous pouvez aussi aspirer du contenu directement depuis des dépôts GitHub, des transcriptions YouTube, des pages Confluence et des sites web via le scraper intégré.

Base de données vectorielle

LanceDB est intégré et ne demande aucune configuration. Pour des besoins entreprise, vous pouvez passer à Chroma, Milvus, Pinecone, Qdrant, Weaviate, Zilliz, AstraDB ou PGVector.

Prise en charge de multiples LLM

Large choix de fournisseurs : Ollama, LM Studio, OpenAI, Anthropic, Azure OpenAI, Google Gemini, AWS Bedrock, Groq, DeepSeek. Vous choisissez les modèles par espace de travail : un espace peut utiliser un modèle Ollama local pour les sujets sensibles tandis qu’un autre exploite GPT-4o via OpenAI.

Agents IA

Tapez @agent dans n’importe quel chat pour activer le builder d’agents no-code. Compétences intégrées : recherche documentaire, synthèse, scraping web. Agent Flows propose un canvas visuel pour chaîner appels d’API, instructions LLM et opérations fichiers. Compatible Model Context Protocol (MCP) pour connecter des outils externes.

Accès API

L’API développeur est disponible sur /api/docs (docs Swagger). Vous pouvez gérer les espaces de travail, embarquer des documents et envoyer des messages de chat par programmation.

Comment fonctionne AnythingLLM (aperçu de l’architecture)

L’application comporte trois volets : le frontend (React/ViteJS) qui fournit l’interface, le serveur (backend Express) qui gère les interactions LLM, la base vectorielle et les requêtes API. Il utilise SQLite pour la configuration. Le collecteur est un service distinct qui parse et traite vos documents téléversés. Quand vous importez un PDF, le collecteur extrait le texte, puis le serveur segmente, embed et stocke.

Le pipeline RAG

Le pipeline fonctionne en deux phases.

Ingestion : vos documents arrivent au collecteur, qui extrait le texte. Le serveur découpe ensuite ce texte en segments (jusqu’à 1 000 caractères avec un petit chevauchement pour le contexte). Chaque segment est converti en vecteur par le modèle d’embedding, puis stocké dans la base vectorielle. Un dossier vector-cache/ réduit les re-embeddings inutiles dans de nombreux cas.

Requête : votre question est convertie en vecteur avec le même modèle d’embedding. Le système recherche ensuite les segments les plus similaires (généralement 4 à 6). Après filtrage par score de similarité, le texte correspondant est ajouté au prompt du LLM avec votre question et l’historique de chat. Le LLM lit l’ensemble (instructions système, contexte retrouvé, votre question, messages précédents) et génère sa réponse.

Organigramme du pipeline RAG d’AnythingLLM, de l’import de document à la réponse du LLM.

Vue d’ensemble de l’architecture du pipeline RAG AnythingLLM. Image par l’auteur.

Installer AnythingLLM avec Docker

Comme indiqué dans la FAQ, AnythingLLM est léger : environ 2 Go de RAM, un CPU 2 cœurs et 5 Go de stockage. Faire tourner un LLM local en parallèle demande plus (un modèle 7B requiert typiquement 8 Go+ de RAM/VRAM). Pour ce tutoriel, j’utilise un modèle 3B adapté au matériel limité. Assurez-vous que Docker est installé et actif avant de commencer. Sous Windows, WSL est nécessaire.

Étape 1 : installer Ollama et télécharger des modèles

Téléchargez Ollama depuis ollama.com/download, puis téléchargez un modèle de chat et un modèle d’embedding :

ollama pull llama3.2:3b
ollama pull nomic-embed-text
ollama serve

J’emploie llama3.2:3b car il fonctionne bien sur des machines à VRAM limitée (ex. RTX 3050 avec 6 Go). Pour une meilleure qualité, essayez llama3.2:8b ou deepseek-r1:7b si votre matériel le permet. Consultez notre guide sur l’exécution de LLMs en local pour d’autres options.

Étape 2 : créer le fichier Docker Compose

mkdir anythingllm-setup && cd anythingllm-setup
touch .env

Créez docker-compose.yml :

services:
  anythingllm:
    image: mintplexlabs/anythingllm:latest
    container_name: anythingllm
    ports:
      - "3001:3001"
    cap_add:
      - SYS_ADMIN
    volumes:
      - anythingllm_storage:/app/server/storage
      - ./.env:/app/server/.env
    environment:
      - STORAGE_DIR=/app/server/storage
    extra_hosts:
      - "host.docker.internal:host-gateway"
    restart: unless-stopped

volumes:
  anythingllm_storage:

Quelques remarques : le flag cap_add: SYS_ADMIN est requis pour le scraper web PuppeteerJS intégré, qui utilise un navigateur Chromium sandboxé. 

La ligne extra_hosts résout le problème de réseau Docker le plus courant : elle permet au conteneur d’atteindre Ollama qui tourne sur votre machine hôte. Sans cela, toute tentative de connexion à localhost:11434 depuis le conteneur échouera, car les conteneurs disposent de leur propre espace de noms réseau. 

J’utilise un volume Docker nommé (anythingllm_storage) plutôt qu’un bind mount pour une meilleure compatibilité multi-plateformes, notamment sous Windows et macOS où les permissions des bind mounts peuvent poser problème.

Étape 3 : lancer et configurer

Patientez environ 30 secondes le temps que le conteneur s’initialise, puis ouvrez http://localhost:3001. L’assistant de première configuration s’affiche. Mais d’abord, exécutez cette commande :

docker compose up -d

Assistant de première configuration d’AnythingLLM après installation Docker.

Assistant de configuration initiale AnythingLLM sur Docker. Image par l’auteur.

Pendant l’assistant, sélectionnez Ollama comme fournisseur LLM et embedder, définissez l’URL de base sur http://host.docker.internal:11434, choisissez llama3.2:3b comme modèle de chat et nomic-embed-text comme embedder. Conservez LanceDB comme base vectorielle par défaut.

Configuration d’Ollama comme fournisseur LLM. Vidéo par l’auteur.

Pour l’alternative Bureau, téléchargez l’application depuis anythingllm.com. Tout est packagé et opérationnel immédiatement, sans configuration. Idéal pour un usage personnel, mais comme indiqué plus haut, il manque les fonctions multi-utilisateurs et entreprise disponibles avec Docker.

Connecter des fournisseurs de LLM

Au-delà d’Ollama, vous pouvez connecter des fournisseurs cloud via les Paramètres (comme mentionné dans la FAQ 1, utile si votre matériel est limité).

OpenAI

Choisissez OpenAI comme fournisseur LLM, saisissez votre clé API depuis platform.openai.com, et choisissez un modèle (GPT-4o, GPT-4o-mini, etc.). Votre compte doit avoir un moyen de paiement configuré, sinon cela ne fonctionnera pas (et le message d’erreur peut être ambigu).

Anthropic

Saisissez votre clé depuis console.anthropic.com. Tous les modèles Claude fonctionnent pour le chat, mais Anthropic ne propose pas de modèles d’embedding ; vous aurez donc besoin d’un embedder séparé comme nomic-embed-text d’Ollama.

Configuration d’Ollama

Si vous avez configuré Ollama lors de l’installation comme ci-dessus, tout est prêt. Sinon, utilisez http://host.docker.internal:11434 sur Windows/macOS, ou http://172.17.0.1:11434 sur Linux. Si Ollama est injoignable, définissez OLLAMA_HOST=0.0.0.0:11434 avant de le lancer.

Utiliser AnythingLLM pour le chat documentaire

Cliquez sur "New Workspace" dans la barre latérale et nommez-le. Importez des fichiers via le bouton de téléversement de la barre latérale ou par glisser-déposer.

AnythingLLM propose deux modes documentaires. Pièce jointe (glisser dans le chat) : le texte complet est ajouté à la conversation, mais uniquement pour ce fil. Le modèle voit tout, mais vous êtes limité par la capacité en tokens. Embedding (approche RAG standard) : le document est découpé en segments, converti en vecteurs et stocké dans l’espace. Une fois embarqués, les documents fonctionnent dans tous vos chats de l’espace. Dans la majorité des cas, l’embedding est à privilégier. Cliquez sur "Move to Workspace" pour lancer l’embedding.

Import et embedding de documents dans un espace de travail. Vidéo par l’auteur.

Ajuster la qualité de la recherche

Saisissez votre question ; le système trouve automatiquement les segments pertinents et les envoie au LLM. Si les réponses ne sont pas satisfaisantes, réglez ces paramètres :

Seuil de similarité

Comme indiqué dans la FAQ 5, commencez par "No Restriction" si vous rencontrez des problèmes, puis augmentez progressivement pour filtrer le bruit.

Nombre max de snippets de contexte

Par défaut 4 à 6 segments. Montez à 10 ou 12 pour des modèles à grande fenêtre de contexte comme Claude.

Préférence de recherche

"Accuracy Optimized" sur LanceDB active le reranking, ce qui améliore les résultats mais peut ajouter de la latence selon le modèle et le matériel.

Épinglage de documents

Épinglez les documents critiques pour éviter tout découpage. Leur texte complet est ajouté à chaque requête (dans la limite des tokens).

Réponse de chat documentaire avec contexte RAG. Vidéo par l’auteur.

AnythingLLM vs Open WebUI

Les deux outils sont solides, mais ils ciblent des utilisateurs différents.

Dimension

AnythingLLM

Open WebUI

Public principal

Utilisateurs métier, petites équipes

Développeurs, profils techniques

Application de bureau

Oui (macOS, Windows, Linux)

Non (web uniquement)

Complexité d'installation

Bureau : un clic ; Docker : simple

Nécessite Docker ou un serveur

Mise en œuvre RAG

Intégrée avec support multi-BD vectorielles, reranking

RAG étendu, extensibilité par plugins

Multi-utilisateurs

Docker uniquement ; trois rôles RBAC

Fonctionnalités de collaboration limitées

Écosystème de plugins

En croissance ; compétences sur mesure via Node.js

Plus mature et plus vaste

Licence

MIT

BSD-3-Clause modifiée avec protection de marque depuis v0.6.6

AnythingLLM a tendance à convenir aux équipes qui privilégient la gestion des espaces de travail et les widgets embarquables, tandis qu’Open WebUI convient davantage à ceux qui veulent un écosystème de plugins plus large et une extensibilité orientée développeurs. Certaines équipes utilisent les deux : Open WebUI pour les devs en quête de contrôle fin, et AnythingLLM pour les utilisateurs métier qui ont besoin d’espaces documentaires rapides.

AnythingLLM vs ChatGPT

La comparaison porte sur les priorités, pas sur lequell outil est "meilleur".

Dimension

AnythingLLM

ChatGPT

Confidentialité des données

Contrôle total avec des modèles locaux

Données envoyées aux serveurs OpenAI

Coût

Gratuit (auto-hébergé) ; cloud à partir de 50 $/mois

Offre gratuite ; Plus 20 $/mois ; Pro 200 $/mois

Personnalisation

N’importe quel LLM, embedder, BD vectorielle, agents

Limité aux modèles OpenAI

Fonctionnement hors ligne

Oui (avec modèles locaux)

Non

Effort de mise en route

Nécessite une installation

Aucune installation, via navigateur

Chat documentaire

Contrôle RAG complet (seuils, découpage, reranking)

Import de fichiers avec limites d’usage

ChatGPT met l’accent sur une expérience entièrement hébergée et une excellente qualité par défaut, tandis qu’AnythingLLM privilégie la confidentialité, la flexibilité et le contrôle des réglages RAG. Vous pouvez aussi connecter GPT-4o à AnythingLLM via l’API OpenAI pour bénéficier des modèles de qualité ChatGPT avec les espaces de travail et fonctionnalités RAG d’AnythingLLM.

Cas d’usage d'AnythingLLM

Voici où AnythingLLM excelle :

Bases de connaissances internes

Les employés posent des questions sur les documents de l’entreprise au lieu de fouiller des dossiers. Importez politiques, procédures et documentations, puis laissez-les chercher en langage naturel.

Workflows de recherche

Les académiques interrogent instantanément des centaines d’articles. Embarquez votre bibliothèque et faites remonter les résultats pertinents sans recherche par mots-clés.

Déploiements privés en entreprise

Santé, finance, juridique : utilisez l’IA en gardant toutes les données sur vos serveurs. Fréquent dans les secteurs réglementés où les données doivent rester on-premise.

Tests développeurs

Essayez différents LLM (Ollama, OpenAI, Claude) sur les mêmes documents en changeant de modèle par espace de travail. Aucune modification d’infrastructure nécessaire.

Widgets de chat clients

Intégrez une interface de chat sur votre site avec Docker. Configurez des allowlists de domaines et des limites par session pour un usage public.

Transcription de réunions

La fonctionnalité Meeting Assistant fonctionne comme des outils de prise de notes cloud mais en local. Comptez environ 16 Go de RAM pour une expérience fluide.

Limites

Comme vu plus haut, Bureau et Docker n’offrent pas les mêmes fonctions, ce qui peut dérouter les nouveaux utilisateurs. 

La qualité RAG demande des ajustements (j’ai détaillé les principaux réglages) car la recherche par similarité repose sur des calculs et ne "comprend" pas réellement le sens. 

L’écosystème de plugins est plus restreint que celui d’Open WebUI, et créer des compétences d’agent sur mesure nécessite des compétences en Node.js. 

Enfin, pas de fine-tuning intégré. La personnalisation se fait via prompts système, température et limites de tokens.

Sécurité et confidentialité avec AnythingLLM

Un déploiement local conserve toutes les données sur votre machine. (Plus de détails dans la troisième FAQ ci-dessous.) Avec des fournisseurs cloud, seuls les prompts et le contexte retrouvé sont envoyés pendant l’inférence. Les vecteurs et embeddings restent sur votre serveur. Soyez délibéré dans le choix des espaces qui utilisent des modèles cloud vs locaux.

La version Docker inclut un SSO simple via SIMPLE_SSO_ENABLED, qui crée des jetons d’accès temporaires. Les clés API donnent un accès complet sans permissions granulaires : traitez-les comme des mots de passe admin et renouvelez-les régulièrement. Si vous exposez AnythingLLM sur Internet, placez un reverse proxy Nginx avec SSL en frontal (l’app ne gère pas HTTPS nativement). Vous pouvez désactiver la télémétrie avec DISABLE_TELEMETRY=true dans votre fichier .env.

Conclusion

AnythingLLM répond à un vrai besoin de l’IA auto-hébergée : une interface pour dialoguer avec vos documents, des connexions à presque tous les fournisseurs de LLM, et la maîtrise de vos données. Comme vu plus haut, choisissez Bureau pour un usage personnel ou Docker pour des déploiements équipe.

Comme tout outil, il implique des arbitrages. La qualité RAG dépend de votre configuration, et les différences Bureau/Docker peuvent perturber les débutants. 

Pour aller plus loin, consultez notre parcours AI Fundamentals ou notre tutoriel sur la création d’IA locale avec Docker et n8n.


Khalid Abdelaty's photo
Author
Khalid Abdelaty
LinkedIn

Je suis ingénieur de données et créateur de communautés. Je travaille sur les pipelines de données, le cloud et les outils d'IA, tout en rédigeant des tutoriels pratiques et percutants pour DataCamp et les développeurs émergents.

FAQs

Puis-je faire tourner cela sur mon ancien ordinateur portable sans GPU ?

Oui ! AnythingLLM en lui-même est léger : environ 2 Go de RAM, un CPU 2 cœurs et 5 Go de stockage. La partie lourde, c’est l’exécution locale du LLM via Ollama. Si votre matériel est limité, connectez-vous plutôt à un fournisseur cloud comme OpenAI ou Groq. Vous conservez les mêmes espaces de travail et fonctions RAG, mais l’inférence se fait dans le cloud. En clair, AnythingLLM orchestre le workflow et vous choisissez si le modèle tourne en local ou dans le cloud.

Que se passe-t-il si je change plus tard de base vectorielle ?

Anticipez : il n’y a pas de migration automatique entre bases vectorielles. Passer de LanceDB à Pinecone implique de ré-embedder tous les documents. Vos fichiers d’origine restent intacts, mais les vecteurs doivent être regénérés. Conseil pratique : restez sur LanceDB sauf besoin entreprise spécifique. C’est généralement peu contraignant et adapté à de nombreux déploiements en petites équipes.

Mes données sont-elles vraiment privées si j’utilise OpenAI pour le LLM ?

Point essentiel : vos documents et embeddings ne quittent jamais votre serveur. En revanche, lors des questions, les segments de texte retrouvés et votre prompt sont envoyés à l’API d’OpenAI pour l’inférence. Pour des données vraiment sensibles, utilisez Ollama : tout reste local. Pour des documents de travail généraux, AnythingLLM avec OpenAI reste plus privé que de téléverser des fichiers directement dans ChatGPT.

Mon équipe peut-elle partager une instance AnythingLLM ?

Oui, mais uniquement avec la version Docker. Elle gère le multi-utilisateurs avec trois rôles : Admin, Manager et Default. L’application de bureau est mono-utilisateur. Important : le mode multi-utilisateurs est pensé comme un changement de configuration à sens unique. Décidez en amont si vous avez besoin d’un accès équipe avant de l’activer.

Pourquoi ignore-t-il parfois mes documents dans ses réponses ?

Trois raisons habituelles : seuil de similarité trop élevé, requêtes trop vagues, ou documents non anglais avec l’embedder anglais par défaut. Correctif rapide : testez d’abord "No Restriction" pour le seuil. Si vos documents ne sont pas en anglais, optez pour un modèle d’embedding multilingue disponible dans Ollama (par exemple une variante e5) pour de bien meilleurs résultats.

Sujets

Learn with DataCamp

Cours

Comprendre l'intelligence artificielle

2 h
397.3K
Découvrez les bases de l’intelligence artificielle : machine learning, deep learning, NLP, IA générative et bien plus encore.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow