Emigo : un assistant pour les tâches de programmation complexes utilisant l'IA dans Emacs

Introduction générale

Emigo est un assistant de programmation IA open source pour Emacs, développé par MatthewZMD sur GitHub, qui aide les programmeurs à effectuer des tâches telles que l'analyse de code dans Emacs en intégrant un modèle de langage à grande échelle (LLM). Emigo est un assistant de programmation IA open source pour Emacs, développé par MatthewZMD sur GitHub, qui aide les programmeurs à analyser, générer et modifier du code dans Emacs en intégrant un modèle de langage à grande échelle (LLM).La caractéristique principale d'Emigo est une "IA agentique", qui est non seulement capable de générer du texte, mais aussi d'interagir avec le projet en utilisant des outils, tels que la lecture de fichiers, l'écriture de code, ou l'exécution de commandes. Elle peut non seulement générer du texte, mais aussi interagir avec le projet au moyen d'outils tels que la lecture de fichiers, l'écriture de code ou l'exécution de commandes. Il a été développé par Aider et Cline Emigo est le successeur d'Aidermacs, inspiré par des outils comme Aidermacs. Actuellement, Emigo est en phase de test bêta et les fonctionnalités sont encore en cours d'affinement pour que les développeurs puissent les tester et donner leur avis.

Emigo:在Emacs中使用AI完成复杂编程任务的助手

 

Liste des fonctions

  • Utilisation d'outils basés sur des agentsL'IA sélectionne et exécute des outils en fonction des exigences de la tâche, telles que la lecture ou l'écriture de fichiers ou l'exécution de commandes.
  • Intégration transparente avec EmacsL'interface et les raccourcis sont cohérents avec l'expérience native d'Emacs.
  • Prise en charge de plusieurs modèles d'IALe logiciel LiteLLM permet de se connecter à des modèles tels que OpenRouter, Deepseek, etc. par l'intermédiaire de LiteLLM, qui est disponible gratuitement pour l'utilisateur.
  • gestion du contexte (informatique)Le système d'enregistrement de l'historique du dialogue et des fichiers de projet garantit la cohérence de la conversation.
  • Contexte du fichier AjouterL'ajout de fichiers à l'analyse de l'IA s'effectue rapidement à l'aide du symbole "@".
  • Génération et affichage de patchs de codeLes modifications de code renvoyées par l'IA sont mises en évidence pour faciliter la visualisation.

 

Utiliser l'aide

Emigo est un assistant IA pour les utilisateurs d'Emacs. Voici des instructions détaillées sur la façon de l'installer et de l'utiliser afin de vous permettre de démarrer rapidement.

Processus d'installation

  1. Inspection des exigences environnementales
    • Nécessite la version 28 d'Emacs ou une version supérieure. Il peut être téléchargé et installé à l'adresse https://www.gnu.org/software/emacs/.
    • Requiert Python 3.x, qui peut être ignoré pour ceux qui l'ont installé et obtenu à partir de https://www.python.org/ pour ceux qui ne l'ont pas.
  2. Télécharger Emigo
    Clonez Emigo dans le répertoire de configuration d'Emacs en exécutant la commande suivante dans un terminal :
git clone https://github.com/MatthewZMD/emigo.git ~/.emacs.d/emigo
  1. Installation des dépendances de Python
    Allez dans le répertoire Emigo et lancez le programme :
cd ~/.emacs.d/emigo
pip install -r requirements.txt

Ceci installe les bibliothèques Python nécessaires, telles que LiteLLM.

  1. Configuration d'Emacs
    Ouvrez le fichier de configuration d'Emacs (généralement ~/.emacs.d/init.el), ajoutez le code suivant :
(use-package emigo
:straight (:host github :repo "MatthewZMD/emigo")
:config
(emigo-enable) ;; 自动启动后台进程
:custom
(emigo-model "openrouter/deepseek/deepseek-chat-v3-0324") ;; 设置默认模型
(emigo-base-url "https://openrouter.ai/api/v1") ;; 设置 API 地址
(emigo-api-key (emigo-read-file-content "~/.config/openrouter/key.txt"))) ;; 加载 API 密钥
  • Configuration: :
    • emigo-modelSélection de modèles d'IA, recommandations OpenRouter de Deepseek.
    • emigo-base-urlAdresse du service de l'API : Indiquez l'adresse du service de l'API.
    • emigo-api-key: Obtenir la clé d'OpenRouter (https://openrouter.ai) et l'enregistrer dans le chemin d'accès spécifié.
  1. Vérifier l'installation
    Après avoir sauvegardé la configuration, redémarrez Emacs. entrez M-x emigoSi un nouveau tampon apparaît, l'installation a réussi.

