PrivateGPT : une API locale autour de modèles compatibles OpenAI
Couche API complète pour les applications d'IA privées sur des modèles locaux : RAG, compétences, outils, MCP, text-to-sql, etc. Fonctionne avec n'importe quel serveur d'inférence compatible OpenAI.
En bref
- De quoi s’agit-il ?
- PrivateGPT fournit une couche API pour ingestion, recherche citée, outils et connecteurs MCP, sans exécuter lui-même les modèles.
- À qui s’adresse-t-il ?
- PrivateGPT convient aux équipes qui veulent construire une application sur une API locale et disposent déjà d'un serveur d'inférence compatible OpenAI. Il ne convient pas à qui cherche un modèle fourni par le projet ou une interface finale prête à remplacer son produit.
- Puis-je l’utiliser commercialement ?
- Oui. Apache-2.0 est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
- En quel langage est-il écrit ?
- Principalement Python, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
La couche entre application et modèle
PrivateGPT se décrit comme une couche API open source pour transformer des modèles locaux en applications d'IA. Le schéma du README place votre application, agent ou workflow au-dessus de PrivateGPT, puis un serveur d'inférence compatible OpenAI en dessous. Le projet ne fait donc pas tourner les modèles lui-même. Il se connecte à un serveur qui expose /v1/chat/completions et /v1/models via OPENAI_API_BASE. Ollama est cité comme point de départ simple, mais llama.cpp et vLLM figurent aussi parmi les fournisseurs possibles. Cette frontière est essentielle pour attribuer les problèmes de modèle, de réseau et d'orchestration.
Ce que l'API prend en charge
Le README énumère une API de messages avec streaming, traitement asynchrone et comptage de tokens. Elle couvre aussi l'ingestion de fichiers et d'artefacts, la recherche avec citations, le RAG agentique, les embeddings et l'orchestration. Des outils intégrés reprennent des fonctions comme la recherche Web, la récupération de pages et l'exécution de code. Les connecteurs MCP, les outils personnalisés, l'accès aux bases de données et l'analyse de CSV élargissent le périmètre. La table de compatibilité annonce des sorties structurées et la vision, mais les deux dépendent de l'inférence. Elle signale aussi l'absence de prompt caching et d'OAuth d'organisations.
Installer le service sans lui attribuer un modèle
Sur macOS, le README donne brew tap zylon-ai/tap puis brew install private-gpt. Sous Linux et Windows, il propose uv tool install avec Python 3.11 et le dépôt de wheels PrivateGPT. Il faut ensuite préparer Ollama, tirer un modèle comme qwen3.5:35b et un modèle d'embeddings mxbai-embed-large, puis lancer ollama serve. Ces tailles annoncées par le README ont un impact matériel réel. PrivateGPT démarre avec private-gpt serve et les variables OPENAI_API_BASE et OPENAI_EMBEDDING_API_BASE pointant vers les endpoints /v1 correspondants.
Workbench pour vérifier, API pour construire
L'interface est disponible sur http://localhost:8080/ui. Elle permet d'envoyer des messages, choisir un modèle via /v1/models, charger des documents, observer les citations et activer des outils. L'API se trouve à la racine du serveur et suit la référence Claude API annoncée par le projet. Le README qualifie /ui d'outil de démonstration et présente l'API comme le produit réel. Pour une intégration durable, utilisez donc la Workbench pour examiner les requêtes et réponses, puis reproduisez le flux dans votre propre client plutôt que de prendre l'écran comme contrat produit.
Mesurer la pertinence sur votre corpus
Un contrôle utile commence par le serveur Ollama : vérifiez que /v1/models répond, puis envoyez un message via PrivateGPT et observez le streaming. Ajoutez un document connu dans /ui, posez une question dont la réponse est localisable et examinez la citation produite. Contrôlez ensuite la même séquence via l'API et testez un CSV ou une base si cette capacité est requise. Les outils d'exécution de code, la recherche Web et les connecteurs MCP élargissent la surface de risque, alors activez-les séparément. Apache-2.0 autorise la réutilisation selon ses conditions, sans constituer un audit de confidentialité ni une garantie de performance.
Contrôle ciblé · zylon ai private gpt
Avec PrivateGPT, gardez fixes document, question, modèle et paramètres, puis comparez une réponse directe à une réponse citée. Vérifiez /v1/models et isolez OPENAI_API_BASE de OPENAI_EMBEDDING_API_BASE. Testez tools et MCP séparément du RAG afin d’attribuer chaque résultat à la bonne brique.
Limites observables · zylon ai private gpt
Cette vérification doit rester liée au projet : relisez le README, utilisez les chemins et commandes cités, et comparez les sorties obtenues. Notez aussi les erreurs et les cas non couverts, car aucune donnée absente de la documentation ne doit être présentée comme une capacité. La décision finale dépend du format, du système et du niveau de maintenance attendus. Cette vérification doit rester liée au projet : relisez le README, utilisez les chemins et commandes cités, et comparez les sorties obtenues. Notez aussi les erreurs et les cas non couverts, car aucune donnée absente de la documentation ne doit être présentée comme une capacité. La décision finale dépend du format, du système et du niveau de maintenance attendus.
Conclusion éditoriale
PrivateGPT convient aux équipes qui veulent construire une application sur une API locale et disposent déjà d'un serveur d'inférence compatible OpenAI. Il ne convient pas à qui cherche un modèle fourni par le projet ou une interface finale prête à remplacer son produit. Validez d'abord OPENAI_API_BASE, /v1/models, /v1/chat/completions et OPENAI_EMBEDDING_API_BASE avec Ollama, puis vérifiez citations et ingestion dans /ui.
Notes de la communauté