Accès d'Ollama à l'assistant de programmation local AI Copilot

bref

Ce document décrit comment construire localement quelque chose comme Copilote un assistant de programmation qui vous aide à écrire un code plus beau et plus efficace.

Dans ce cours, vous apprendrez à utiliser Ollama Intégration des assistants de programmation locaux, y compris

Attention :

  1. Nous allons parler de l'installation et de l'utilisation de base de VScode. jetbrain s'utilise de la même manière que VScode, il suffit de se référer à vscode.
  2. Les fonctionnalités et les possibilités de configuration disponibles avec jetbrain ne sont pas aussi étendues que celles disponibles avec VScode, c'est pourquoi il est recommandé d'utiliser VScode.
  3. La création locale de Copilot est plus exigeante pour la machine, en particulier pour la partie du code relative à l'autocomplétion. Si vous n'avez pas de besoins particuliers, il est donc recommandé d'acheter une API pour l'utiliser.

 

I. Introduction à la programmation de l'IA

1.1 Pourquoi programmer avec l'IA ?

Le modèle du grand langage existe depuis longtemps, mais c'est dans le domaine de la programmation qu'il s'est le mieux comporté, pour les raisons suivantes :

  1. Des critères clairs pour déterminer le bien et le mal. Dans le monde de la programmation, le code fonctionne ou ne fonctionne pas. Cette nature noire et blanche permet à l'IA de juger plus facilement de la qualité de ses résultats.
  2. Un langage précis. Les langages de programmation n'ont pas beaucoup d'ambiguïté. Chaque symbole, chaque mot-clé a une signification claire. C'est à cette précision que les modèles d'IA excellent.
  3. Missions ciblées. Lorsque nous écrivons du code, nous avons généralement un objectif clair. Par exemple, "Écrire une fonction qui calcule la séquence de Fibonacci". Des instructions aussi claires permettent à l'intelligence artificielle de se concentrer plus facilement sur le problème.
  4. Généralisabilité des connaissances. Une fois que vous avez appris les concepts de base d'un langage de programmation, beaucoup de choses peuvent être transférées à d'autres langages. Cette transférabilité des connaissances rend les modèles d'IA particulièrement efficaces dans le domaine de la programmation.

1.2 Comment programmer avec l'IA ?

  1. Utilisation de l'application de dialogue du grand modèle (non expliquée ici)
  2. Utilisation de l'environnement de développement intégré (IDE)
    • Continuer
  3. Utilisation d'outils en ligne de commande
    • Aider

 

II. accès continu à l'IDE

2.1 Installation des modèles requis

  1. Installer Ollama
  2. Installer les modèles suivants
    • Installation du modèle universel de questions et réponses (UQA) ollama pull llama3:8b
    • Installation de modèles de complétion automatique du code. ollama pull starcoder2:3b
    • Installer le modèle d'intégration. ollama pull nomic-embed-text

2.2 Installation de Continue dans VScode et configuration d'Ollama local

  1. Installation de modèles dans la bibliothèque de plugins VScode
    Recherchez Continue et voyez l'icône suivante, cliquez sur installer ou installez
    Ollama 接入本地 AI Copilot 编程助手
  2. (Action recommandée) Il est fortement recommandé de déplacer "Continue" dans la barre latérale droite de VS Code. Cela permet de garder l'explorateur de fichiers ouvert lors de l'utilisation de Continue, et vous permet de basculer la barre latérale avec un simple raccourci clavier.
    Ollama 接入本地 AI Copilot 编程助手
  3. Configuration Ollama
    Méthode 1 : Cliquez sur Select model---- sélectionnez Add model---- cliquez sur Ollama---- sélectionnez Autodetect
    Cela sélectionnera automatiquement le modèle que nous venons de télécharger sur Ollama pour l'outil de raisonnement par le code.
    Ollama 接入本地 AI Copilot 编程助手
    Ollama 接入本地 AI Copilot 编程助手
    Mode 2 : Cliquez sur le bouton Setup comme indiqué dans la figure pour entrer dans la page de configuration, et collez la configuration suivante

    {
    "models": [
    {
    "title": "Ollama",
    "provider": "ollama",
    "model": "AUTODETECT"
    }
    ],
    "tabAutocompleteModel": {
    "title": "Starcoder 2 3b",
    "provider": "ollama",
    "model": "starcoder2:3b"
    },
    "embeddingsProvider": {
    "provider": "ollama",
    "model": "nomic-embed-text"
    }
    }
    

    Ollama 接入本地 AI Copilot 编程助手

