Dans le monde du développement logiciel, l’intelligence artificielle (IA) révolutionne la manière dont nous écrivons et remanions le code. Aujourd’hui, nous allons explorer les outils libres et installables localement qui permettent aux développeurs d’améliorer leur productivité tout en gardant le contrôle sur leurs données.
github2file : simplifier le partage de code avec les IA
Avant de plonger dans les assistants IA, commençons par un outil qui facilite leur utilisation : github2file.
Cet outil Python permet d’extraire le code d’un dépôt GitHub et de le compiler dans un fichier texte unique, rendant ainsi plus simple le partage de code avec les chatbots d’IA[4].
Fonctionnalités clés de github2file :
- Extraction du code d’un dépôt GitHub
- Filtrage par langage (Python ou Go)
- Option pour supprimer les commentaires et les docstrings
- Sélection de branches ou tags spécifiques
Les assistants IA libres et locaux
Passons maintenant aux solutions d’IA pour l’assistance au codage que vous pouvez installer sur votre propre machine, idéalement équipée d’une carte graphique puissante comme une RTX 3090.
1. Tabby
Tabby est un assistant IA de codage open-source et auto-hébergé, offrant une alternative à GitHub Copilot[5].
Caractéristiques :
- Fonctionne entièrement en local
- Supporte plusieurs langages de programmation
- Intégration avec les éditeurs de code populaires
2. LLaMA et Ollama
LLaMA (Large Language Model Meta AI) est un modèle de langage développé par Meta, qui peut être utilisé pour l’assistance au codage. Ollama est un outil qui facilite l’utilisation de LLaMA sur votre machine locale.
Avantages :
- Performances comparables à ChatGPT sur certaines tâches
- Entièrement local, garantissant la confidentialité des données
- Nécessite seulement 5 Go de RAM pour fonctionner
Mise en place d’un environnement de codage assisté par IA
- Installez github2file pour faciliter le partage de votre code avec l’IA :
git clone https://github.com/cognitivecomputations/github2file.git
cd github2file
pip install -r requirements.txt
-
Configurez Tabby ou LLaMA/Ollama sur votre machine locale.
-
Intégrez l’assistant IA à votre éditeur de code via les extensions disponibles.
Utilisation :
La commande de base pour utiliser github2file est :
python github2file.py https://github.com/username/repository
Pour les dépôts privés, on peut utiliser un token d’accès personnel :
python github2file.py https://<USERNAME>:<GITHUB_ACCESS_TOKEN>@github.com/username/private-repo
En utilisant ces outils libres et locaux, vous pouvez bénéficier de l’assistance de l’IA pour votre développement tout en gardant le contrôle sur vos données et votre code. L’IA devient ainsi un puissant allié dans votre processus de développement, vous permettant d’écrire et de refondre du code plus efficacement, tout en stimulant votre créativité et en élargissant vos horizons techniques.
Citations:
[1] https://github.com/files-community/Files
[2] https://docs.github.com/en/codespaces/setting-up-your-project-for-codespaces/adding-a-dev-container-configuration/setting-up-your-python-project-for-codespaces
[3] https://docs.github.com/articles/tracing-changes-in-a-file
[4] https://github.com/cognitivecomputations/github2file
[5] https://github.com/TabbyML/tabby
[6] https://github.com/TabbyML/tabby/actions
[7] https://www.rtraction.com/blog/unlocking-power-free-and-open-source-ai-coding-tools
Bonnes pratiques pour l’écriture et la refonte de code assistées par IA
- Utilisez l’IA comme un collaborateur, pas comme un remplacement.
- Vérifiez toujours le code généré par l’IA avant de l’intégrer.
- Utilisez github2file pour partager efficacement le contexte de votre projet avec l’IA.
- Posez des questions spécifiques à l’IA pour obtenir des réponses plus précises.
- Profitez de l’IA pour explorer de nouvelles approches de résolution de problèmes.
Aide au prompt pour être assisté à coder
Pour obtenir une assistance efficace d’un chatbot IA lors du codage, voici quelques conseils pour formuler vos prompts :
-
Soyez spécifique : Décrivez précisément ce que vous voulez accomplir.
-
Fournissez du contexte : Incluez des informations sur votre environnement de développement, les bibliothèques utilisées, etc.
-
Montrez votre code actuel : Si vous avez déjà commencé, partagez votre code pour obtenir des suggestions d’amélioration.
-
Posez des questions ciblées : Au lieu de demander une solution complète, posez des questions sur des aspects spécifiques.
-
Demandez des explications : Encouragez l’IA à expliquer son raisonnement pour mieux comprendre les solutions proposées.
Exemple de prompt :
Je développe une application Flutter pour gérer une liste de tâches.
J'ai du mal à implémenter la fonctionnalité de tri des tâches par date d'échéance.
Voici mon code actuel pour la liste des tâches : [Insérez votre code ici] Pouvez-vous m'aider à ajouter une fonction de tri par date d'échéance ?
Expliquez-moi comment intégrer cela dans mon code existant
et pourquoi vous choisissez cette approche.
L’écriture et la refonte de code assistées par IA
les solutions libres et locales