
🎯 Ce que vous allez obtenir
Un petit programme local (CPU) qui :
- lit vos PDF et fichiers texte,
- les comprend,
- et répond à vos questions en français.
Aucune donnée ne sort de votre machine.
✅ Ce dont vous avez besoin
- Un ordinateur avec Python 3.10 ou plus
- Un peu de place sur le disque (3 à 8 Go pour le modèle)
- Pas besoin de GPU, fonctionne sur CPU
🧰 Étapes simplifiées
1. 📁 Préparer les dossiers
Créez un dossier de travail :
mkdir mon-moteur-rag
cd mon-moteur-rag
mkdir source_documents model
Mettez vos PDF ou .txt dans source_documents/
.
2. 🧠 Télécharger le modèle local (1 fois)
Téléchargez ce modèle compressé (\~4 Go) :
📦 Mistral-7B-Instruct.Q4_K_M.gguf
Enregistrez-le dans model/
.
3. ⚙️ Installer Python et les outils
Dans le terminal :
python3 -m venv env
source env/bin/activate
pip install llama-index llama-cpp-python gradio pypdf
4. 📝 Créer le fichier app.py
Dans mon-moteur-rag/
, créez un fichier app.py
:
from llama_index import VectorStoreIndex, SimpleDirectoryReader, ServiceContext
from llama_index.llms import LlamaCPP
import gradio as gr
llm = LlamaCPP(
model_path="model/mistral-7b-instruct-v0.1.Q4_K_M.gguf",
temperature=0.1,
max_new_tokens=512,
context_window=2048,
n_threads=4,
)
service_context = ServiceContext.from_defaults(llm=llm)
documents = SimpleDirectoryReader("source_documents").load_data()
index = VectorStoreIndex.from_documents(documents, service_context=service_context)
query_engine = index.as_query_engine()
def ask(question):
return str(query_engine.query(question))
gr.Interface(fn=ask, inputs="text", outputs="text", title="Mon moteur RAG local").launch()
5. 🚀 Lancer le moteur
Dans le terminal :
python app.py
Le navigateur va s’ouvrir avec une interface pour poser vos questions.
🧪 Exemple
- Mettez un PDF contenant un contrat dans
source_documents/
- Lancez
python app.py
- Posez la question :
“Quels sont les engagements du client dans ce contrat ?”
Le moteur lit le fichier et vous répond.
🔒 100 % privé
- Pas d’envoi vers Internet.
- Parfait pour les entreprises, cabinets, avocats, développeurs, etc.