Skip to main content
Glama
david-dabert

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.

Maintenance

ActivitySlowing
ResponsivenessNo issues