Posez des questions à vos documents en langage naturel.
Sans cloud. Sans abonnement. Sans compromis sur la vie privée.
FamilyRAG est un système RAG (Retrieval-Augmented Generation) entièrement local, conçu pour les familles qui souhaitent exploiter la puissance de l'IA générative tout en gardant le contrôle total sur leurs données.
Imaginez pouvoir interroger en langage naturel :
- 📄 Les documents administratifs de la famille
- 📖 Les recettes de grand-mère numérisées
- 🖼️ Les photos de documents et textes scannés (OCR + Vision IA)
- 📝 Les cours et devoirs des enfants
- 📧 Les archives emails importantes
- 📚 Votre bibliothèque personnelle de livres et articles
Le tout sans qu'une seule donnée ne quitte votre domicile.
- Monitoring live — CPU, RAM et disque affichés directement dans l'interface
- Statistiques de précision — Score de confiance et probabilité des résultats pour chaque réponse
- Endpoint dédié —
/api/system/metricspour surveiller les ressources
Refonte graphique complète avec 3 thèmes plus poussés remplaçant les 6 précédents :
- Midnight — Bleu nuit profond, design épuré et professionnel
- Cyber — Noir intense avec accents cyan néon, ambiance futuriste
- Tactical — Vert militaire avec accents rouges, style opérationnel
- Choix précis des fichiers — Sélectionnez exactement quels documents indexer
- Barre de progression intelligente — Suivi en temps réel de l'avancement de l'indexation
- Contrôle granulaire — Plus besoin d'indexer l'intégralité du dossier
- Onglet dédié — Interface complète pour gérer l'historique des conversations
- Sélection de sources par conversation — Limitez la recherche à des documents spécifiques pour chaque discussion
- Persistance — Reprenez vos conversations là où vous les avez laissées
- Gardes LFI — Toute tentative de path traversal (
../../etc/passwd) est bloquée avec HTTP 403 sur les endpoints/api/indexet/api/vision - Interface 100 % hors-ligne — Tailwind CSS et Alpine.js servis localement (
/static/) ; aucune requête CDN externe - Suite de tests — 40 tests pytest couvrant les routes API, les gardes de sécurité et les scénarios d'erreur
- Logs structurés — Tous les
print()remplacés parloggingavec niveaux INFO / WARNING / ERROR
La v2.6 avait apporté une refonte majeure du pipeline de recherche :
- Re-ranking LLM — Chaque chunk réévalué sémantiquement, éliminant les faux positifs
- Métadonnées enrichies — Date, année, type de document et auteur extraits automatiquement
- Chunking intelligent — Préserve la structure (articles, listes, tableaux)
- Citations obligatoires — Chaque réponse cite ses sources
[document.pdf] - Sélection des modèles — LLM et embedding modifiables en un clic depuis l'interface
- Debug chunks — Visualisation des passages récupérés et leurs scores
| Métrique | v2.5 | v2.6+ |
|---|---|---|
| Chunks récupérés | 4 | 12 |
| Réponses avec citations | ~30% | ~85% |
| Faux positifs | ~40% | ~10% |
| Précision globale | ~45% | ~75% |
Images : OCR Tesseract (indexation) + Vision Ministral 3 (analyse à la demande)
┌─────────────────────────────────────────────────────────────────┐
│ Votre machine (Mac/Linux/Windows) │
│ │
│ ┌─────────────────┐ ┌────────────────────────────────┐ │
│ │ Ollama │◄──────►│ Docker Container │ │
│ │ (natif) │ API │ │ │
│ │ │ │ ┌──────────────────────────┐ │ │
│ │ • ministral-3 │ │ │ FastAPI + FAISS │ │ │
│ │ • nomic-embed │ │ │ + LangChain + Tesseract │ │ │
│ │ │ │ └──────────────────────────┘ │ │
│ └─────────────────┘ │ │ │
│ │ │ ┌──────────────────────────┐ │ │
│ │ GPU │ │ WebUI (3 thèmes) │ │ │
│ ▼ │ │ + Dashboard metrics │ │ │
│ ┌─────────────────┐ │ └──────────────────────────┘ │ │
│ │ Apple Silicon │ │ │ │
│ │ M1/M2/M3 │ │ 127.0.0.1:8000 (local only) │ │
│ └─────────────────┘ └────────────────────────────────┘ │
│ ▲ │
│ ┌─────────────────┐ │ │
│ │ 📁 Vos Docs │───────────────────┘ │
│ │ (RAG folder) │ volume mount │
│ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
Par défaut, le port 8000 est lié à 127.0.0.1 — l'application n'est accessible que depuis la machine hôte. Pour l'exposer sur le réseau local, modifiez docker-compose.yml (voir Guide d'administration).
- Ollama 0.13.1+ (requis pour Ministral 3)
- Docker Desktop
# Vérifier la version Ollama
ollama --versiongit clone https://github.com/Liamdbav/FAMILY_RAG.git
cd FAMILY_RAG
cp .env.example .envÉditer .env pour définir le chemin vers vos documents :
nano .env
# Modifier HOST_DATA_PATH=/chemin/vers/vos/documents# Modèle de génération + vision (recommandé)
ollama pull ministral-3:latest
# Ou autres modèles de génération
ollama pull qwen2.5:7b
ollama pull mistral:latest
# Modèle d'embedding (obligatoire)
ollama pull nomic-embed-textdocker compose up -d --buildOuvrez http://localhost:8000 🎉
Toutes les variables sont déclarées dans .env (copié depuis .env.example).
| Variable | Défaut | Obligatoire | Description |
|---|---|---|---|
HOST_DATA_PATH |
— | ✅ | Chemin absolu vers le dossier de documents sur l'hôte |
OLLAMA_HOST |
host.docker.internal:11434 |
Adresse du serveur Ollama (host:port) — localhost:11434 sur Linux avec network_mode: host |
|
EMBEDDING_MODEL |
nomic-embed-text |
Modèle Ollama utilisé pour la vectorisation des documents | |
LLM_MODEL |
(auto-détecté) | Modèle de génération Ollama ; si vide, le premier modèle disponible est sélectionné automatiquement | |
CHUNK_SIZE |
1200 |
Taille maximale d'un chunk en caractères | |
CHUNK_OVERLAP |
300 |
Chevauchement entre chunks consécutifs (en caractères) | |
TOP_K |
12 |
Nombre de chunks récupérés par requête RAG avant re-ranking | |
TEMPERATURE |
0.7 |
Créativité du LLM (0 = précis et factuel, 1 = créatif) |
Note Linux : remplacez
OLLAMA_HOST=host.docker.internal:11434parOLLAMA_HOST=localhost:11434et décommenteznetwork_mode: hostdansdocker-compose.yml.
Les tests nécessitent pytest et les dépendances applicatives :
pip install pytest
# Depuis la racine du projet
pytest tests/ -vLes tests ne requièrent ni Ollama ni FAISS — le moteur RAG est entièrement simulé.
| Fichier | Couverture |
|---|---|
tests/test_security.py |
Traversées de répertoire (LFI) sur DocumentLoader et RAGEngine — 13 tests |
tests/test_api.py |
Routes FastAPI principales + gestion des erreurs — 27 tests |
| Guide | Description |
|---|---|
| Administration | Gestion, diagnostic et maintenance |
| Changelog | Historique complet des versions |
Fait avec soin par Liam - License MIT — voir LICENSE