Een lokale LLM koppelen aan VS Code: De complete gids voor ontwikkelaars
Kunstmatige intelligentie heeft de manier waarop we software ontwikkelen permanent veranderd. Tools zoals GitHub Copilot en ChatGPT zijn voor veel programmeurs onmisbaar geworden. Maar wat als je werkt met bedrijfskritische code, strikte NDA's (geheimhoudingsverklaringen) hebt getekend, of simpelweg weigert om maandelijkse abonnementskosten te betalen voor een cloudgebaseerde AI? De oplossing is inmiddels binnen handbereik: je kunt een Large Language Model (LLM) lokaal op je eigen machine draaien en deze direct integreren in Visual Studio Code (VS Code).
In deze uitgebreide gids bespreken we precies hoe je een lokale LLM koppelt aan VS Code. We behandelen de benodigde software, de configuratie van een OpenAI-compatibele server, de beste extensies en we duiken diep in de hardwarevereisten, specifiek voor ontwikkelaars die op een Mac met Apple Silicon werken.
Waarom een lokale LLM gebruiken als codeassistent?
Voordat we in de technische configuratie duiken, is het belangrijk om de voor- en nadelen af te wegen van een lokale setup versus een cloud-oplossing.
- Absolute privacy en beveiliging: Dit is de belangrijkste reden voor veel ontwikkelaars en bedrijven. Wanneer je een cloud-gebaseerde assistent gebruikt, wordt je broncode (of ten minste delen daarvan) over het internet naar servers van derden gestuurd. Met een lokaal model verlaat geen enkele regel code jouw fysieke machine. Je bent volledig privacyvriendelijk bezig en elimineert het risico op datalekken via externe API's.
- Geen abonnementskosten: Na de eenmalige investering in geschikte hardware, zijn de operationele kosten (afgezien van stroomverbruik) nul. Je bent niet afhankelijk van prijsverhogingen of API-limieten.
- Altijd beschikbaar: Geen internetverbinding? Geen probleem. Je codeassistent werkt offline in de trein, in het vliegtuig of tijdens een netwerkstoring.
Er zijn echter ook concessies. Lokale modellen zijn, afhankelijk van je hardware, vaak trager bij het genereren van output dan enterprise cloud-servers. Daarnaast vereisen ze aanzienlijke rekenkracht (GPU of krachtige CPU met voldoende geheugen) en mis je soms de gigantische contextvensters die modellen zoals Claude 3.5 Sonnet of GPT-4o bieden.
De fundering: Een lokale OpenAI-compatibele endpoint instellen
Om VS Code te laten communiceren met een lokaal model, heb je een 'brug' nodig. De meeste AI-extensies voor VS Code zijn oorspronkelijk gebouwd om te praten met de API van OpenAI (via HTTP POST-verzoeken naar /v1/chat/completions). Gelukkig hebben de ontwikkelaars van lokale AI-tools dit onderkend.
Om een lokaal model te draaien dat deze taal spreekt, gebruik je doorgaans een tool zoals Ollama of LM Studio. Deze tools laden het model in het werkgeheugen en starten op de achtergrond een lokale webserver die exact hetzelfde API-formaat hanteert als OpenAI, maar dan op localhost.
Ollama gebruiken
Ollama is momenteel de industriestandaard voor ontwikkelaars. Het is een lichtgewicht command-line interface waarmee je modellen met één commando kunt downloaden en draaien. Lees hier onze specifieke gids over Ollama installeren op macOS.
Zodra Ollama is geïnstalleerd, start je de server (en het model) via je terminal:
ollama run deepseek-coder-v2:lite
Wanneer dit commando draait, luistert Ollama standaard op poort 11434. Jouw "OpenAI" API endpoint is nu beschikbaar op: http://localhost:11434/v1.
Welke VS Code extensies ondersteunen lokale modellen?
Niet elke AI-extensie biedt de mogelijkheid om het eindpunt aan te passen. Hier zijn de drie beste opties voor lokale integratie anno nu:
- Continue.dev (Sterk aanbevolen): Dit is momenteel de meest krachtige, open-source AI-assistent voor VS Code. Continue onderscheidt zich door een prachtige interface, uitstekende ondersteuning voor lokale context (RAG) en de mogelijkheid om zowel lokale als cloud-modellen door elkaar te gebruiken.
- CodeGPT: Een zeer populaire extensie die initieel gebouwd was voor OpenAI, maar inmiddels uitgebreide ondersteuning biedt voor lokale providers zoals Ollama en LM Studio via het instellingenmenu.
- Twinny: Een opkomende extensie die zich specifiek richt op het lokaal draaien van AI-assistenten zonder bloatware. Ideaal voor oudere of minder krachtige systemen.
Stapsgewijze configuratie van de 'Continue' extensie
Voor deze gids richten we ons op Continue.dev, omdat deze extensie veruit de beste ondersteuning biedt voor code-autocomplete én een chat-interface, vergelijkbaar met GitHub Copilot.
Stap 1: Installatie
Open VS Code, ga naar de Extensions marktplaats (Ctrl+Shift+X of Cmd+Shift+X), zoek naar Continue en klik op installeren. Na installatie verschijnt het Continue-logo in je linkerzijbalk.
Stap 2: De config.json aanpassen
Continue werkt met een centraal configuratiebestand. Klik op het tandwiel-icoontje in de Continue zijbalk om config.json te openen. Om je lokaal draaiende Ollama-model toe te voegen, zoek je de models array op en voeg je de volgende configuratie toe:
{
"models": [
{
"title": "Lokale DeepSeek Coder",
"provider": "ollama",
"model": "deepseek-coder-v2:lite",
"apiBase": "http://localhost:11434"
}
],
"tabAutocompleteModel": {
"title": "Starcoder 2 3B",
"provider": "ollama",
"model": "starcoder2:3b",
"apiBase": "http://localhost:11434"
}
}
Merk op dat we in dit voorbeeld twee modellen configureren: een capabel model (zoals DeepSeek of Llama 3) voor de chat-interface, en een extreem klein, snel model (zoals Starcoder2 3B of Qwen2.5-Coder 1.5B) specifiek voor tabAutocompleteModel. Autocomplete moet namelijk binnen milliseconden reageren, terwijl je op een chat-antwoord best een paar seconden kunt wachten.
Modellen en hardware: Wat werkt goed op een Mac met Apple Silicon?
Als je een Mac hebt met een M-serie chip (M1, M2, M3 of M4), ben je in het bezit van waarschijnlijk de beste consumentenhardware voor lokale AI. Dit komt door de 'Unified Memory Architecture' (UMA). In tegenstelling tot traditionele pc's waar de processor (CPU) en de videokaart (GPU) hun eigen gescheiden geheugen hebben, deelt een Apple Silicon chip één grote poel geheugen.
Dit betekent dat een MacBook Pro met 64GB werkgeheugen effectief fungeert als een videokaart met (bijna) 64GB VRAM. Dit laat je toe om modellen te draaien waar je op een Windows-pc een grafische kaart van duizenden euro's voor nodig zou hebben. Maar welk model past bij jouw hardware? Lees ook ons algemene artikel over het kiezen van een lokaal model.
- Mac met 8GB of 16GB RAM: Beperk jezelf tot modellen van 7B tot 8B parameters. Voorbeelden zijn
llama3:8b,qwen2.5-coder:7bofmistral:7b. Deze modellen nemen ongeveer 4 tot 6 GB aan geheugen in beslag (afhankelijk van de kwantisatie), wat genoeg ruimte overlaat voor VS Code, je browser en je operating system. - Mac met 32GB RAM: Je kunt comfortabel werken met modellen rond de 32B parameters. Denk aan
qwen2.5-coder:32bofcommand-r. Deze modellen bieden logica en codegeneratie die vergelijkbaar is met GPT-3.5 en vroege versies van GPT-4. - Mac Studio / Max met 64GB+ RAM: Het domein van de zwaargewichten. Modellen zoals
llama3.1:70bofwizardlm2:8x22b(gekwantiseerd) kunnen hierop draaien. De reactiesnelheid zal lager zijn, maar de codekwaliteit is indrukwekkend. Meer hierover vind je in onze gids over hardware voor lokale LLM's.
Contextvensters en projectbestanden (RAG in VS Code)
Een van de grootste uitdagingen bij lokale AI is het contextvenster. Een model moet je bestaande codebase begrijpen om nuttige toevoegingen te doen. Cloud-modellen hebben tegenwoordig contextvensters van 200.000 tokens, waarmee je een hele repository in één keer kunt meesturen. Lokaal ben je, door hardwarebeperkingen, vaak gelimiteerd tot 8.000 of hooguit 32.000 tokens.
Je kunt dus niet zomaar je hele projectfolder naar je lokale model sturen. Dit wordt opgelost door RAG (Retrieval-Augmented Generation) lokaal toe te passen. Voor meer theorie hierover kun je kijken naar RAG voor beginners op ons leerplatform.
De Continue extensie lost dit briljant op met @-mentions en lokale indexering. Je kunt specifieke bestanden, mappen of zelfs hele documentatiesets in de chat betrekken:
- Typ
@fileom direct naar een bestand te zoeken en de inhoud als context toe te voegen. - Typ
@codebaseom een zoekopdracht over je hele workspace uit te voeren. Continue gebruikt lokaal berekende embeddings (met een klein embedding-model zoalsnomic-embed-text) of een BM25 zoekalgoritme om de meest relevante codefragmenten uit je project te vinden en alléén die fragmenten naar het LLM te sturen. - Typ
@folderom de bestanden in een specifieke submap mee te sturen.
Dit zorgt ervoor dat je efficiënt met je tokens omgaat, waardoor het lokale model niet overbelast raakt (of "Out of Memory" crasht) en de responstijden acceptabel blijven.
Veelvoorkomende valkuilen en oplossingen
Tijdens het opzetten van deze configuratie lopen veel ontwikkelaars tegen dezelfde obstakels aan. Hier is een snelle probleemoplosser:
1. "Connection Refused" foutmeldingen
Als VS Code aangeeft dat het geen verbinding kan maken met de API, controleer dan eerst of je lokale AI-server wel draait (bijv. staat de LM Studio server aan, of draait ollama serve in de achtergrond?). Controleer daarna de apiBase in je config.json. Soms werkt http://127.0.0.1:11434 beter dan http://localhost:11434 afhankelijk van je netwerkinstellingen en DNS resolutie.
2. Extreem trage responstijden of haperende tekst
Dit is vrijwel altijd een hardware-knelpunt. Als het model niet in zijn geheel in het videogeheugen (VRAM) of Unified Memory past, gaat je systeem "swappen" (virtueel geheugen op je SSD gebruiken). Dit vertraagt de inferentiesnelheid van bijvoorbeeld 30 tokens per seconde naar minder dan 1 token per seconde. De oplossing: kies een kleiner model of gebruik een sterkere kwantisatie (bijv. een 4-bit model in plaats van een 8-bit model).
3. Het model hallucineert API's of functies
Als je vraagt om een specifiek script en de AI verzint bibliotheken die niet bestaan, kan dit liggen aan een te hoge Temperature instelling, of domweg het gebruik van een verkeerd modeltype. Zorg ervoor dat je zogenaamde "coder" of "instruct" modellen gebruikt (zoals DeepSeek-Coder of Qwen-Coder). Algemene chat-modellen (zoals een basis Llama model) zijn soms te creatief. Pas in de instellingen van je VS Code extensie de temperature aan naar 0.1 of 0.2 voor meer deterministische en voorspelbare code.
Met de juiste hardware, een tool als Ollama, een krachtige extensie zoals Continue en een goed gekozen model, heb je een indrukwekkende AI-assistent direct in VS Code. Eentje die jouw code begrijpt, maar je bedrijfsgeheimen binnen de muren van je eigen studeerkamer houdt.