2.3 Directives d'utilisation de base

  1. Code facile à comprendre
Ollama 接入本地 AI Copilot 编程助手
  • Code VS. cmd+L ( MacOS ) / ctrl+L ( Windows )
  • JetBrains. cmd+J ( MacOS ) / ctrl+J ( Windows )
  1. Utilisation de la touche Tab pour l'autocomplétion du code
Ollama 接入本地 AI Copilot 编程助手
  • Code VS. tab ( MacOS ) / tab ( Windows )
  • JetBrains. tab ( MacOS ) / tab ( Windows )
  1. L'IA modifie rapidement votre code
Ollama 接入本地 AI Copilot 编程助手
  • Code VS. cmd+I ( MacOS ) / ctrl+I ( Windows )
  • JetBrains. cmd+I ( MacOS ) / ctrl+I ( Windows )
  1. Poser des questions basées sur le répertoire de code actuel
Ollama 接入本地 AI Copilot 编程助手
  • Code VS. @codebase ( MacOS ) / @codebase ( Windows )
  • JetBrains : soutien futur
  1. Poser une question sur la base de la documentation officielle
Ollama 接入本地 AI Copilot 编程助手
  • Code VS. @docs ( MacOS ) / @docs ( Windows )
  • JetBrains. @docs ( MacOS ) / @docs ( Windows )

2.4 Références

Site officiel : https://docs.continue.dev/intro

 

Environnement de ligne de commande Accès Aider

Aider est un assistant de programmation basé sur une ligne de commande qui offre un accès au système et une utilisation des fonctionnalités à un niveau supérieur à celui d'un IDE, mais cela signifie également qu'il est plus difficile de démarrer.

Les tutoriels suivants vous apprendront à installer Aider et à vous connecter au service Ollama.

Veillez également à ce que :

  1. Avoir installé git et avoir de l'expérience avec git.
  2. Expérience avec python

