Code-Vervollständigung
Viele Code-Editoren bieten heute LLM-Integration an.
Code-Vervollständigungswerkzeuge liefern Inline-Vorschläge, während Sie tippen, und helfen Ihnen, Code schneller zu schreiben, indem sie die nächste Zeile vorhersagen.
Sie unterstützen durch die Vervollständigung von Funktions-Signaturen und die Vorschläge ganzer Codeblöcke basierend auf dem Kontext.
Sie bieten außerdem eine Chat-Oberfläche zum Erklären, Generieren und Bearbeiten von Code direkt in Ihrem Editor.
Info
Um die internen Modelle, die auf unserer Plattform gehostet werden, mit den unten genannten Werkzeugen zu nutzen, benötigen Sie einen SAIA-API-Schlüssel.
Falls Sie noch keinen besitzen, verweisen Sie auf SAIA-API-Schlüssel, um einen zu beantragen.
Externe Modelle sind nicht über die API verfügbar.
Inhaltsverzeichnis
Continue
Einrichtung
Visual Studio Code (oder Jetbrains) ist als IDE (Integrated Development Environment) erforderlich, um CoCo AI zu nutzen.
Installieren Sie die Continue-Erweiterung aus dem VS Code-Erweiterungsmarkt.
Continue ist eine Open-Source-KI-Code-Assistent-Plugin, das Code-Snippets oder sogar gesamte Repositories mit einem ausgewählten Modell abfragen kann.
Nach der Installation bietet Continue eine kurze und leicht verständliche Einführung in seine Funktionen.
Um diesen Dienst nutzen zu können, müssen Sie einige Einrichtungsschritte befolgen.
Nach der Installation der Continue-Erweiterung klicken Sie auf das Symbol in der linken Seitenleiste von VS Code.
Dadurch öffnet sich ein neues Fenster. In der rechten oberen Ecke des Chat-Fensters sehen Sie eine Dropdown-Liste mit „Lokale Konfiguration“.
Klicken Sie darauf, und Sie sollten eine Liste von Konfigurationsdateien im YAML-Format sehen (standardmäßig gibt es nur eine Datei namens „Lokale Konfiguration“).
Öffnen Sie die Datei config.yaml und fügen Sie die folgende Konfiguration ein:
Dann laden Sie das Fenster neu.
Danach sollten Sie eine Liste der verfügbaren Modelle in der unteren Leiste des Chat-Fensters sehen.
Durch Auswahl eines Modells können Sie den Code-Vervollständigungsdienst nutzen.
Bitte beachten Sie bei der Bearbeitung der config.yaml-Datei folgende Punkte:
Der „provider“ muss, unabhängig vom tatsächlichen Anbieter, ein von Continue unterstützter Anbieter sein (z. B. OpenAI oder Ollama).
Der „model“-Name muss vollständig in Kleinbuchstaben geschrieben werden.
Der „apiKey“ muss ohne Klammern oder Anführungszeichen geschrieben werden.
Die „roles“ geben Continue an, wofür jedes Modell verwendet werden kann (Chat, Vervollständigung, Bearbeitung usw.). Mindestens ein Modell muss die Vervollständigungsfunktion (autocomplete) unterstützen, wenn Sie später die Tab-Vervollständigung nutzen möchten.
Weitere detaillierte Informationen zur Konfiguration im Continue AI-Code-Agent finden Sie in der offiziellen Dokumentation: docs.continue.dev
Anmerkung
Beachten Sie, dass nur eine Teilmenge aller verfügbaren Modelle oben aufgeführt ist.
Darüber hinaus sind die OpenAI GPT 3.5 und 4-Modelle nicht für die API-Nutzung verfügbar und daher nicht für CoCo AI nutzbar. Andere verfügbare Modelle können wie oben beschrieben hinzugefügt werden.
Ersetzen Sie <api_key> durch Ihren eigenen API-Schlüssel (siehe hier für die Anfrage des API-Schlüssels).
Wir empfehlen feinabgestimmte Code-Modell für Code-Vervollständigungsaufgaben: devstral-2-123b-instruct-2512, glm-4.7, qwen3-coder-30b-a3b-instruct.
Eine vollständige Liste der verfügbaren Modelle finden Sie hier: Verfügbare Modelle / API-Namen.
Um auf Ihre Daten zuzugreifen, die auf dem Cluster gespeichert sind, von VSCode aus, siehe unsere Konfiguration von SSH. Dies ist nicht erforderlich für lokale Code-Arbeit.
Grundlegende Konfiguration
Zwei wichtige Konzepte, die bei den Vervollständigungsoptionen zu verstehen sind, sind temperature und top_P Sampling.
temperatureist ein Schieberegler von 0 bis 2, der die Kreativität anpasst, wobei Werte nahe 0 vorhersehbarer und Werte nahe 2 kreativer sind. Dies geschieht, indem die Wahrscheinlichkeiten für das nächste Token (Baustein der Antwort) erweitert oder abgeflacht werden.top_pist ein Schieberegler von 0 bis 1, der die Gesamtmenge der Wahrscheinlichkeiten anpasst, die für das nächste Token berücksichtigt werden. Eintop_pvon 0,1 bedeutet, dass nur die oberen 10 % der kumulativen Wahrscheinlichkeiten berücksichtigt werden. Die Variation vontop_phat einen ähnlichen Effekt auf Vorhersehbarkeit und Kreativität wietemperature, wobei größere Werte als kreativer gelten.
Für vorhersehbare Ergebnisse, z. B. bei Programmieraufgaben, sind niedrige Werte für beide Parameter erforderlich, während kreative Ergebnisse, z. B. bei Brainstorming, hohe Werte erfordern.
Weitere Empfehlungen finden Sie in der Tabelle im Abschnitt aktuelle Modelle.
Unser Vorschlag ist, die oben genannten Vervollständigungsoptionen für jedes Modell gemäß der Tabelle in Chat AI festzulegen und zwischen den Modellen basierend auf Ihren Bedürfnissen zu wechseln.
Sie können das Modell auch mehrfach mit unterschiedlichen Vervollständigungsoptionen und unterschiedlichen Namen speichern, wie im folgenden Beispiel:
Eine weitere Vervollständigungsoption, die besonders für lange Antworten berücksichtigt werden sollte, ist max_tokens.
Es ist ein Wert, der kleiner als das Kontextfenster ist und angibt, wie viele Tokens pro Prompt berücksichtigt werden können, plus generiert für die Antwort auf diesen Prompt.
Jedes Modell hat eine unterschiedliche Kontextfenstergröße (siehe Tabelle in aktuelle Modelle für Größen).
Ebenso hat jedes Modell eine Standardlänge für max_tokens.
Diese Länge ist optimal für die meisten Aufgaben, kann aber für längere Aufgaben geändert werden, z. B. „Nennen Sie die Hauptstädte jedes Landes der Welt und einen interessanten Aspekt darüber.“
Das Kontextfenster möchte Systeminformationen, Chatverlauf, das Trainingsgedächtnis, den letzten Prompt und die vorherigen Tokens aus der aktuellen Antwort betrachten.
Daher begrenzt max_tokens die Antwortgenerierung, um zu verhindern, dass die Qualität der Antwort durch die Zuweisung von Kontext an andere Quellen beeinträchtigt wird.
Daher wird empfohlen, eine große Aufgabe in kleinere Aufgaben aufzuteilen, um die Anforderung einer kleineren Antwortgenerierung zu erfüllen.
Es könnte jedoch schwierig oder unmöglich sein, dies zu tun, in welchem Fall max_tokens erhöht werden sollte (mit dem Risiko einer Verschlechterung).
Siehe API-Nutzungsfälle für ein Beispiel, wie max_tokens geändert werden kann.
Weitere Konfigurationsoptionen finden Sie auf der Continue-Konfigurationsseite.
Funktionalität
Die drei Hauptfähigkeiten des Continue-Plugins sind die Analyse von Code, die Generierung von Code und die Fehlerbehebung.
Eine neue nützliche Fähigkeit ist ein Tab-Vervollständigungs-Tastaturkürzel, das sich noch in der Beta-Phase befindet.
Code analysieren
Für alle unten genannten Befehle kann Strg durch Cmd für Mac-Benutzer ersetzt werden.
Markieren Sie einen Code-Ausschnitt und drücken Sie die Tastenkombination
Strg
+
L
.
Dies öffnet die Continue-Seitenleiste mit dem Ausschnitt als Kontext für Ihre gewünschte Frage.
Aus dieser Seitenleiste können Sie auch auf jede Datei in Ihrem Repository zugreifen sowie verschiedene Arten von Kontext bereitstellen, wie z. B. das gesamte Paket oder die Sprachdokumentation, Probleme, Git, Terminal oder sogar Ihre gesamte Codebasis in Ihrem gewählten Repository.
Dies kann entweder durch Drücken von @ oder durch Klicken auf die Schaltfläche + Kontext hinzufügen erfolgen.
Typische Funktionen sind verfügbar, wie z. B. das Öffnen mehrerer Sitzungen, das Abrufen früherer Sitzungen und das Wechseln in den Vollbildmodus.
Modelle können leicht gewechselt werden, z. B. auf ein Modell mit kreativer Konfiguration, an das Prompts ohne Kontext gesendet werden können, genau wie die Web-Oberfläche von Chat AI funktioniert.
Code generieren
Markieren Sie einen Code-Ausschnitt und drücken Sie die Tastenkombination
Strg
+
I
.
Dies öffnet eine Dropdown-Leiste, in der Ihr gewünschter Prompt zu diesem Code eingegeben werden kann. Nach der Eingabe wird weiterer Code basierend auf dem Code-Ausschnitt generiert oder der Code-Ausschnitt selbst bearbeitet.
Diese Änderungen können von der Korrektur fehlerhaften Codes über die Generierung von Inline-Dokumentation bis hin zum Umbenennen von Funktionen reichen.
Der generierte Code und möglicherweise gelöschter Code werden in einem Format angezeigt, das an einen Git-Merge-Konflikt erinnert, mit den Optionen Akzeptieren und Ablehnen.
Beachten Sie, dass es innerhalb von VSCode keine klare Anzeige gibt, ob Cluster-Ressourcen für die Code-Generierung verfügbar sind oder ob die Code-Generierung aus anderen Gründen nicht durchgeführt wird. Wir empfehlen, kurz zu warten, bevor Sie es erneut versuchen.
Vor der Code-Generierung mit Prompt
Nach der Code-Generierung
Beachten Sie aus dem Beispiel, dass das Code-Vervollständigungsmodell mehr kann, als nur funktionale Code zu generieren.
Es verfügt auch über alle Vorteile und Kenntnisse, die von einem LLM erwartet werden: Semantik, Gruppierung und sprachliche Schlussfolgerung.
Es gibt jedoch weiterhin Einschränkungen dieser Kenntnisse basierend auf dem Datum, bis zu dem das Modell trainiert wurde.
Fehler beheben
Wenn Fehler in Ihrem VS Code in den Bereichen Probleme, Ausgabe oder Terminal aufgetreten sind, drücken Sie
Strg
+
Umschalt
+
R
, um die Fehler in die Continue-Seitenleiste zu bringen und eine Lösung dafür anzufordern.
Die Ergebnisse erklären die Fehler ausführlich und bieten möglicherweise Lösungscode für den identifizierten fehlerhaften Code.
Dieselbe Aktion kann auch manuell über die Continue-Seitenleiste durchgeführt werden, indem Sie den Fehler als Kontext bereitstellen und ihn beheben lassen.
Tab-Vervollständigung
Continue analysiert wiederholt den anderen Code in Ihrer aktuellen Datei, unabhängig von der Programmiersprache, und liefert Vorschläge für Code, der ausgefüllt werden soll.
Um diese Funktion zu aktivieren, stellen Sie sicher, dass mindestens ein Modell in der config.yaml die Rolle autocomplete enthält. Ein gängiges Muster ist, den GLM4.7-Eintrag zu duplizieren:
Wenn das ausgewählte Modell kein besonders gut trainiertes Modell für die Code-Vervollständigung ist, wird Continue Sie entsprechend darauf hinweisen.
Sie sollten nun Codevorschläge vom ausgewählten Modell erhalten und den vorgeschlagenen Code einfach durch Drücken von
Tab
einfügen, ähnlich wie die Funktion der Standard-Code-Vervollständigung, die VS Code bietet, wenn Sie die geladenen Pakete überprüfen.
Beide Vorschläge könnten gleichzeitig erscheinen, wobei das Drücken von Tab die VS Code-Funktion gegenüber Continue priorisiert.
Es kann auch vorkommen, dass es einen Konflikt von Tastaturkürzeln zwischen Tab-Autocomplete und Tab-Spacing gibt, in welchem Fall das Tastaturkürzel für Tab-Spacing deaktiviert oder umgelegt werden muss in Ihren VS Code-Einstellungen.
Gehen Sie in Einstellungen zu Tastaturkürzeln und suchen Sie nach „Tab“, dann deaktivieren oder ersetzen Sie die Tastaturbelegung des Tab-Befehls.
Sie können die Tab-Autocomplete-Funktion mit den Befehlen
Strg
+
K
Strg
+
A
deaktivieren.
Leider gibt es keine Möglichkeit, die Tastaturbelegung von Tab-Autocomplete zu ändern.
Es ist auch möglich, eine Autocomplete-Vorschlag Wort für Wort durchzugehen, indem Sie
Strg
+
Rechts
eingeben. Beachten Sie, dass
Strg
+
Links
NICHT Schritte rückgängig macht.
Das folgende Code-Beispiel wurde fast vollständig mit Tab-Autocomplete allein generiert, nachdem zunächst def plus eingegeben wurde, abgesehen von der Notwendigkeit, einige Einrückungen zu korrigieren.
Teilweise Tab-Autocomplete
Vollständige Tab-Autocomplete
Weitere Informationen zur Tab-Autocomplete, einschließlich weiterer Konfigurationsoptionen, finden Sie in der Continue-Dokumentation.
Zed
Zed ist ein beliebter VSCode-Konkurrent mit integrierter KI-Integration.
Da die Chat AI-API OpenAI-kompatibel ist, folgen wir Zeds Dokumentation dazu.
Ihre settings.json sollte ähnlich wie folgt aussehen:
Die Modellnamen stammen aus hier, die Kontextgrößen aus hier.
Ihr API-Schlüssel wird über die Benutzeroberfläche konfiguriert. Öffnen Sie im Befehlspalette agent: open settings.
Geben Sie Ihren API-Schlüssel im Dialog für „OpenAI“ ein. Für die AI-Editierfunktion von Zed siehe ihre Dokumentation.
MCP
Das Model Context Protocol (MCP) ist eine gemeinsame Schnittstelle für LLM-Schnittstellen, um Werkzeuge aufzurufen und zusätzlichen Kontext zu erhalten.
Zed hat integrierte Unterstützung für das Ausführen von MCP-Servern und das automatische Aufrufen der exponierten Werkzeuge durch LLMs über OpenAI-API-Werkzeugaufrufe.
Hier ist eine Beispielkonfiguration, um einen lokalen MCP-Server zu starten:
Emacs
Emacs ist ein erweiterbares, anpassbares, freies/Offen-Quell-Text-Editor und mehr.
Mit Hilfe von gptel, einem einfachen Large Language Model Client, nutzen wir LLMs innerhalb von Emacs.gptel ist auf MELPA und NonGNU-devel ELPA verfügbar.
Da SAIA den OpenAI-API-Standard implementiert, ist die Konfiguration einfach.
Der SAIA-API-Schlüssel wird in ~/.authinfo gespeichert.
Sie können nun von innerhalb von Emacs aus mit LLMs interagieren.




