03-comment-je-travaille/guides/ia.md

Guide de l'IA (Intelligence Artificielle)

Ce guide définit l'approche de Codexia concernant l'intégration de l'IA dans le cycle de développement web, les technologies retenues et les optimisations spécifiques pour l'environnement de travail.

L'objectif est de maximiser l'efficience tout en garantissant la souveraineté technique et en maîtrisant l'impact financier.


1. Concepts et applications dans le WebDev

Dans le cadre de Codexia, l'IA n'est pas un substitut Ă  l'expertise humaine mais un multiplicateur de forces.

Collaboration Humain-IA

  • Augmentation vs Automatisation : L'IA assiste le dĂ©veloppeur dans les tâches rĂ©pĂ©titives (boilerplate, tests unitaires, documentation) pour lui permettre de se concentrer sur l'architecture et la logique mĂ©tier complexe.
  • Revue de code bidirectionnelle : Utilisation de l'IA pour auditer le code (sĂ©curitĂ©, performance, accessibilitĂ©) et, inversement, revue humaine systĂ©matique du code gĂ©nĂ©rĂ© par l'IA.
  • Documentation as Code assistĂ©e : GĂ©nĂ©ration de squelettes de documentation, de changelogs et de tutoriels Ă  partir du code source ou de notes de conception.

Faisabilité pour le projet

  • GĂ©nĂ©ration de code : Très haute faisabilitĂ© pour les composants isolĂ©s (Voters, Commandes, services simples).
  • Refactoring : Haute faisabilitĂ© pour la modernisation de code legacy (ex: migration de Twig vers des composants Stimulus).
  • Tests : Indispensable pour augmenter la couverture de tests sans sacrifier le temps de dĂ©veloppement.

2. Technologies principales

Le choix des technologies repose sur un équilibre entre performance, coût et protection des données.

Modèles distants (SaaS)

  • Claude (Anthropic) : Modèle privilĂ©giĂ© pour le raisonnement complexe et la rĂ©daction de documentation technique grâce Ă  sa fenĂŞtre de contexte Ă©tendue et son style de rĂ©daction plus "humain".
  • ChatGPT (OpenAI) : Utilisation ponctuelle pour des scripts rapides ou de l'exploration technologique.

Modèles locaux (Souveraineté)

  • Ollama / llama.cpp : Pour l'exĂ©cution de modèles en local (Llama 3, Mistral, DeepSeek-Coder).
  • Avantages : ZĂ©ro coĂ»t rĂ©current, confidentialitĂ© totale du code source, fonctionnement hors-ligne.
  • FaisabilitĂ© : NĂ©cessite un matĂ©riel adaptĂ© (GPU avec 8Go+ VRAM recommandĂ©, 6Go minimum) pour une fluiditĂ© acceptable.
    • Note sur le matĂ©riel : Une carte comme la GTX 1660 Ti (6Go) permet de faire tourner des modèles de 7-8 milliards de paramètres (ex: Llama 3) s'ils sont quantifiĂ©s (compressĂ©s). Pour des modèles de code plus lourds ou une fenĂŞtre de contexte large (plusieurs fichiers ouverts), 8Go Ă  12Go de VRAM sont nĂ©cessaires pour Ă©viter les ralentissements.
    • Pourquoi la VRAM ? Les modèles d'IA (LLM) sont composĂ©s de milliards de paramètres ("poids"). Pour rĂ©pondre instantanĂ©ment, ces poids doivent ĂŞtre stockĂ©s intĂ©gralement dans la mĂ©moire ultra-rapide de la carte graphique (VRAM). Si la VRAM est insuffisante, le modèle bascule sur la RAM classique, ce qui ralentit l'exĂ©cution de manière drastique (facteur 10 Ă  100).