Comment l'utiliser

Les opérations d'Emigo sont principalement effectuées dans Emacs, en combinant des raccourcis et des fenêtres interactives.

Lancer Emigo

  • Dans le répertoire du projet, tapez M-x emigoLe tampon dédié est ouvert après le retour chariot.
  • Si vous êtes dans un dépôt Git, Emigo utilise le répertoire racine du dépôt comme chemin de session. Pour utiliser le répertoire courant, tapez C-u M-x emigo.

invite à la saisie

  • Saisissez vos besoins dans la mémoire tampon, par exemple :
请优化 @src/main.py 中的排序函数
  • Emigo trouvera automatiquement src/main.py et envoyé à l'IA pour traitement.

Ajouter des fichiers au contexte

  • Faites référence au fichier à l'aide du symbole "@", par exemple @src/utils.pySi ce n'est pas le cas, Emigo l'ajoutera au contexte.
  • Pour afficher le fichier contextuel : appuyez sur C-c C-l(en cours) emigo-list-context-files).
  • Pour supprimer un fichier : Appuyez sur C-c C-f(en cours) emigo-remove-file-from-context).

Interagir avec l'IA

  • Une fois la tâche saisie, l'IA l'analyse et renvoie les résultats. Par exemple :
请帮我调试 @src/main.c 中的内存泄漏
  • Les correctifs renvoyés par l'IA sont mis en évidence, par exemple
- free(ptr);
+ if (ptr) free(ptr);

Processus d'utilisation des outils

  • La fonctionnalité d'Emigo, basée sur un agent, est mise en œuvre par le biais d'outils. L'IA sélectionnera des outils en fonction de tâches telles que :
  • read_file: Lire le contenu du fichier.
  • write_to_file: Écriture dans le fichier.
  • execute_command: Exécutez la commande.
  • L'IA peut demander :
我需要运行 gcc -o test main.c,同意吗?
  • presse y Confirmer que les résultats sont introduits dans le dialogue après l'exécution de l'outil.

Gestion des sessions

  • Vérifier le contexte : utiliser C-c C-l Afficher une liste des fichiers en cours.
  • Redémarrer la session : fermer la mémoire tampon et l'exécuter à nouveau M-x emigo.

Alertes sur l'état d'avancement du développement

  • Emigo est actuellement en version bêta et peut avoir des changements d'API, des fonctionnalités instables ou une documentation incomplète. Il est recommandé de ne l'utiliser qu'à des fins de test et de soumettre les problèmes via GitHub.

 

scénario d'application

  1. débogage du code
    Lorsque vous trouvez un plantage dans un projet C, tapez "check @main.c for errors" et l'IA l'analysera et vous proposera une correction.
  2. Reconstruction des documents
    Tapez "Refactor functions in @src/utils.py" et Emigo générera le code optimisé et affichera le patch.
  3. exécution des commandes
    Tapez "compile @src/main.c" dans le projet et l'IA choisira execute_command Courses d'outils gcc.

 

QA

  1. Quels sont les modèles pris en charge par Emigo ?
    Plusieurs modèles sont supportés par LiteLLM, tels que Deepseek d'OpenRouter, Anthropic's Claude etc., il suffit de spécifier le nom du modèle et l'API dans la configuration.
  2. Pourquoi l'invite ne répond-elle pas ?
    Il se peut que la clé API ne soit pas valide ou qu'il y ait un problème de réseau. Vérifiez le chemin d'accès au fichier de la clé et la connexion réseau pour vous assurer que la clé de l'API est valide. emigo-base-url Accessible.
  3. Comment mettre à jour Emigo ?
    existent ~/.emacs.d/emigo Exécution de l'annuaire git pullet redémarrer Emacs.
© déclaration de droits d'auteur
AiPPT

Articles connexes

Pas de commentaires

Vous devez être connecté pour participer aux commentaires !
S'inscrire maintenant
aucun
Pas de commentaires...