LocalAI/docs/continue.md
2026-10-15 00:01:26 +02:00

7.7 KiB
Raw Permalink Blame History

Continue (VS Code) mit dem zentralen LocalAI-Server

Continue ist ein Open-Source-Plugin für VS Code (und JetBrains). Es bietet:

Funktion Wofür Modell auf dem Server
Chat / Agent Fragen zum Code, Agent-Modus mit Tools (Dateien lesen/schreiben, Terminal) qwen3.5-35b-a3b (oder glm-4.7-flash, qwen3.5-9b)
Edit / Apply markierten Code umschreiben lassen (Ctrl+I), Vorschläge übernehmen wie Chat
Autocomplete Ghost-Text-Vervollständigung beim Tippen (Tab) qwen2.5-coder-1.5b (läuft dauerhaft)
Embeddings @codebase-Suche über das ganze Projekt nomic-embed (läuft dauerhaft, CPU)

Alles läuft über die eine API http://<server>:8800/v1 mit API-Key. Es geht nichts in die Cloud.


1. Voraussetzungen

  • Der Server läuft (docker compose ps auf alegab-pc, siehe README).
  • Der Client-PC ist im Heim-LAN (192.168.178.0/24) oder mit NetBird verbunden. Andere Netze bekommen 403.
  • Du hast den API-Key: Das ist LLM_API_KEY aus .env auf dem Server.
    grep ^LLM_API_KEY ~/workspace/localAI/.env
    

Verbindungstest vom Client aus:

curl -H "Authorization: Bearer <KEY>" http://192.168.178.72:8800/v1/models
# NetBird:  http://100.73.82.219:8800/v1/models

Kommt eine JSON-Liste mit den Modellen zurück, steht die Verbindung.

2. Extension installieren

  • VS Code: Extensions (Ctrl+Shift+X) öffnen, nach „Continue" suchen (Herausgeber: Continue) und installieren. Alternativ auf der Kommandozeile: code --install-extension Continue.continue
  • VSCodium / Code-OSS: gleicher Name, die Extension kommt dort aus Open VSX.

Beim ersten Start zeigt Continue eine Anmeldeseite für den „Continue Hub". Melde dich nicht an. Wähle stattdessen „Or, configure your own models" bzw. „Skip" oder „Local config". Damit bleibt alles lokal.

3. Konfiguration einspielen

Continue liest die lokale Konfiguration aus:

System Pfad
Linux / macOS ~/.continue/config.yaml und ~/.continue/.env
Windows %USERPROFILE%\.continue\config.yaml und %USERPROFILE%\.continue\.env

Linux/macOS:

mkdir -p ~/.continue
cp ~/.continue/config.yaml ~/.continue/config.yaml.bak 2>/dev/null   # Backup, falls vorhanden
cp client/continue/config.yaml ~/.continue/config.yaml
cp client/continue/.env.example ~/.continue/.env
chmod 600 ~/.continue/.env
$EDITOR ~/.continue/.env      # LOCALAI_API_KEY=<KEY> eintragen

Windows (PowerShell):

New-Item -ItemType Directory -Force $env:USERPROFILE\.continue
Copy-Item client\continue\config.yaml $env:USERPROFILE\.continue\config.yaml
Copy-Item client\continue\.env.example $env:USERPROFILE\.continue\.env
notepad $env:USERPROFILE\.continue\.env

Die Dateien config.yaml und .env.example liegen in diesem Repo unter client/continue/. Auf einen anderen PC kopierst du sie per USB-Stick, scp oder Git.

4. Server-Adresse eintragen

Oben in config.yaml gibt es den Block model_defaults:. Dort steht eine apiBase, die für alle Modelle gilt:

model_defaults: &localai
  provider: openai
  apiBase: http://192.168.178.72:8800/v1     # ← hier anpassen
  apiKey: ${{ secrets.LOCALAI_API_KEY }}
Standort des Client-PCs apiBase
auf alegab-pc selbst http://127.0.0.1:8800/v1
im Heim-LAN http://192.168.178.72:8800/v1
unterwegs über NetBird http://100.73.82.219:8800/v1 oder http://<netbird-name>.netbird.cloud:8800/v1

Tipp für Laptops, die mal im LAN und mal unterwegs sind: Nimm immer die NetBird-Adresse. Sie funktioniert auch zu Hause, solange NetBird verbunden ist. Dann musst du nie umschalten.

Den NetBird-Namen und die NetBird-IP des Servers zeigt netbird status -d auf alegab-pc an.