Utilisation locale avec Ollama

  1. Installation : Télécharger Ollama sur ollama.com.
  2. Récupération d'un modèle : Dans un terminal, exécuter ollama run deepseek-coder-v2 (ou llama3, mistral).
  3. Configuration IDE : Utiliser un plugin comme Continue pour interagir avec l'API locale d'Ollama (généralement sur http://localhost:11434).
  4. Usage : Idéal pour l'assistance au code sans que celui-ci ne quitte la machine de développement.

Conseil

  1. Ollama : Installe-le et essaie ollama run llama3:8b. Ça devrait être parfaitement fluide.
  2. Quantification : Reste sur les modèles "4-bit" ou "Q4_K_M". Évite les versions "fp16" qui sont 4 fois plus lourdes sans apporter de gain majeur pour du code.
  3. Usage IDE : C'est parfait pour de l'autocomplétion ou des explications de fonctions isolées.

Impact Financier

Solution Modèle économique Coût estimé Usage recommandé
SaaS (API) Pay-per-token 5-20€ / mois Tâches complexes, analyses larges
SaaS (Chat) Abonnement fixe ~20€ / mois Interaction continue, itérations rapides
Local Investissement matériel 0€ (récurrent) Tâches de routine, confidentialité absolue

Stratégie Codexia : Privilégier le SaaS pour la phase de conception/conception et le local pour le développement quotidien si le matériel le permet.


3. Utilisation dans PhpStorm

PhpStorm est le centre névralgique de l'expertise Codexia. L'IA doit y être intégrée de manière fluide pour maximiser la productivité sans polluer l'interface.

Paramétrages recommandés

  1. AI Assistant (JetBrains) :
    • Settings : Settings > Tools > AI Assistant.
    • Contexte : Cocher "Enable project context" pour que l'IA indexe la structure du projet.
    • Data Sharing : Configurer selon les exigences de confidentialitĂ© du client.
  2. Plugin Continue (Open Source) :
    • Installation : Settings > Plugins > Marketplace > Continue.
    • Configuration : Éditer le fichier config.json de Continue pour pointer vers Ollama (local) ou des clĂ©s API (Anthropic/OpenAI).
    • RĂ´le : Permet une personnalisation totale du modèle utilisĂ© selon la tâche.
  3. Codeium / Supermaven :
    • Usage : DĂ©diĂ©s Ă  l'autocomplĂ©tion "inline" ultra-rapide.
    • ParamĂ©trage : DĂ©sactiver l'autocomplĂ©tion native de l'IA Assistant pour Ă©viter les conflits visuels.

Optimisations avancées

  • Context Pinning (Ancrage) : Dans le chat de l'IA, utiliser @file ou @folder pour forcer l'IA Ă  lire des fichiers spĂ©cifiques (ex: specs/ui.md).
  • Prompts rĂ©utilisables : CrĂ©er des "Custom Commands" dans l'AI Assistant ou des "Slash Commands" dans Continue pour les tâches rĂ©currentes.
    • Exemple : /voter -> "GĂ©nère un Symfony Voter pour cette entitĂ© en respectant SOLID."
  • Validation automatisĂ©e : Configurer un "Before Commit" hook qui lance PHPStan ou les inspections de PhpStorm sur le code gĂ©nĂ©rĂ©.

Recommandations de faisabilité

  • Ne jamais confier 100% d'un fichier complexe Ă  l'IA sans dĂ©coupage.
  • Utiliser l'IA en mode "diff" (comparaison) pour comprendre les modifications proposĂ©es.
  • Impact financier : L'abonnement JetBrains AI Assistant est un investissement rentable (~10€/mois) s'il permet de gagner 1h de productivitĂ© par mois.

4. Le protocole MCP (Model Context Protocol)

Le MCP est une innovation majeure pour l'intégration de l'IA dans le workflow de développement.

Définition et Rôle

Le MCP est un standard ouvert (initié par Anthropic) qui permet aux modèles d'IA (via des clients comme Claude Desktop ou des plugins IDE) de se connecter à des "serveurs" de données et d'outils.

  • RĂ´le : Donner Ă  l'IA des "mains" et des "yeux" sur le système local ou des services tiers (GitHub, Google Drive, bases de donnĂ©es).

Fonctionnement technique du MCP

Le MCP repose sur une architecture Client-Serveur standardisée par un protocole de messagerie léger :

  • Protocole : Utilise JSON-RPC 2.0 pour l'Ă©change de messages. L'IA (le client) envoie des requĂŞtes structurĂ©es au serveur (ex: "Liste-moi les fichiers de ce dĂ©pĂ´t GitHub") et reçoit des rĂ©ponses formatĂ©es.
  • Transports (Couche de communication) :
    • stdio : Le serveur est lancĂ© comme un processus fils de l'IDE/Client. La communication se fait via l'entrĂ©e/sortie standard. C'est le mode le plus courant pour l'usage local.
    • SSE (Server-Sent Events) : Pour les serveurs distants ou web, permettant une communication asynchrone sur HTTP.
  • SDK et Technos : Les serveurs MCP sont principalement dĂ©veloppĂ©s en TypeScript (Node.js) ou Python, car ces Ă©cosystèmes possèdent les bibliothèques les plus matures pour l'interfaçage avec les API (GitHub, Slack, SQL, etc.).

Infrastructure et Déploiement

L'infrastructure requise dépend de l'usage :

  1. Infrastructure Locale : Le serveur MCP tourne sur la mĂŞme machine que l'IDE.
    • PrĂ©-requis : Runtime Node.js ou Python installĂ©.
    • SĂ©curitĂ© : Les clĂ©s API (ex: token GitHub) sont stockĂ©es localement dans les fichiers de config du client (ex: claude_desktop_config.json).
  2. Infrastructure Distante (Cloud/Conteneur) : Pour partager des outils entre une équipe.
    • DĂ©ploiement : Docker est l'outil privilĂ©giĂ©. Un serveur MCP peut ĂŞtre exposĂ© via une URL sĂ©curisĂ©e (HTTPS + Auth) pour ĂŞtre consommĂ© par plusieurs dĂ©veloppeurs.

Applications pour Codexia

  • Accès Documentation : Un serveur MCP peut indexer tout le dossier inputs/legacy/ pour rĂ©pondre aux questions sur l'historique sans saturer le contexte manuel.
  • ExĂ©cution d'outils : Permettre Ă  l'IA de lancer des tests unitaires ou de vĂ©rifier la syntaxe d'un fichier directement.

Mise en place

  1. Client : Utiliser un IDE compatible ou un plugin (comme Continue ou l'extension MCP de Claude).
  2. Serveurs : Installer des serveurs MCP pré-construits (via npm ou python).
    • Exemple : npx @modelcontextprotocol/server-github pour l'intĂ©gration GitHub.
  3. Configuration : Déclarer les serveurs dans le fichier de configuration du client (ex: claude_desktop_config.json).

Ressources complémentaires

MCP & PHP (Symfony)

Bien que les SDK officiels (Anthropic) soient en Node.js et Python, le MCP est un protocole ouvert. Une intégration dans le projet Symfony du VPS est techniquement possible :

  • FaisabilitĂ© : Il n'existe pas encore de SDK PHP stable, mais on peut implĂ©menter les spĂ©cifications JSON-RPC 2.0 via un contrĂ´leur Symfony.
  • Avantages : Accès direct aux entitĂ©s Doctrine, aux services mĂ©tier et aux logs sans duplication de logique.
  • Alternative recommandĂ©e : Utiliser un petit "pont" Node.js qui appelle les API internes de Symfony ou interroge directement la base de donnĂ©es MySQL du projet.
  • RĂ©fĂ©rence Technique : Voir Codexia MCP Bundle (Symfony).

Assistant documentaire

Posez une question sur la documentation. Les réponses citent leurs sources — un clic ouvre le document à gauche.

Loading…
Loading the web debug toolbar…
Attempt #