3.1 Installation de l'assistant

  1. Aider dépend beaucoup des environnements python, il est donc recommandé d'utiliser conda pour créer un nouvel environnement ou python pour créer un nouvel environnement virtuel.
    • Démarrer un nouvel environnement virtuel conda (idem pour l'environnement virtuel python)
      conda create -n aider_env python=3.9
      
    • Entrez dans cet environnement virtuel
      conda activate aider_env
      
    • Suivez ces commandes pour installer
      python -m pip install aider-chat
      

3.2 Installation et démarrage d'Ollama

  1. Lancez la ligne de commande et définissez les variables d'environnement comme suit
    export OLLAMA_API_BASE=http://127.0.0.1:11434 # Mac/Linux环境
    setx OLLAMA_API_BASE http://127.0.0.1:11434 # Windows环境,设置以后重启shell工具
    
  2. cd pour accéder à votre dépôt local, sinon Aider initialisera automatiquement un dépôt git dans le répertoire courant.
    #example 
    cd D:\Myfile\handy-ollama\handy-ollama\handy-ollama
    
  3. Exécutez Aider avec la commande suivante
    aider --model ollama/<你的模型名字>
    #example
    #aider --model ollama/llama3:8b
    

    Vous pouvez également utiliser des fichiers .env pour configurer les informations relatives à Aider
    par exemple

    ## 指定OPENAI_KEY(如果有的话)
    OPENAI_API_KEY=xxx
    ## 指定你使用model
    AIDER_MODEL=ollama/llama3:8b
    

    Autres références de configuration :https://aider.chat/docs/config/dotenv.html

  4. L'opération est réussie si vous entrez dans la page suivante
    Ollama 接入本地 AI Copilot 编程助手
  5. Vous pouvez maintenant discuter avec lui ou lui envoyer des commandes et il peut modifier votre code directement.
    Ollama 接入本地 AI Copilot 编程助手

3.3 Utilisation de base

  1. Vous pouvez lui demander quelques informations de base sur ce référentiel
    Ollama 接入本地 AI Copilot 编程助手
  2. Ajouter des fichiers
    /add <file1> <file2> ...
    

    Vous pouvez ensuite poser des questions sur la base de ces documents.

    • Vous pouvez utiliser Aider sans ajouter de fichiers et il essaiera de déterminer quels fichiers doivent être modifiés en fonction de votre demande. (Mais la réflexion est souvent mauvaise)
    • Ajoutez les fichiers pertinents pour apporter des modifications ou répondre à des questions sur un code ou un fichier spécifique. (N'ajoutez pas un tas de fichiers supplémentaires. Si vous ajoutez trop de fichiers, la génération ne sera pas aussi efficace et vous coûtera plus cher. Jeton ).

    Exemple :
    Ollama 接入本地 AI Copilot 编程助手
    Ollama 接入本地 AI Copilot 编程助手
    Ollama 接入本地 AI Copilot 编程助手

  3. Utilisez Aider pour apporter des modifications directement aux fichiers de code ou à d'autres fichiers, par exemple en ajoutant un résumé à la dernière ligne d'un Readme.
    Ollama 接入本地 AI Copilot 编程助手
    Voir le document actuel
    Ollama 接入本地 AI Copilot 编程助手
  4. Si vous ne voulez pas qu'Aider fasse quelque chose avec le fichier, vous pouvez préfixer le dialogue avec l'opérateur /ask
  5. Supprimer tous les fichiers ajoutés avec /drop

3.4 Références

Liste des commandes de type "slash" couramment utilisées :

commandedescriptions
/addAjouter des fichiers au chat pour que GPT puisse les éditer ou les examiner en détail
/askPoser des questions sur la base de code sans modifier aucun fichier
/chat-modePasser à un nouveau mode de discussion
/clearEffacer l'historique des conversations
/clipboardAjout d'images/de texte du presse-papiers dans le chat (possibilité de fournir des noms pour les images)
/codeDemande de modification du code
/commitSoumettre les modifications apportées à l'entrepôt en dehors du chat (message de soumission optionnel)
/diffAffiche la différence de changements depuis le dernier message
/dropSupprimer des fichiers de la session de chat pour libérer de l'espace contextuel
/exitQuitter l'application
/gitExécuter la commande git
/helpPoser une question sur aider
/lintVérification du code et correction des fichiers fournis ou dans le chat (si les fichiers ne sont pas fournis)
/lsListe tous les fichiers connus et indique quels fichiers sont inclus dans la session de chat
/mapImprimer les informations actuelles sur l'entrepôt
/map-refreshForcer l'actualisation et l'impression des informations relatives à l'entrepôt
/modelPasser à un nouveau modèle linguistique
/modelsRecherche dans la liste des modèles disponibles
/quitQuitter l'application
/read-onlyAjouter un fichier au chat, uniquement pour information, non modifiable
/runExécutez la commande shell et ajoutez éventuellement la sortie au chat (alias : !)
/testExécuter la commande shell et ajouter la sortie au chat si le code de sortie n'est pas nul.
/tokensIndiquer le nombre de jetons en cours d'utilisation dans le contexte du chat.
/undoAnnuler le dernier commit git s'il a été fait par aider
/voiceEnregistrer et transcrire les données vocales
/webCapturez des pages web, convertissez-les en markdown et ajoutez-les au chat

Pour plus d'informations, veuillez consulter le site https://aider.chat/docs/usage.html

 

Environnement de développement intégré Accès à RooCline (nouveau)

4.1 Cline et RooCline

Cline C'est le plugin de programmation d'IA pour vscode le plus populaire au monde. Il utilise l'assistance de l'IA d'une manière différente de la plupart des outils sur le marché. Plutôt que de se concentrer uniquement sur la génération ou la complétion de code, il fonctionne comme un outil au niveau du système qui peut interagir avec l'ensemble de l'environnement de développement. Cette caractéristique est particulièrement importante lorsqu'il s'agit de scénarios de débogage complexes, de refactoring à grande échelle ou de tests d'intégration, comme nous pouvons le voir dans la section Cline de la référence. Aujourd'hui, nous allons vous présenter Roo Cline.

RooCline est une version améliorée de Cline qui se concentre sur l'amélioration de l'efficacité et de la flexibilité du développement. Il prend en charge plusieurs langages et modèles (par exemple Gemini, Meta, etc.) et offre des fonctionnalités telles que les notifications intelligentes, l'optimisation de la gestion des fichiers et la détection des codes manquants. En outre, RooCline permet de travailler en parallèle avec Cline pour les développeurs qui ont besoin de travailler sur plusieurs tâches en même temps.

même si Roo Cline Il n'est pas encore aussi important que Cline, mais il se développe rapidement. Il ajoute quelques fonctionnalités expérimentales supplémentaires à Cline, et peut également auto-écrire des parties de son code avec seulement une petite quantité d'intervention humaine.

De plus, Cline consomme un grand nombre de jetons, ce qui affecte plus ou moins les coûts de développement quotidiens.

Ollama 接入本地 AI Copilot 编程助手

4.2 Installation de RooCline dans VScode et configuration de l'Ollama local

[](https://github.com/datawhalechina/handy-ollama/blob/main/docs/C7/1.%20%E6%90%AD%E5%BB%BA%E6%9C%AC%E5%9C%B0%E7%9A%84%20AI%20Copilot%20%E7%BC%96%E7%A8%8B%E5%8A%A9%E6%89%8B.md#42-%E5%9C%A8-vscode-%E5%AE%89%E8%A3%85-roocline-%E4%BB%A5%E5%8F%8A%E9%85%8D%E7%BD%AE%E6%9C%AC%E5%9C%B0-ollama)

  1. Modèles d'installation Ollama (sous forme de deepseek-r1:1.5b par exemple)
    ollama run deepseek-r1:1.5b
    
  2. Installation de modèles dans la bibliothèque de plugins VScode
    Recherchez Roo Cline, voyez l'icône suivante, cliquez sur installer ou installez
    Ollama 接入本地 AI Copilot 编程助手
  3. Configuration ollama
    1. Cliquez sur l'icône Roo cline à droite
    2. Cliquez sur l'icône Paramètres
    3. Nom du modèle d'entrée
    4. Cliquez sur Terminé

    Ollama 接入本地 AI Copilot 编程助手

  4. Vous pouvez maintenant utiliser vscode comme n'importe quel autre éditeur intégré + ai.
    Ollama 接入本地 AI Copilot 编程助手

Ensuite, nous aborderons certaines caractéristiques propres à Roo cline !

4.3 Caractéristiques de Roo Cline

Il convient de noter que ces fonctions reposent sur certaines capacités des grands modèles, en particulier lorsqu'elles sont appliquées au niveau du système de contrôle. Le modèle deepseek-r1:1.5b de notre exemple n'a pas la capacité d'effectuer les opérations ci-dessous et signalera une trop grande complexité. Il est recommandé d'accéder à recherche approfondie l'accès à l'interface utilisateur (c'est bon marché).

Pour les fonctions 1~2 suivantes, cliquez sur l'icône Prompt dans la zone de fonction pour accéder à la page de configuration.

Ollama 接入本地 AI Copilot 编程助手
  1. Prise en charge d'API/modèles arbitraires
    • OpenRouter/Anthropic/Glama/OpenAI/Google Gemini/AWS Bedrock/Azure/GCP Vertex
    • Modèles natifs (LM Studio/Ollama) et toute interface compatible avec OpenAI
    • Différents modèles peuvent être utilisés pour différents schémas (par exemple, un modèle de haut niveau pour la conception architecturale, un modèle économique pour le codage quotidien).
    • Suivi de l'utilisation au niveau de la session (statistiques sur la consommation et le coût des jetons)
  2. Modes personnalisés : personnalisation des modes Code Roo les rôles, les instructions et les autorisations :
    • mode intégré
      • Code Mode : assistant de codage multifonctionnel par défaut
      • Architecte Modèles : conception au niveau du système et analyse architecturale
      • Demander Modèle : Recherche approfondie et questions-réponses
    • Mode de création d'utilisateur
      • Tapez "Créer un nouveau mode pour" pour créer un rôle personnalisé.
      • Chaque mode peut avoir des commandes et des compétences indépendantes (gérées dans l'onglet Invites).
    • Fonctionnalités avancées
      • Restrictions sur les types de fichiers (par exemple, le mode ask/architect n'édite que du markdown)
      • Règles de fichier personnalisées (par exemple, ne faire fonctionner que les fichiers de test .test.ts)
      • Passage d'un mode à l'autre (par exemple, mode de codage automatique pour des fonctions spécifiques)
      • Création autonome de nouveaux modèles (avec des définitions de rôles et des limites de fichiers)
  3. Contrôle de la granularité Permissions Roo cline
    Cliquez sur l'écran Paramètres pour entrer : vous pouvez contrôler les autorisations de Roo cline dans le paramètre Auto-approbation.
    Notez que cela permet de contrôler les actions qui peuvent être exécutées automatiquement sans votre consentement. Dans le cas contraire, il vous sera demandé de cliquer sur la procédure de confirmation avant de poursuivre.
    Ollama 接入本地 AI Copilot 编程助手
  4. Opérations sur les fichiers et les éditeurs
    • Création/édition de fichiers de projet (comparaison des différences)
    • Réponse automatique aux erreurs de code (importations manquantes, problèmes de syntaxe, etc.)
    • Suivi des modifications dans la chronologie de l'éditeur (pour faciliter la révision et le retour en arrière)
  5. Intégration de la ligne de commande
    • Commandes de gestion des paquets/construction/test
    • Contrôler la production et s'adapter automatiquement aux erreurs
    • Serveurs de développement fonctionnant en permanence en arrière-plan Prise en charge des politiques d'approbation : confirmation ligne par ligne/approbation automatique des opérations de routine
  6. Automatisation du navigateur
    Dans la troisième étape, sélectionnez les options suivantes pour donner à Roo Cline des capacités d'automatisation du web
    Ollama 接入本地 AI Copilot 编程助手

    • Lancement d'applications web locales/éloignées
    • Opération Tap/Entrée/Défilement/Capture d'écran
    • Collecter les journaux de la console pour déboguer les problèmes d'exécution Effectuer des tests de bout en bout et des vérifications visuelles
  7. MCP Extension de l'outil
    Modèle Contexte Protocole (MCP) est un protocole d'extension des capacités de Roo qui permet à ce dernier de communiquer avec des serveurs locaux fournissant des outils et des ressources supplémentaires. C'est l'équivalent d'un "cerveau externe" sur l'assistant de programmation.
    Mode dual local/cloud : vous pouvez utiliser les outils et services locaux de votre ordinateur, mais aussi vous connecter aux modules prêts à l'emploi partagés par la communauté.
    Créer dynamiquement un outil : il suffit de dire à Roo de "faire un outil qui cherche la dernière documentation npm" et il générera automatiquement le code d'ancrage.
    Exemples :

    1. Récupérer les ressources de la communauté : utiliser les roues construites par d'autres
      Par exemple, en accédant à l'outil existant "Weather API Query Tool".
      Utilisation directe d'outils validés par la communauté open source
    2. Outils privés auto-construits : personnalisés en fonction des besoins de l'entreprise
      Dites : "Créez un outil qui capture les journaux internes de l'entreprise".
      Roo est généré automatiquement :

      # 示例自动生成的工具框架
      class LogTool(MCPPlugin):
      def fetch_logs(self, service_name):
      # 自动对接公司日志系统
      # 返回最近1小时的关键错误日志
      ...
      

      Une fois que vous l'aurez validé, l'outil apparaîtra dans la liste des compétences de Roo !

    3. Mécanisme de sécurité : tous les nouveaux outils doivent être examinés et autorisés manuellement avant d'être activés, ce qui empêche l'appel arbitraire d'interfaces sensibles.

    Ollama 接入本地 AI Copilot 编程助手

  8. Contexte@ : un moyen de fournir un contexte supplémentaire :
    • @fileContenu d'un document incorporé
    • @folderStructure du catalogue : contient la structure complète du catalogue
    • @problemsIntroduction d'erreurs et d'avertissements dans l'espace de travail
    • @url: Obtenir la documentation de l'URL (en markdown)
    • @gitAnalyse de l'enregistrement des livraisons Git et des divergences pour se concentrer sur les informations clés et optimiser l'utilisation des jetons.

Références (lectures recommandées)

L'adresse github de Roo Cline : https://github.com/RooVetGit/Roo-Code a été renommée en Code RooPlus de nouvelles fonctionnalités à découvrir !

Cline Introduction :Cline (Claude Dev) : plugin VSCode pour la programmation automatisée

Comparaison des outils de programmation de l'IA :Comparaison des outils de programmation d'IA Trae, Cursor et Windsurf

Réaliser un site web de services d'IA à partir de zéro sans écrire une seule ligne de code en utilisant des outils de programmation d'IA : https://cloud.tencent.com/developer/article/2479975

© déclaration de droits d'auteur

Articles connexes

Pas de commentaires

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