9.5 Continue
Für die direkte Unterstützung bei der Softwareentwicklung ist die Integration von KI-Funktionen direkt in die Entwicklungsumgebung am komfortabelsten. Für VS Code und die JetBrains-IDEs gibt es zahlreiche Lösungen, von denen GitHub Copilot die bekannteste ist.
Daneben gibt es diverse Alternativen mit ähnlichen Features – beispielsweise Bito, Cody oder Codeium. Die meisten dieser Dienste bieten eine limitierte kostenlose Variante an. Wenn Sie jedoch täglich damit arbeiten und das Werkzeug in Ihren Entwicklungsprozess integrieren möchten, benötigen Sie in den meisten Fällen die kostenpflichtige Version. Außerdem bleibt das Problem bestehen, dass Sie Ihre Daten an einen Drittanbieter senden.
Es geht aber auch anders! Sowohl das Plug-in Continue, das wir in diesem Abschnitt vorstellen, als auch das Projekt Tabby (siehe Abschnitt 9.7, »Tabby«) realisieren einen Code-Assistenten auf der Basis einer lokal ausgeführten LLM. Damit behalten Sie die Kontrolle über Ihre Daten.
Installation
Das Plug-in Continue ist für VS Code und die JetBrains-IDEs erhältlich. Nach der Installation verbindet sich Continue mit einem Sprachmodell Ihrer Wahl, wobei auch lokale LLMs mit Ollama unterstützt werden. Einen Quick-Start-Guide sowie weitere Informationen zu Continue finden Sie auf der offiziellen Webseite des Projekts sowie im Ollama-Blog:
https://www.continue.dev
https://ollama.com/blog/continue-code-assistant
Im ersten Schritt müssen Sie die Erweiterung installieren. Continue ist aktuell für VS Code und oder eine der JetBrains-IDEs verfügbar. Beim ersten Öffnen der Extension haben Sie die Auswahl zwischen drei verschiedenen Varianten:
-
Free Trial: Hier müssen Sie sich mit Ihrem GitHub-Account anmelden und erhalten 50 kostenlose Anfragen. Diese werden über einen Proxyserver von Continue geleitet und mit deren API-Keys ausgeführt. Diese Variante eignet sich gut für erste Tests.
-
Local models: Dieser Modus setzt voraus, dass Sie Ihre KI-Modelle lokal hosten und beispielsweise eine eigene Ollama-Installation mit zugehörigen Modellen betreiben.
-
Best experience: Die dritte Variante ist ein Vorschlag des Continue-Teams. Hier werden Ihnen die besten kommerziellen Modelle vorgeschlagen, für die Sie jedoch jeweils einen API-Key benötigen.
Zur Demonstration der Features von Continue nutzen wir die VS-Code-Extension in Kombination mit einer lokalen Installation von Ollama. In der Standardinstallation geht Continue von folgenden Modellen aus:
-
chat: Initial verwendet Continue Llama3 als Modell für das Chat-Feature. Die Dokumentation empfiehlt eine Modellvariante mit möglichst mehr als 30B Parametern, was jedoch bedeutet, dass das System, auf dem Sie Ollama ausführen, über entsprechende Ressourcen verfügen muss. Alternativ zu Llama3 empfiehlt Continue das Open-Source-Modell DeepSeek Coder v2 oder die kommerziellen Modelle Claude 3, GPT-4 und Gemini Pro.
-
autocomplete: Für die Autovervollständigung ist das starcoder-2:3b-Modell die Standardeinstellung. Continue empfiehlt hier ein Modell mit einer Parameterzahl zwischen 1B und 15B. Als Alternativen stehen das kommerzielle Modell codestral sowie DeepSeek Coder v2 als Open-Source-Variante zur Verfügung.
-
embeddings: Für die Embeddings nutzt Continue nomic-embed-text. Alternativ können Sie das kommerzielle Modell voyage-code-2 verwenden.
Alle Einstellungen werden in der config.json-Datei der Extension gespeichert und können jederzeit geändert werden. Hier können Sie beispielsweise die verschiedenen Modelle konfigurieren, indem Sie den Anzeigenamen festlegen und angeben, woher das Modell stammt, beispielsweise von Ollama, sowie die Bezeichnung des Modells.
Anwendung
Nach der Aktivierung von Continue schlägt Ihnen die Extension bei der Eingabe von Code Erweiterungen bzw. Code-Fragmente vor, die Sie akzeptieren oder ignorieren können.
Mit der Tastenkombination (Strg)+(I) bzw. (cmd)+(I) können Sie den Code in der aktuell geöffneten Datei modifizieren. Angenommen, Sie haben eine Codestelle, an der eine Zeichenkette zurückgegeben wird, die aktuell auf Deutsch ist, aber auf Englisch übersetzt werden soll: Sie setzen einfach den Cursor in die entsprechende Zeile, drücken die Tastenkombination und formulieren den Prompt Change this value to English. Continue schlägt Ihnen dann eine übersetzte Zeichenkette vor, die Sie nur noch akzeptieren müssen.
Der Chat der Continue-Extension ist ein vielseitiges Hilfsmittel. Im einfachsten Fall stellen Sie über einen Prompt eine beliebige Frage wie beispielsweise What are the parameters for Array.splice. Das Modell hinter Continue antwortet mit einer ausführlichen Erklärung, die Ihnen im Chatfenster direkt angezeigt wird. Der Chat hat zusätzlich zwei besondere Funktionen:
-
Slash Commands: Beginnen Sie die Nachricht mit einem Schrägstrich (/), erhalten Sie eine Auswahl vordefinierter Kommandos. Mit diesen Kommandos können Sie beispielsweise den ausgewählten Code bearbeiten lassen, Kommentare hinzufügen oder eine Commit-Nachricht erzeugen. Continue bietet Ihnen außerdem die Möglichkeit, eigene Kommandos zu erstellen. Wählen Sie den letzten Punkt im Dropdown (Build a custom prompt) aus, erhalten Sie eine Vorlage für einen solchen Prompt. Dieses Feature ist besonders für Aufgaben interessant, die Sie häufiger erledigen müssen.
-
Context: Mit dem @-Zeichen können Sie zusätzlichen Kontext zum Chat hinzufügen. Diese Informationen helfen dabei, die Antwort von Continue zu verbessern, indem Sie den Prompt in den passenden Zusammenhang setzen.
Das Context-Feature von Continue macht die Erweiterung zu einem nützlichen Hilfsmittel im Arbeitsalltag. Durch die Möglichkeit, im Chat Fragen zu Ihrem eigenen Code zu stellen und gleichzeitig externe Informationsquellen einzubinden, können Sie sehr spezifische Antworten erhalten. Zu den eingebauten Context-Providern gehören:
-
Code: Dieser Kontext verweist auf bestimmte Funktionen oder Klassen innerhalb Ihres Projekts.
-
Git Diff: Mit dem @diff-Kontext können Sie auf die Änderungen in Ihrem aktuellen Git-Branch verweisen und sich diese erklären lassen.
-
Terminal: Der Terminal-Provider verweist auf den Inhalt der integrierten Kommandozeile Ihrer Entwicklungsumgebung.
-
URL: Mit diesem Kontext können Sie auf externe Webseiten verweisen. Continue lädt die Seite, wandelt sie in Markdown um und übergibt sie dem Modell als Kontext.
-
Jira Issues: Sie können auch auf Jira-Issues verweisen und so direkt die Anforderungen Ihres Projekts in Ihre Prompts beziehungsweise Antworten einbeziehen.
-
Die Qualität der Antworten von Continue hängt stark von den verwendeten Modellen und der verfügbaren Infrastruktur ab. Mit den großen kommerziellen Modellen ist Continue ein ideales Hilfsmittel für die tägliche Arbeit.
Continue liefert aber auch in Kombination mit Ollama sehr gute Ergebnisse, sofern genügend Speicher und Rechenleistung zur Verfügung stehen; andernfalls fallen die Antworten sehr langsam aus, was das Werkzeug für den Entwicklungsprozess uninteressant macht. Der entscheidende Vorteil der lokalen Ausführung ist, dass Ihre Daten Ihr System nicht verlassen und Sie durch die Context-Provider die Continue-Extension sehr tief in Ihr Projekt integrieren können.