- Emacs Copilot génère de la complétion de code dans les buffers Emacs à l’aide d’un LLM (Large Language Model) exécuté en local
- Le LLM s’exécute comme une sous-commande qui mémorise l’historique d’édition local, fichier par fichier, et il peut être interrompu à tout moment avec
C-g
- Lorsqu’on supprime du code, cet historique peut aussi être supprimé du contexte du LLM, et le langage de programmation est déterminé par l’extension du fichier, indépendamment du langage lui-même
Modèle WizardCoder 34b
- WizardCoder 34b est un excellent LLM qui a obtenu le même score HumanEval que GPT-4.
- Pour utiliser ce modèle, il faut une machine puissante comme un Mac Studio M2 Ultra ; les utilisateurs de Macbook Pro peuvent envisager la version Q3, et les utilisateurs de PC classiques le modèle WizardCoder-Python-13b.
- Les utilisateurs disposant d’une puissance de calcul plus limitée, comme avec un Raspberry Pi, peuvent utiliser le modèle Phi-2.
Pour commencer
- Après avoir écrit la première ligne d’une fonction, appuyez sur
C-c C-k pour donner le contrôle au LLM, qui générera le reste de l’implémentation de la fonction.
- Le LLM est réglé pour s’arrêter lorsque la fonction est terminée, et pour éviter les explications ou les commentaires de type ELI5.
Implémentation de référence
- Après avoir téléchargé le LLM, copiez le code ci-dessous dans un buffer Emacs puis exécutez
M-x eval-buffer.
- Vous pouvez ajuster le code selon vos préférences.
Lien de téléchargement d’Emacs
- Si Emacs n’est pas installé ou si vous utilisez une plateforme où il est difficile à obtenir, comme Windows, un lien vers une version autonome sous forme de fichier exécutable unique est fourni, sans nécessiter d’installation.
Liens de téléchargement des LLM
- Des liens sont fournis pour télécharger gratuitement plusieurs LLM connus pour bien fonctionner avec Emacs Copilot.
- La taille du modèle peut être choisie en fonction du matériel disponible.
Fichiers de cache
- Si vous décidez de changer de modèle, vous devez supprimer tous les fichiers
FILE.cache créés sur le système de fichiers local.
Remarques
- Sur macOS avec Apple Silicon, Xcode doit être installé.
- Si vous utilisez zsh, il peut être nécessaire de lancer avec
sh -c ./llamafile.
- Sur certains systèmes Linux, des erreurs liées à l’enregistrement de
binfmt_misc peuvent se produire.
OS et CPU pris en charge
- llamafile prend en charge plusieurs systèmes d’exploitation avec des exigences minimales d’installation.
- llamafile prend en charge certains CPU et nécessite un microprocesseur AMD64 avec un jeu d’instructions SSSE3 ou supérieur, ou un microprocesseur ARM64 avec ARMv8a+.
Remarques sur les modèles
- Les exemples de llamafile fournis ci-dessus ne doivent pas être interprétés comme un soutien ou une recommandation de Mozilla concernant un modèle, une licence ou un jeu de données particulier.
L’avis de GN⁺
- Une expérience d’édition innovante : Emacs Copilot offre aux développeurs une nouvelle génération d’assistance au code, avec le potentiel d’améliorer fortement l’efficacité et la productivité.
- Accessibilité et personnalisation : les utilisateurs peuvent choisir le LLM et ajuster leur environnement Emacs selon leurs besoins et leurs préférences, ce qui permet de construire un environnement de développement personnalisé.
- Compatibilité technique : la prise en charge de divers systèmes d’exploitation et CPU permet à un large éventail d’utilisateurs d’utiliser Emacs Copilot, renforçant ainsi l’inclusion et l’accessibilité au sein de la communauté des développeurs.
1 commentaires
Avis sur Hacker News
Doutes sur l’utilité de l’intégration LLM/IDE
Remerciements pour le développement d’outils LLM auto-hébergés
Partage d’expérience sur l’intégration de LLM avec Emacs
Retour d’expérience sur l’exécution d’un LLM sur un MacBook Pro M1 Max
Critique de la fonction is_prime dans la démonstration vidéo
Question sur la possibilité de construire un llamafile exécutable sur NixOS
Besoin d’une intégration LLM plus générale
Partage d’une commande personnalisée d’intégration LLM par un utilisateur de Vim
Question sur le chemin de mise à niveau de Llamafile
Intérêt pour l’intégration LLM et intention d’essayer