# Brief de Projet : Assistant IA Interne (CRM & RAG)

### 1. Vision et Objectifs

Concevoir et déployer un assistant IA 100% souverain et local, capable d'interagir en langage naturel avec les données de l'agence. L'outil doit assister les équipes dans la rédaction et la correction d'emails clients, tout en ayant accès en temps réel aux statuts des projets et à la facturation. L'infrastructure doit permettre de démarrer avec un budget nul (matériel existant) et de scaler sans interruption vers un cluster de calcul intensif.

### 2. Besoins Fonctionnels

- **Traitement du Langage Naturel (NLP) :** Correction de textes, ajustement du ton (professionnel/chaleureux), traduction.
- **Recherche Hybride :**
- _Relationnelle (SQL exact) :_ Extraire les prix, devis, et états d'avancement des clients.
- _Sémantique (RAG) :_ Retrouver des informations dans des historiques de réunions ou des documents non structurés.

- **Sécurité et Confidentialité :** Aucune donnée client (prix, noms, stratégies) ne doit transiter par des API externes (OpenAI, Anthropic). Tout tourne en local.
- **Accessibilité :** Interface web type "ChatGPT", multi-utilisateurs, permettant de changer de modèle à la volée.

### 3. La Stack Logicielle

- **Frontend & Orchestration :** Open WebUI (gère l'interface, les prompts systèmes et l'exécution des scripts _Tools_).
- **Moteurs d'Inférence :**
- Ollama (pour la phase de développement et de test).
- vLLM (pour la production massive à haute disponibilité).

- **Base de Données :** PostgreSQL avec l'extension `pgvector` (centralise les données structurées métier et les vecteurs pour le RAG).
- **Connectivité :** Scripts Python (Tools) injectés dans Open WebUI pour faire le pont entre le LLM et les requêtes PostgreSQL.

### 4. Roadmap de Déploiement

#### Phase 1 : Développement et Prototypage (En cours)

L'objectif est de valider la logique métier, de créer les "Tools" Python et de tester les modèles sans investir dans du matériel supplémentaire.

- **Matériel :** Mac Mini M4 (24 Go RAM unifiée, accélération Metal).
- **OS :** macOS Tahoe (v26).
- **Setup :** Ollama installé en natif (pour un accès direct au GPU/NPU) + Open WebUI et PostgreSQL conteneurisés via Docker.
- **Livrable attendu :** Un assistant fonctionnel sur `localhost:3000` capable de lire une fausse base client et de rédiger un email basé sur ces données.

#### Phase 2 : Le Nœud Pilote (Infrastructure Initiale)

Transition vers une architecture matérielle de type serveur pour libérer la machine de développement et tester la charge en conditions réelles.

- **Matériel :** Châssis serveur 4U (type Dual AMD EPYC) pré-câblé pour 8 GPUs. Démarrage avec 2 à 4 cartes (RTX 6000 Ada ou RTX 5090).
- **Setup :** Ubuntu Server, Kubernetes (K8s) single-node, NVIDIA GPU Operator, vLLM.
- **Livrable attendu :** Un serveur accessible sur le réseau local de l'agence, capable d'encaisser des requêtes simultanées avec des modèles plus lourds (ex: Llama-3-70B ou Qwen-72B).

#### Phase 3 : Le Cluster Scalable (Production Finale)

Mise en place d'un réseau distribué pour absorber l'ajout de nouvelles cartes et de nouveaux nœuds physiques sans aucune coupure de service (Zero-Downtime).

- **Matériel :** 2 à 3 serveurs physiques reliés par un réseau très haut débit (NVIDIA ConnectX-7, 100 GbE+ avec RoCEv2). Capacité cible : 20 GPUs.
- **Setup :** Cluster Kubernetes multi-nœuds, framework Ray (pour le calcul distribué inter-serveurs), Load Balancer (Traefik).
- **Livrable attendu :** Un mini-datacenter privé agissant comme un seul "super-cerveau", capable de faire tourner des modèles massifs (> 400 milliards de paramètres) avec répartition dynamique de la charge (_Tensor Parallelism_).
