# đŸ€– AI Code Assistant - Interface Web ComplĂšte **Interface web locale style Claude avec FastAPI + React pour dĂ©veloppement assistĂ© par IA** ![Version](https://img.shields.io/badge/version-1.0.0-blue) ![Python](https://img.shields.io/badge/python-3.10+-green) ![FastAPI](https://img.shields.io/badge/FastAPI-0.109-009688) ![License](https://img.shields.io/badge/license-MIT-orange) --- ## 📩 Contenu du package ``` ai-code-assistant/ ├── 📖 README.md # Ce fichier ├── 📖 QUICKSTART.md # Guide de dĂ©marrage rapide ├── 📖 IA-Locale-Code-WSL.md # Guide complet d'installation Ollama sur WSL ├── 📖 EXAMPLES.md # Exemples d'utilisation avancĂ©e │ ├── 🔧 backend/ │ ├── main.py # Serveur FastAPI avec WebSocket │ └── requirements.txt # DĂ©pendances Python │ ├── 🎹 frontend/ │ └── index.html # Interface React complĂšte (SPA) │ ├── 🚀 start.sh # Script de dĂ©marrage automatique └── 🛑 stop.sh # Script d'arrĂȘt ``` --- ## ✹ FonctionnalitĂ©s principales ### 💬 Chat IA en temps rĂ©el - Communication WebSocket avec streaming - RĂ©ponses progressives token par token - Support multi-modĂšles Ollama - Historique des conversations - Interface moderne style Claude ### đŸ’» Éditeur de code intĂ©grĂ© - Éditeur Python avec coloration syntaxique - ExĂ©cution de code en temps rĂ©el - Affichage des rĂ©sultats et erreurs - Copie facile des blocs de code ### 🎹 Design moderne - Interface sombre avec effets de glassmorphisme - Animations fluides et micro-interactions - Typographie soignĂ©e (Space Grotesk + JetBrains Mono) - Responsive design - Grain texture overlay pour un aspect premium ### 🔌 API REST complĂšte - Chat synchrone et asynchrone - ExĂ©cution de code (Python, JS, Bash) - Analyse de code avec IA - Correction automatique de bugs - Liste des modĂšles disponibles - Health check endpoint --- ## 🚀 Installation ultra-rapide ### PrĂ©requis - **WSL2** avec Ubuntu 22.04+ - **Python 3.10+** - **Ollama** installĂ© - **GPU NVIDIA** 8GB+ (optionnel mais recommandĂ©) ### En 3 commandes ```bash # 1. Extraire l'archive unzip ai-code-assistant.zip cd ai-code-assistant # 2. TĂ©lĂ©charger un modĂšle ollama pull qwen2.5-coder:7b # 3. Lancer l'application ./start.sh ``` **C'est tout !** Ouvrez http://localhost:9000 dans votre navigateur 🎉 --- ## 📚 Documentation ### 📖 Guides disponibles 1. **QUICKSTART.md** - DĂ©marrage en 5 minutes - Installation rapide - Premiers tests - Commandes essentielles - DĂ©pannage rapide 2. **README.md** (dans le dossier) - Documentation complĂšte - Architecture dĂ©taillĂ©e - Configuration avancĂ©e - API endpoints - Personnalisation 3. **IA-Locale-Code-WSL.md** - Installation Ollama complĂšte - Configuration WSL2 + GPU - Installation Ollama - CrĂ©ation de modĂšles personnalisĂ©s - Optimisations avancĂ©es 4. **EXAMPLES.md** - Exemples d'intĂ©gration - Utilisation de l'API en Python - WebSocket avancĂ© - Scripts utilitaires - IntĂ©gration Git hooks - VS Code integration --- ## 🎯 Utilisation ### Interface Web 1. **Lancer**: `./start.sh` 2. **Ouvrir**: http://localhost:9000 3. **Discuter** avec l'IA dans la zone de chat 4. **Cliquer sur "Code"** pour ouvrir l'Ă©diteur 5. **Tester du code** directement dans le navigateur ### API ```python import requests # Chat simple response = requests.post('http://localhost:9001/chat', json={ "messages": [{"role": "user", "content": "Écris une fonction de tri"}], "model": "qwen2.5-coder:7b", "stream": False }) print(response.json()['response']) # ExĂ©cuter du code response = requests.post('http://localhost:9001/execute', json={ "code": "print('Hello AI!')", "language": "python" }) print(response.json()['stdout']) ``` ### WebSocket (temps rĂ©el) ```javascript const ws = new WebSocket('ws://localhost:9001/ws/chat'); ws.onmessage = (event) => { const data = JSON.parse(event.data); if (data.type === 'stream') { console.log(data.content); // Affiche token par token } }; ws.send(JSON.stringify({ message: 'Explique les closures', model: 'qwen2.5-coder:7b' })); ``` --- ## 🎹 Captures d'Ă©cran L'interface offre: - **Chat fluide** avec rĂ©ponses en streaming - **Syntaxe highlighting** pour le code - **Boutons d'action** (Copier, Tester) sur les blocs de code - **Éditeur latĂ©ral** qui s'ouvre en un clic - **Design dark mode** avec accents violets - **Animations subtiles** et professionnelles --- ## 🔧 Configuration ### Changer le modĂšle par dĂ©faut Éditer `frontend/index.html`: ```javascript const [selectedModel, setSelectedModel] = useState('votre-modele'); ``` ### Changer les couleurs Éditer `frontend/index.html`, section CSS: ```css :root { --accent-primary: #7c3aed; /* Couleur principale */ --accent-secondary: #a78bfa; /* Couleur secondaire */ } ``` ### Ajouter des langages Éditer `backend/main.py`, fonction `execute_code`: ```python elif request.language == "ruby": result = subprocess.run(['ruby', temp_file], ...) ``` --- ## 📡 Endpoints API | Endpoint | MĂ©thode | Description | |----------|---------|-------------| | `/` | GET | Info API | | `/models` | GET | Liste des modĂšles | | `/chat` | POST | Chat (streaming ou non) | | `/ws/chat` | WebSocket | Chat temps rĂ©el | | `/execute` | POST | ExĂ©cuter du code | | `/analyze-code` | POST | Analyser du code | | `/fix-code` | POST | Corriger du code | | `/health` | GET | Health check | Voir **EXAMPLES.md** pour des exemples dĂ©taillĂ©s. --- ## 🐛 DĂ©pannage ### Backend ne dĂ©marre pas ```bash # VĂ©rifier les logs cat /tmp/fastapi.log # VĂ©rifier le port lsof -i :8000 ``` ### Ollama non accessible ```bash # RedĂ©marrer Ollama pkill ollama ollama serve & ``` ### WebSocket dĂ©connectĂ© ```bash # VĂ©rifier la connexion curl http://localhost:9001/health ``` Pour plus de dĂ©tails, voir **QUICKSTART.md** section DĂ©pannage. --- ## 🚀 FonctionnalitĂ©s Ă  venir - [ ] Sauvegarde des conversations - [ ] Export markdown/PDF - [ ] Support multi-langages (JS, Go, Rust) - [ ] Debugger visuel - [ ] IntĂ©gration Git - [ ] GĂ©nĂ©ration de tests automatique - [ ] RAG sur votre codebase - [ ] ThĂšmes personnalisables - [ ] Mode collaboration --- ## 📊 Performance Sur un GPU NVIDIA 8GB: - **Latence**: < 100ms premiĂšre rĂ©ponse - **DĂ©bit**: 40-60 tokens/sec - **RAM**: ~2-3 GB - **VRAM**: ~5-6 GB (selon le modĂšle) --- ## đŸ€ Contribution Suggestions et amĂ©liorations bienvenues ! Structure claire: - **Backend FastAPI** modulaire - **Frontend React** en SPA (single file) - **WebSocket** pour temps rĂ©el - **API REST** standard --- ## 📄 Licence Projet open source - Utilisation libre --- ## 🙏 CrĂ©dits - **Ollama** - ModĂšles LLM locaux - **FastAPI** - Framework backend - **React** - Interface utilisateur - **Anthropic Claude** - Inspiration design --- ## 📞 Support Pour toute question: 1. Consulter **QUICKSTART.md** pour les problĂšmes courants 2. VĂ©rifier **EXAMPLES.md** pour les cas d'usage 3. Lire la doc Ollama: https://ollama.ai/docs --- **DĂ©veloppĂ© avec ❀ pour le dĂ©veloppement assistĂ© par IA en local** 🚀 **Commencez maintenant**: `./start.sh` et ouvrez http://localhost:9000 --- ## 📋 Checklist de dĂ©marrage - [ ] WSL2 installĂ© et fonctionnel - [ ] Python 3.10+ disponible - [ ] Ollama installĂ© (`ollama --version`) - [ ] ModĂšle tĂ©lĂ©chargĂ© (`ollama list`) - [ ] GPU NVIDIA dĂ©tectĂ© (`nvidia-smi`) - optionnel - [ ] Fichiers extraits et scripts exĂ©cutables - [ ] Port 8000 et 8080 libres - [ ] `./start.sh` lancĂ© avec succĂšs - [ ] Interface accessible sur http://localhost:9000 ✅ **Tout est OK ?** Profitez de votre assistant IA local !