assistant-ia-local
by david-dabert
README.md
# Assistant IA Local - Conforme RGPD
**Assistant IA personnel 100% local, conforme RGPD par conception. Fonctionne sur votre ordinateur portable en 20 minutes. Zero dependance cloud. Vos donnees restent chez vous.**
---
## Architecture
```
┌─────────────────────────────────────────────────────────────────┐
│ VOTRE MACHINE │
│ │
│ ┌───────────┐ ┌──────────────┐ ┌──────────────────┐ │
│ │ │ │ │ │ │ │
│ │ CLI/Web │────>│ Assistant │────>│ Ollama (LLM) │ │
│ │ Interface│<────│ Core │<────│ 100% local │ │
│ │ │ │ │ │ │ │
│ └───────────┘ └──────┬───────┘ └──────────────────┘ │
│ │ │
│ ┌──────▼───────┐ │
│ │ │ │
│ │ ChromaDB │ Embeddings locaux │
│ │ (vectoriel) │ sentence-transformers │
│ │ │ │
│ └──────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Module RGPD : Audit | Suppression | Export | Registre │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Serveur MCP : expose les outils a Claude Code │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────┘
RIEN NE SORT DE CETTE BOITE. JAMAIS.
```
---
## Ce que ca fait
- **Repondre a vos questions depuis vos documents** : ingerez vos PDF, DOCX, TXT, Markdown. Posez une question. L'assistant repond en citant ses sources (document, page).
- **Recherche semantique** : trouvez l'information pertinente meme si vous ne vous souvenez pas des mots exacts.
- **Generation assistee** : brouillons d'emails, syntheses, notes, dans votre style, depuis votre base de connaissances.
- **Conformite RGPD native** : journal d'audit immutable, droit a la suppression, export de donnees, registre des traitements CNIL.
- **Integration Claude Code via MCP** : Claude Code peut interroger votre base locale comme un outil.
---
## Installation en 5 etapes
### Prerequis
- Python 3.10 ou superieur
- 8 Go de RAM minimum (16 Go recommande)
- 5 Go d'espace disque pour le modele
### Etape 1 : Installer Ollama
```bash
# macOS
brew install ollama
# Linux
curl -fsSL https://ollama.com/install.sh | sh
# Windows (WSL)
curl -fsSL https://ollama.com/install.sh | sh
```
### Etape 2 : Telecharger un modele
```bash
ollama pull mistral
```
Mistral 7B est le modele par defaut. Vous pouvez aussi utiliser `llama3`, `phi3`, ou tout autre modele supporte par Ollama.
### Etape 3 : Installer l'assistant
```bash
pip install -e /chemin/vers/assistant-ia-local-rgpd
```
Ou depuis le depot clone :
```bash
git clone <votre-depot>
cd assistant-ia-local-rgpd
pip install -e .
```
### Etape 4 : Initialiser
```bash
assistant-ia init
```
Cela verifie qu'Ollama tourne, cree les repertoires de donnees, et genere la configuration par defaut.
### Etape 5 : Ingerer vos documents
```bash
assistant-ia ingerer ~/Documents/mon-dossier/
```
C'est pret. Posez votre premiere question :
```bash
assistant-ia demander "Quel est le montant du contrat signe en mars ?"
```
---
## Utilisation
### Ingerer des documents
```bash
# Un fichier
assistant-ia ingerer rapport-annuel.pdf
# Un dossier entier (recursif)
assistant-ia ingerer ~/Documents/travail/
# Formats supportes : PDF, DOCX, TXT, MD
```
### Poser une question
```bash
assistant-ia demander "Quelles sont les obligations du prestataire ?"
```
Reponse avec sources citees :
```
Reponse : Le prestataire est tenu de livrer les livrables avant le 31 mars
et de maintenir une disponibilite de 99.5% sur la plateforme.
Sources :
[1] contrat-prestation-2026.pdf, page 4
[2] annexe-technique.pdf, page 12
```
### Recherche semantique
```bash
assistant-ia chercher "clause de confidentialite"
```
### Supprimer un document (droit a l'effacement RGPD)
```bash
assistant-ia supprimer doc_abc123
# Confirmation interactive + preuve de suppression generee
```
### Audit complet
```bash
assistant-ia audit
# Affiche toutes les operations : ingestions, requetes, suppressions
# Avec horodatage, operateur, details
```
### Exporter vos donnees (droit a la portabilite)
```bash
assistant-ia exporter --format json --sortie ~/export-donnees/
```
### Statut du systeme
```bash
assistant-ia statut
```
```
Ollama : actif (mistral 7B)
Documents : 47 fichiers indexes
Chunks : 1,203 segments
Stockage : 234 Mo
Derniere action : 2026-07-15 14:32 - ingestion rapport-Q2.pdf
```
---
## Conformite RGPD : ce que ca signifie concretement
### Aucune donnee ne quitte votre machine
- Le LLM tourne localement via Ollama. Aucun appel API externe.
- Les embeddings sont calcules localement avec sentence-transformers.
- ChromaDB stocke les vecteurs sur votre disque dur.
- Aucune telemetrie, aucun analytics, aucun appel reseau.
### Droits implementes
| Droit RGPD | Implementation |
|---|---|
| Acces | `assistant-ia exporter` exporte toutes vos donnees |
| Rectification | Re-ingerez le document corrige |
| Effacement | `assistant-ia supprimer` + preuve de suppression |
| Portabilite | Export JSON complet de toute la base |
| Information | Journal d'audit complet horodate |
### Registre des traitements (Article 30 RGPD)
```bash
assistant-ia audit --registre
```
Genere automatiquement le registre des traitements conforme aux exigences de la CNIL :
- Finalite du traitement
- Categories de donnees
- Duree de conservation
- Mesures de securite
- Base legale
### Pret pour un controle CNIL
Si votre DPO vous demande des comptes :
1. `assistant-ia audit` : montre toutes les operations
2. `assistant-ia audit --registre` : genere le registre CNIL
3. `assistant-ia exporter` : prouve que les donnees sont locales et exportables
4. `assistant-ia supprimer` : demontre le droit a l'effacement
---
## Configuration
Fichier de configuration : `~/.assistant-ia/config.yaml`
```yaml
# Modele Ollama a utiliser
modele: mistral
# Taille des segments de texte (en tokens)
taille_chunk: 500
# Chevauchement entre segments
chevauchement_chunk: 50
# Nombre de resultats pour la recherche
top_k: 5
# Repertoire de donnees
repertoire_donnees: ~/.assistant-ia/data
# Repertoire d'audit
repertoire_audit: ~/.assistant-ia/audit
# Langue de l'interface
langue: fr
# Modele d'embeddings local
modele_embeddings: all-MiniLM-L6-v2
```
---
## Integration Claude Code (MCP)
Cet assistant expose un serveur MCP que Claude Code peut utiliser comme outil.
### Configuration
Ajoutez a votre `claude_desktop_config.json` :
```json
{
"mcpServers": {
"assistant-ia-local": {
"command": "python",
"args": ["-m", "assistant.mcp_server"],
"env": {}
}
}
}
```
### Outils exposes
- `ingerer` : Ingerer un document dans la base locale
- `demander` : Poser une question a la base de connaissances
- `chercher` : Recherche semantique
- `supprimer` : Supprimer un document
- `audit` : Consulter le journal d'audit
---
## FAQ
**Q : Quelle puissance machine faut-il ?**
R : Un ordinateur portable recent avec 8 Go de RAM suffit pour Mistral 7B. Pour des modeles plus gros (Llama 70B), 32 Go sont necessaires.
**Q : Combien de documents peut-on indexer ?**
R : Pas de limite technique. Teste avec 10,000 documents / 50,000 pages. La recherche reste sous la seconde.
**Q : Les reponses sont-elles aussi bonnes que ChatGPT ?**
R : Pour des questions sur VOS documents, souvent meilleures, car le contexte est precis. Pour la culture generale, un modele 7B est inferieur a GPT-4.
**Q : Peut-on utiliser un autre modele que Mistral ?**
R : Oui. Tout modele disponible dans Ollama : `llama3`, `phi3`, `gemma2`, `mixtral`, etc. Changez `modele` dans la config.
**Q : Les donnees sont-elles chiffrees ?**
R : Les donnees sont stockees en clair sur votre disque. Utilisez le chiffrement de votre OS (FileVault macOS, LUKS Linux, BitLocker Windows) pour une protection supplementaire.
**Q : Peut-on l'utiliser en entreprise ?**
R : Oui. Le registre des traitements et le journal d'audit sont conformes aux exigences CNIL. Consultez votre DPO avec le document `docs/rgpd-conformite.md`.
**Q : Comment mettre a jour le modele ?**
R : `ollama pull mistral` telecharge la derniere version. Vos donnees indexees ne sont pas affectees.
**Q : Peut-on partager la base entre collegues ?**
R : Non par conception. Chaque instance est personnelle. Pour un usage equipe, chaque membre a sa propre instance.
---
## Contribuer
Contributions bienvenues. Ouvrez une issue ou une PR.
Priorites :
- Support de nouveaux formats (emails .eml, .epub, .odt)
- Interface web locale (Flask)
- Meilleur chunking (par paragraphe semantique)
- Support multi-langue des embeddings
---
## Licence
MIT - Copyright 2026 David Dabert
Voir le fichier LICENSE pour les details.
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues