LocalGPT : Un assistant de documents local alimenté par l'IA
LocalGPT est un projet qui permet de dialoguer avec vos documents sur votre appareil local en utilisant des modèles GPT. Aucune donnée ne quitte votre appareil, ce qui garantit une confidentialité totale.
Fonctionnalités
LocalGPT permet de poser des questions à vos documents sans connexion internet, en utilisant la puissance des modèles de langage à grande échelle (LLM). Vous pouvez ingérer des documents et poser des questions sans connexion internet ! Il est construit avec LangChain et Vicuna-7B et InstructorEmbeddings.
Mise en place de l'environnement
Pour configurer votre environnement afin d'exécuter le code, vous devez d'abord installer toutes les exigences : pip install -r requirements.txt
.
Ingestion de vos propres données
Vous pouvez mettre tous vos fichiers .txt, .pdf, ou .csv dans le répertoire SOURCE_DOCUMENTS. Dans la fonction load_documents()
, remplacez le docs_path
par le chemin absolu de votre répertoire source_documents. Les types de fichiers par défaut sont .txt, .pdf, .csv, et .xlsx. Si vous souhaitez utiliser un autre type de fichier, vous devrez le convertir en un des types de fichiers par défaut.
Poser des questions à vos documents, localement !
Pour poser une question, exécutez une commande comme : python run_localGPT.py
. Attendez que le script requière votre entrée. Appuyez sur entrée. Attendez que le modèle LLM consomme l'invite et prépare la réponse. Une fois terminé, il imprimera la réponse et les 4 sources qu'il a utilisées comme contexte à partir de vos documents ; vous pouvez alors poser une autre question sans relancer le script, attendez simplement l'invite à nouveau.
Comment ça marche ?
En sélectionnant les bons modèles locaux et la puissance de LangChain, vous pouvez exécuter l'ensemble du pipeline localement, sans aucune donnée quittant votre environnement, et avec des performances raisonnables.
Conclusion
LocalGPT est un projet de test pour valider la faisabilité d'une solution entièrement locale pour répondre aux questions en utilisant des LLMs et des embeddings vectoriels. Il n'est pas prêt pour la production, et il n'est pas destiné à être utilisé en production.