kurz
Dieses Dokument beschreibt, wie man lokal etwas wie Kopilot Programmierassistent, der Ihnen hilft, schöneren und effizienteren Code zu schreiben.
In diesem Kurs werden Sie lernen Ollama Integration von lokalen Programmierassistenten, einschließlich
- Weiter
- Aider
Achtung!
- Wir werden über die Installation und die grundlegende Verwendung von VScode sprechen. jetbrain wird auf die gleiche Weise wie VScode verwendet, beziehen Sie sich einfach auf vscode.
- Die in jetbrain verfügbaren Funktionen und Konfigurationen sind nicht so umfangreich wie die von VScode, daher wird empfohlen, VScode zu verwenden.
- Die lokale Erstellung von Copilot stellt höhere Anforderungen an die Maschine, insbesondere für den Autovervollständigungsteil des Codes. Wenn Sie also keine besonderen Anforderungen haben, empfiehlt es sich, eine API zu kaufen, um sie zu nutzen.
I. Einführung in die KI-Programmierung
1.1 Warum programmieren wir mit KI?
Das Big Language Model gibt es schon seit langem, aber der Bereich, in dem es sich am besten bewährt hat, ist die Programmierung, und zwar aus folgenden Gründen:
- Klare Kriterien für richtig und falsch. In der Welt der Programmierung funktioniert der Code entweder oder er funktioniert nicht. Diese Schwarz-Weiß-Malerei macht es für die KI einfacher, die Qualität ihrer Ergebnisse zu beurteilen.
- Präzise Sprache. In Programmiersprachen gibt es nicht viel Mehrdeutigkeit. Jedes Symbol, jedes Schlüsselwort hat eine klare Bedeutung. Diese Präzision ist es, was KI-Modelle gut können.
- Gezielte Missionen. Wenn wir Code schreiben, haben wir normalerweise ein klares Ziel. Zum Beispiel: "Schreiben Sie eine Funktion, die die Fibonacci-Folge berechnet". Solche klaren Anweisungen machen es der KI leichter, sich auf das Problem zu konzentrieren.
- Verallgemeinerbarkeit des Wissens. Wenn man einmal die Grundkonzepte einer Programmiersprache gelernt hat, lässt sich vieles auf andere Sprachen übertragen. Diese Übertragbarkeit von Wissen macht KI-Modelle im Bereich der Programmierung besonders effizient.
1.2 Wie programmieren wir mit KI?
- Verwendung der Anwendung "Big Model Dialogue" (hier nicht weiter erläutert)
- Verwendung der integrierten Entwicklungsumgebung (IDE)
- Weiter
- Verwendung von Befehlszeilentools
- Aider
II. IDE Continue Access
2.1 Installation der erforderlichen Modelle
- Ollama installieren
- Installieren Sie die folgenden Modelle
- Installation des Universal Question and Answer (UQA)-Modells
ollama pull llama3:8b
- Installation von Modellen zur automatischen Codevervollständigung.
ollama pull starcoder2:3b
- Installieren Sie das Einbettungsmodell.
ollama pull nomic-embed-text
- Installation des Universal Question and Answer (UQA)-Modells
2.2 Installieren von Continue in VScode und Konfigurieren von Local Ollama
- Installieren von Modellen in der VScode-Plugin-Bibliothek
Suchen Sie nach Continue, sehen Sie das folgende Symbol, klicken Sie auf Installieren oder Installieren
- (Empfohlene Aktion) Es wird dringend empfohlen, "Weiter" in die rechte Seitenleiste von VS Code zu verschieben. Dadurch bleibt der Datei-Explorer bei der Verwendung von "Continue" geöffnet und Sie können die Seitenleiste mit einem einfachen Tastaturkürzel umschalten.
- Konfiguration Ollama
Weg 1: Klicken Sie auf Modell auswählen---- wählen Sie Modell hinzufügen---- klicken Sie auf Ollama---- wählen Sie Autodetect
Dadurch wird automatisch das Modell ausgewählt, das wir gerade auf Ollama für das Code Reasoning Tool heruntergeladen haben.
Modus 2: Klicken Sie auf die Schaltfläche Setup (siehe Abbildung), um die Konfigurationsseite aufzurufen, und fügen Sie die folgende Konfiguration ein{ "models": [ { "title": "Ollama", "provider": "ollama", "model": "AUTODETECT" } ], "tabAutocompleteModel": { "title": "Starcoder 2 3b", "provider": "ollama", "model": "starcoder2:3b" }, "embeddingsProvider": { "provider": "ollama", "model": "nomic-embed-text" } }
2.3 Grundlegende Verwendungsrichtlinien
- Einfach zu verstehender Code
- VS-Code.
cmd+L
( MacOS ) /ctrl+L
( Fenster ) - JetBrains.
cmd+J
( MacOS ) /ctrl+J
( Fenster )
- Verwenden der Tabulatortaste zum automatischen Vervollständigen von Code
- VS-Code.
tab
( MacOS ) /tab
( Fenster ) - JetBrains.
tab
( MacOS ) /tab
( Fenster )
- AI ändert Ihren Code schnell
- VS-Code.
cmd+I
( MacOS ) /ctrl+I
( Fenster ) - JetBrains.
cmd+I
( MacOS ) /ctrl+I
( Fenster )
- Fragen stellen, die sich auf das aktuelle Codeverzeichnis beziehen
- VS-Code.
@codebase
( MacOS ) /@codebase
( Fenster ) - JetBrains : zukünftige Unterstützung
- Stellen Sie eine Frage auf der Grundlage der offiziellen Dokumentation
- VS-Code.
@docs
( MacOS ) /@docs
( Fenster ) - JetBrains.
@docs
( MacOS ) /@docs
( Fenster )
2.4 Referenzen
Offizielle Website: https://docs.continue.dev/intro
Befehlszeilenumgebung Aider Zugriff
Aider ist ein befehlszeilenbasierter Programmierassistent, der im Vergleich zu einer IDE einen besseren Systemzugriff und eine bessere Funktionsnutzung bietet, was aber auch bedeutet, dass es schwieriger ist, den Einstieg zu finden.
In den folgenden Anleitungen erfahren Sie, wie Sie Aider installieren und sich mit dem Ollama-Dienst verbinden.
Vergewissern Sie sich außerdem:
- Sie haben git installiert und Erfahrung mit git.
- Erfahrung mit Python
3.1 Installation des Aiders
- Aider hat viele Abhängigkeiten von Python-Umgebungen, daher wird empfohlen, conda zu verwenden, um eine neue Umgebung zu erstellen, oder Python, um eine neue virtuelle Umgebung zu erstellen, wie das folgende Beispiel mit conda zeigt
- Starten Sie eine neue virtuelle Umgebung von conda (dasselbe gilt für die virtuelle Umgebung von python)
conda create -n aider_env python=3.9
- Zugang zur virtuellen Umgebung
conda activate aider_env
- Befolgen Sie diese Befehle zur Installation
python -m pip install aider-chat
- Starten Sie eine neue virtuelle Umgebung von conda (dasselbe gilt für die virtuelle Umgebung von python)
3.2 Ollama einrichten und starten
- Starten Sie die Befehlszeile und setzen Sie die Umgebungsvariablen wie folgt
export OLLAMA_API_BASE=http://127.0.0.1:11434 # Mac/Linux环境 setx OLLAMA_API_BASE http://127.0.0.1:11434 # Windows环境,设置以后重启shell工具
- cd, um auf Ihr lokales Repository zuzugreifen. Wenn nicht, wird Aider automatisch ein Git-Repository im aktuellen Verzeichnis initialisieren.
#example cd D:\Myfile\handy-ollama\handy-ollama\handy-ollama
- Starten Sie Aider mit dem folgenden Befehl
aider --model ollama/<你的模型名字> #example #aider --model ollama/llama3:8b
Sie können auch die .env-Datei verwenden, um Aider-Informationen zu konfigurieren.
zum Beispiel## 指定OPENAI_KEY(如果有的话) OPENAI_API_KEY=xxx ## 指定你使用model AIDER_MODEL=ollama/llama3:8b
Weitere Konfigurationshinweise:https://aider.chat/docs/config/dotenv.html
- Erfolgreich, wenn Sie die folgende Seite aufrufen
- Sie können nun mit ihm chatten oder ihm einige Befehle schicken und er kann Ihren Code direkt ändern
3.3 Grundlegende Verwendung
- Sie können einige grundlegende Informationen über dieses Repository abfragen
- Dateien hinzufügen
/add <file1> <file2> ...
Dann können Sie auf der Grundlage dieser Dokumente einige Fragen stellen
- Sie können Aider verwenden, ohne Dateien hinzuzufügen, und es wird versuchen, auf der Grundlage Ihrer Anfrage herauszufinden, welche Dateien bearbeitet werden müssen. (Aber Gedanken sind oft schlecht)
- Fügen Sie relevante Dateien hinzu, um Änderungen vorzunehmen oder Fragen zu einem bestimmten Code oder einer bestimmten Datei zu beantworten. (Fügen Sie nicht zu viele zusätzliche Dateien hinzu. Wenn Sie zu viele Dateien hinzufügen, ist die Generierung nicht so effektiv und kostet Sie mehr. Token ).
Beispiel:
- Verwenden Sie Aider, um Änderungen direkt an Codedateien oder anderen Dateien vorzunehmen, z. B. um eine Zusammenfassung in die letzte Zeile einer Readme-Datei einzufügen.
Das aktuelle Dokument anzeigen
- Wenn Sie nicht wollen, dass Aider tatsächlich etwas mit der Datei macht, können Sie dem Dialog den Operator /ask voranstellen
- Alle hinzugefügten Dateien mit /drop löschen
3.4 Referenzen
Eine Liste von häufig verwendeten Slash-Befehlen:
Befehl | Beschreibungen |
---|---|
/add |
Dateien zum Chat hinzufügen, damit GPT sie bearbeiten oder im Detail überprüfen kann |
/ask |
Fragen zur Code-Basis stellen, ohne eine der Dateien zu bearbeiten |
/chat-mode |
Zum neuen Chat-Modus wechseln |
/clear |
Chat-Verlauf löschen |
/clipboard |
Bilder/Text aus der Zwischenablage in den Chat einfügen (optional Namen für Bilder angeben) |
/code |
Antrag auf Änderung des Codes |
/commit |
Übermittlung von Änderungen am Lager außerhalb des Chats (Übermittlungsnachricht optional) |
/diff |
Zeigt die Differenz der Änderungen seit der letzten Meldung an |
/drop |
Dateien aus der Chatsitzung entfernen, um Speicherplatz im Kontext freizugeben |
/exit |
Beenden Sie die Anwendung |
/git |
Führen Sie den Befehl git aus |
/help |
Eine Frage stellen über aider |
/lint |
Überprüfung des Codes und Korrektur der bereitgestellten Dateien oder im Chat (falls keine Dateien bereitgestellt werden) |
/ls |
Listet alle bekannten Dateien auf und zeigt an, welche Dateien in der Chatsitzung enthalten sind |
/map |
Aktuelle Lagerinformationen drucken |
/map-refresh |
Erzwingen, dass die Lagerinformationen aktualisiert und gedruckt werden |
/model |
Umstellung auf ein neues Sprachmodell |
/models |
Suche in der Liste der verfügbaren Modelle |
/quit |
Beenden Sie die Anwendung |
/read-only |
Datei zum Chat hinzufügen, nur zu Ihrer Information, nicht editierbar |
/run |
Führen Sie den Shell-Befehl aus und fügen Sie optional die Ausgabe zum Chat hinzu (Alias: !) |
/test |
Führen Sie den Shell-Befehl aus und fügen Sie die Ausgabe bei einem Exit-Code ungleich Null dem Chat hinzu |
/tokens |
Bericht über die Anzahl der Token, die derzeit im Chat-Kontext verwendet werden |
/undo |
Die letzte Git-Übertragung rückgängig machen, wenn sie von einem Helfer durchgeführt wurde |
/voice |
Aufzeichnung und Transkription von Spracheingaben |
/web |
Erfassen von Webseiten, Umwandlung in Markdown und Hinzufügen zum Chat |
Weitere Informationen zur Verwendung finden Sie unter https://aider.chat/docs/usage.html.
IV. integrierte Entwicklungsumgebung RooCline-Zugang (neu)
4.1 Cline und RooCline
Cline Es ist die heißeste KI-Programmierung Plugin für vscode in der Welt. Es nutzt die KI-Unterstützung auf eine andere Weise als die meisten Tools auf dem Markt. Anstatt sich nur auf die Codegenerierung oder -vervollständigung zu konzentrieren, arbeitet es als Werkzeug auf Systemebene, das mit der gesamten Entwicklungsumgebung interagieren kann. Diese Funktion ist besonders wichtig, wenn es um komplexe Debugging-Szenarien, umfangreiches Refactoring oder Integrationstests geht, wie wir im Abschnitt über Cline in der Referenz sehen können. Heute werden wir Roo Cline vorstellen.
RooCline ist eine erweiterte Version von Cline, die sich auf die Verbesserung der Entwicklungseffizienz und Flexibilität konzentriert. Sie unterstützt mehrere Sprachen und Modelle (z. B. Gemini, Meta usw.) und bietet Funktionen wie intelligente Benachrichtigungen, Optimierung der Dateiverarbeitung und Erkennung von fehlendem Code. Darüber hinaus unterstützt RooCline die parallele Ausführung mit Cline für Entwickler, die an mehreren Aufgaben gleichzeitig arbeiten müssen.
auch wenn Roo Cline Es ist immer noch nicht so groß wie Cline, aber es wächst schnell. Es fügt Cline einige zusätzliche experimentelle Funktionen hinzu und kann auch Teile seines Codes selbst schreiben, ohne dass ein Mensch eingreifen muss.
Und Cline verbraucht eine hohe Anzahl von Token, was sich mehr oder weniger auf die täglichen Entwicklungskosten auswirkt.
4.2 Installation von RooCline in VScode und Konfiguration von Local Ollama
[](https://github.com/datawhalechina/handy-ollama/blob/main/docs/C7/1.1 TP3T20AICopilot .md#42--vscode--roocline- - ollama)- Ollama-Installationsmodell (in Tiefensuche-r1:1.5b zum Beispiel)
ollama run deepseek-r1:1.5b
- Installieren von Modellen in der VScode-Plugin-Bibliothek
Suchen Sie nach Roo Cline, sehen Sie das folgende Symbol, klicken Sie auf installieren oder installieren
- Konfiguration ollama
- Klicken Sie auf das Symbol "Roo cline" auf der rechten Seite
- Klicken Sie auf das Symbol Einstellungen
- Name des Eingabemodells
- Klicken Sie auf Erledigt
- Jetzt können Sie vscode wie jeden anderen integrierten Editor + KI verwenden.
Als Nächstes behandeln wir einige Funktionen, die es nur bei Roo cline gibt!
4.3 Roo Cline Merkmale
Beachten Sie, dass diese Funktionen auf bestimmte große Modellfähigkeiten angewiesen sind, insbesondere wenn sie auf der Ebene des Kontrollsystems angewendet werden. Das deepseek-r1:1.5b in unserem Beispiel ist nicht in der Lage, diese Operationen auszuführen, und wird zu viel Komplexität melden. Es wird empfohlen, auf Deepseek Api-Zugang (er ist billig).
Für die folgenden 1~2 Funktionen klicken Sie auf das Aufforderungssymbol im Funktionsbereich, um die Konfigurationsseite aufzurufen.
- Unterstützung für beliebige APIs/Modelle
- OpenRouter/Anthropic/Glama/OpenAI/Google Gemini/AWS Bedrock/Azure/GCP Vertex
- Native Modelle (LM Studio/Ollama) und jede OpenAI-kompatible Schnittstelle
- Unterschiedliche Modelle können für unterschiedliche Muster verwendet werden (z.B. High-Level-Modell für den Architekturentwurf, ökonomisches Modell für die alltägliche Programmierung)
- Verfolgung der Nutzung auf Sitzungsebene (Token-Verbrauch und Kostenstatistiken)
- Benutzerdefinierte Modi: Anpassung durch Modi Roo-Code Rollen, Anweisungen und Berechtigungen:
- eingebauter Modus
- Code Modus: Standard-Multifunktions-Codierassistent
- Architekt Patterns: Entwurf auf Systemebene und Architekturanalyse
- Fragen Sie Modell: Vertiefte Recherche sowie Fragen und Antworten
- Benutzererstellungsmodus
- Geben Sie "Create a new mode for" ein, um eine benutzerdefinierte Rolle zu erstellen.
- Jeder Modus kann unabhängige Befehle und Fähigkeiten haben (verwaltet in der Registerkarte Prompts)
- Erweiterte Funktionen
- Beschränkungen des Dateityps (z. B. kann der ask/architect-Modus nur Markdown bearbeiten)
- Benutzerdefinierte Dateiregeln (z. B. nur .test.ts-Testdateien verarbeiten)
- Umschalten zwischen Modi (z. B. Auto-to-code-Modus für bestimmte Funktionen)
- Autonome Erstellung neuer Modelle (mit Rollendefinitionen und Dateibegrenzungen)
- eingebauter Modus
- Granularitätskontrolle Roo cline Berechtigungen
Klicken Sie auf den Bildschirm "Einstellungen", um ihn aufzurufen: In der Einstellung "Automatisch genehmigen" können Sie die Zugriffsrechte für das Programm steuern.
Beachten Sie, dass damit gesteuert wird, welche Aktionen automatisch ohne Ihre Zustimmung durchgeführt werden können. Andernfalls werden Sie aufgefordert, den Bestätigungsprozess durchzuklicken, bevor Sie fortfahren.
- Datei- und Editoroperationen
- Erstellung/Bearbeitung von Projektdateien (Vergleich der Unterschiede anzeigen)
- Automatische Reaktion auf Codefehler (fehlende Importe, Syntaxprobleme usw.)
- Nachverfolgung von Änderungen in der Zeitleiste des Editors (für einfache Überprüfung/Rollback)
- Integration in die Befehlszeile
- Paketverwaltung/Build/Test-Befehle
- Überwachung der Ausgabe und automatische Anpassung an Fehler
- Kontinuierlich laufende Entwicklungsserver im Hintergrund Unterstützung der Genehmigungspolitik: zeilenweise Bestätigung/automatische Genehmigung von Routinevorgängen
- Browser-Automatisierung
Im dritten Schritt wählen Sie die folgenden Optionen, um Roo Cline mit Web-Automatisierungsfunktionen auszustatten
- Starten von lokalen/entfernten Webanwendungen
- Tippen/Eingabe/Scrollen/Bildschirmfoto
- Sammeln von Konsolenprotokollen zur Behebung von Laufzeitproblemen Für End-to-End-Tests und visuelle Überprüfung
- MCP Werkzeug Erweiterung
Modell-Kontext-Protokoll (MCP) ist ein Fähigkeitserweiterungsprotokoll für Roo, das es Roo ermöglicht, mit lokalen Servern zu kommunizieren, die zusätzliche Werkzeuge und Ressourcen bereitstellen. Es ist das Äquivalent dazu, ein "externes Gehirn" auf den Programmierassistenten zu setzen.
Lokaler/Cloud-Dualmodus: Sie können die lokalen Tools und Dienste Ihres Computers nutzen, aber auch eine Verbindung zu den von der Gemeinschaft gemeinsam genutzten, vorgefertigten Modulen herstellen
Dynamische Erstellung eines Werkzeugs: Sagen Sie Roo einfach, dass es ein Werkzeug erstellen soll, das die neueste npm-Dokumentation nachschlägt, und es wird automatisch den Docking-Code erzeugen.
Beispiele:- Aufgreifen von Gemeinschaftsressourcen: Nutzung von Rädern, die von anderen gebaut wurden
Zum Beispiel durch den Zugriff auf das bestehende "Weather API Query Tool".
Direkte Verwendung von Tools, die von der Open-Source-Gemeinschaft validiert wurden - Selbst erstellte private Tools: auf die Bedürfnisse des Unternehmens zugeschnitten
Sagen Sie: "Erstellen Sie ein Tool, das unternehmensinterne Protokolle erfasst."
Roo wird automatisch generiert:# 示例自动生成的工具框架 class LogTool(MCPPlugin): def fetch_logs(self, service_name): # 自动对接公司日志系统 # 返回最近1小时的关键错误日志 ...
Sobald Sie es überprüft haben, erscheint das Werkzeug in Roos Fähigkeitenliste!
- Sicherheitsmechanismus: alle neuen Tools müssen vor der Aktivierung manuell überprüft und genehmigt werden, um den willkürlichen Aufruf sensibler Schnittstellen zu verhindern
- Aufgreifen von Gemeinschaftsressourcen: Nutzung von Rädern, die von anderen gebaut wurden
- Context@: eine Möglichkeit, zusätzlichen Kontext zu liefern:
@file
Inhalt des eingebetteten Dokuments@folder
: Enthält die vollständige Katalogstruktur@problems
Arbeitsbereich: Fehler/Warnungen einführen@url
URL-Dokumentation abrufen (in Markdown)@git
Git-Commit-Logging/Diskrepanz-Analyse: Bietet die Möglichkeit, sich auf wichtige Informationen zu konzentrieren und die Verwendung von Token zu optimieren.
Referenzen (empfohlene Lektüre)
Roo Cline github Adresse: https://github.com/RooVetGit/Roo-Code jetzt umbenannt in Roo-CodeWeitere neue Funktionen, die Sie entdecken können!
Cline Einführung:Cline (Claude Dev): VSCode-Plugin für automatisierte Programmierung
Vergleich von AI-Programmierwerkzeugen:Vergleich der AI-Programmierwerkzeuge Trae, Cursor und Windsurf
Erstellen Sie eine KI-Service-Website von Grund auf, ohne eine einzige Zeile Code zu schreiben, indem Sie KI-Programmiertools verwenden: https://cloud.tencent.com/developer/article/2479975