Nach dem Speichern lädt Continue die Konfiguration automatisch neu. Falls nicht: Command Palette (Ctrl+Shift+P) → „Continue: Reload" oder VS Code neu laden.

5. Telemetrie abschalten

Continue sendet standardmäßig anonyme Nutzungsstatistiken. So schaltest du das ab:

VS Code-Einstellungen (Ctrl+,) → nach continue telemetry suchen → „Continue: Telemetry Enabled" abhaken. Oder direkt in settings.json:

"continue.telemetryEnabled": false

6. Benutzung

Aktion Tastenkürzel (Standard)
Continue-Seitenleiste öffnen / Chat Ctrl+L (markierten Code mitnehmen)
Code inline bearbeiten (Edit) Code markieren → Ctrl+I
Autocomplete annehmen Tab (Wort für Wort: Ctrl+→)
Autocomplete ablehnen Esc
Modell wechseln Dropdown unten in der Chat-Box
Modus wechseln (Chat / Plan / Agent) Dropdown links unten in der Chat-Box

Kontext mit @ im Chat: @codebase (semantische Suche im Projekt), @file, @folder, @diff (aktuelle Git-Änderungen), @terminal, @problems.

Hinweise zu den Modellen

  • Erster Request nach längerer Pause: Das Chat-Modell wird in den VRAM geladen, das dauert 10–60 s. Danach bleibt es 1 h geladen.
  • Modellwechsel zwischen den Chat-Modellen dauert ebenso. Am besten bei einem Modell bleiben.
  • Das Autocomplete- und das Embedding-Modell laufen dauerhaft und werden durch den Chat nie entladen.
  • Der Server ist ein gemeinsames System. Wenn mehrere Leute gleichzeitig chatten, werden die Anfragen nacheinander abgearbeitet. Wer ein anderes Chat-Modell wählt, löst bei allen einen Modellwechsel aus.
  • Agent-Modus: Gib kleine, klar umrissene Aufgaben. Lokale Modelle verlieren bei langen Mehrschritt-Aufträgen eher den Faden als Cloud-Modelle.

7. Fehlersuche

Symptom Ursache / Lösung
401 unauthorized API-Key fehlt oder ist falsch. ~/.continue/.env prüfen (kein Leerzeichen, keine Anführungszeichen).
403 forbidden Der Client ist in einem nicht erlaubten Netz. LAN oder NetBird verbinden.
Timeout / „connection refused" Falsche apiBase, Server aus oder Firewall. curl-Test aus Abschnitt 1 ausprobieren.
Erste Antwort dauert lange Das Modell wird geladen, beim allerersten Mal sogar heruntergeladen. Abwarten.
Autocomplete zeigt nichts Unten rechts in der Statusleiste muss „Continue" aktiv sein (Klick → Enable autocomplete). Im Output-Panel „Continue" nach Fehlern schauen. Das Template in config.yaml (promptTemplates.autocomplete) muss unverändert sein.
Autocomplete liefert Müll / Chat-Text Für Autocomplete muss das Modell qwen2.5-coder-1.5b mit useLegacyCompletionsEndpoint: true eingestellt sein, kein Chat-Modell.
Agent ruft keine Tools auf Das Modell braucht capabilities: [tool_use]. qwen3.5-35b-a3b oder glm-4.7-flash nehmen.
@codebase findet nichts Indexierung läuft noch, siehe Fortschritt in der Continue-Seitenleiste. Neu anstoßen: Command Palette (Ctrl+Shift+P) → „Continue" eintippen → den Befehl zum Neu-Indexieren (Re-Index / Rebuild codebase index) wählen.

Logs des Servers (auf alegab-pc):

cd ~/workspace/localAI
docker compose logs -f llama-swap     # Modell-Laden, Requests
docker compose logs -f caddy          # Zugriffe, 401/403

8. Fertige Varianten

a) Nur ein Modell, minimal

Wenn du nur Chat und Autocomplete willst, lösche in config.yaml die Einträge GLM-4.7 Flash, Qwen3.5 9B und Nomic Embed.

b) Schwacher Client, schnelle Antworten

Nimm Qwen3.5 9B (schnell) als Chat-Modell. Es liegt komplett im VRAM und antwortet deutlich schneller, ist aber weniger klug.

c) Projektbezogene Konfiguration

Continue liest zusätzlich .continue/-Ordner im Projekt. Dort kannst du z. B. projektspezifische Regeln ablegen (.continue/rules/*.md) und sie mit ins Repo einchecken. Die Modelle bleiben in der globalen ~/.continue/config.yaml.