10 min
Datenschutzkonforme KI Integration für IDEs mit ollama
Zusammenfassung
-
Warum wir bei Creasoft auf lokal betriebene KI-Modelle statt auf Cloud-Dienste setzen
-
Welche Vorteile der Einsatz von LLMs in einem Docker-Container mit sich bringt
-
Wie einfach und schnell sich ein eigenes Setup mit ollama einrichten lässt
-
Welche Modelle sich für den Entwickleralltag besonders eignen (inkl. Performance-Erfahrungen)
-
Warum gezielte Prompts oft mehr bringen als die vielbeworbene Code-Completion
-
Wie sich lokale LLMs in gängige IDEs wie Rider und VS Code integrieren lassen
Wer derzeit einen Blog zum Thema Softwareentwicklung liest, stösst unweigerlich auf Diskussionen über die neuesten KI-Modelle oder darüber, welche Entwicklungsumgebung die beste KI-Integration bietet. Würde man jedem Hype um die aktuell beste KI-IDE folgen, müsste man sich gefühlt jede Woche mit einem neuen Tool auseinandersetzen.
Wir bei Creasoft haben uns für einen anderen Ansatz entschieden: Statt auf externe Dienste zurückzugreifen, betreiben wir unsere Sprachmodelle in einem isolierten Docker-Container mit ollama – vollständig lokal, datenschutzkonform und flexibel anpassbar.
In diesem Beitrag zeigen wir, wie einfach die Einrichtung funktioniert und welche Modelle sich besonders gut für den Programmieralltag eignen.
Wir stellen somit also zum einen sicher, dass kein Code unserer Kunden unser Netzwerk verlässt und erweitern dabei quasi nebenbei unser Know-How in einem hochaktuellen Themengebiet.
Vorteile gegenüber Cloud-Lösungen
Das Herzstück unseres Ansatzes ist der lokale Betrieb der Modelle. Dadurch bleiben Quellcode, interne APIs und sensible Algorithmen vollständig auf den eigenen Systemen – ein wichtiger Aspekt für Kundenprojekte mit hohen Compliance-Vorgaben.
Weitere Vorteile
Keine Datenübertragung ins Internet
Volle Kontrolle über Modellversionen und Updates
Kein Vendor-Lock-In
Geringe Latenz bei richtiger Hardware-Ausstattung
Schnellstart: Lokaler Coding Assistant mit ollama
Voraussetzungen
Für die Einrichtung braucht es lediglich:
- Eine Linux basierte Docker-Umgebung (funktioniert auch sehr gut auf Windows mit WSL2).
- Eine GPU mit ausreichender Leistung, um Ergebnisse in akzeptabler Geschwindigkeit zu erhalten.
-
Weniger als eine halbe Stunde Zeit.
Im Prinzip sind auch diese Anforderungen schon hochgegriffen. Ollama lässt sich auch problemlos direkt auf den gängigsten Betriebssystem installieren. Die Lösung in einem Container bietet aber saubere Isolation, kann jederzeit beendet werden und wenn wir uns entscheiden, einen eigenen Server für unsere LLMs zu betreiben, dann kann alles ganz einfach verschoben werden.
Ollama selbst agiert dann als Runtime für eine ganze Reihe von frei verfügbaren LLMs. Dabei gibt es einige die speziell mit Trainingsdaten für die Softwareentwicklung gefüttert wurden und deshalb auch explizit «Code» oder «Coder» in ihrem Namen haben.
Dann gibt es auch zu beachten, wie «gross» die Modelle sind. Grösse bezieht sich in diesem Kontext auf die Anzahl der Parameter, also auf die Gewichtungen auf verschiedenen Nodes im Modell. Vereinfach gesagt, also die Anzahl Knotenpunkte im neuronalen Netz. Viele Modelle erhält man in unterschiedlichen Grössen. In der Regel sind die Modelle mit einer Info getagged, z.B. 500m, 7b oder 30b. Wobei m für Million und b für Billion (also im Deutschen: Milliarden) steht.
Das Modell qwen2.5-coder, ein Open-Source Modell von Ali-Baba, haben wir uns genauer angeschaut.
Dabei wurden die Grössen 7b, 14b und 32b getestet.
Natürlich liefert ein grösseres Modell die besseren Ergebnisse, wobei die Unterschiede in den Tests nicht gewaltig waren. Das 32b-Modell benötigte dafür aber so lange um eine Antwort zu generieren, dass es den geringen Qualitätssprung für uns nicht wert war.
Das 14b Modell hat dagegen sehr gut performt, jedoch bei beispielsweise meinem Notebook mit der Zeit zu Überhitzung geführt. Je nach eingesetzter Hardware setzen wir daher auf das 7b oder das 14b Modell.
Während des Schreibens dieses Artikels liegt qwen2.5-coder:32b übrigens auf Rang 65 in der Kategorie «Coding» auf LLM Arena was für ein offenes und auch noch recht kleines Modell eine sehr gute Platzierung ist. Aktuell werden neue Modelle jedoch in so einer Regelmässigkeit veröffentlicht, dass das in einer Woche jedoch schon gänzlich anders ausschauen kann und sich ein neues Modell als noch schneller und besser herausstellt. Für unsere aktuellen Anforderungen sind wir mit den Ergebnissen aber sehr zufrieden.
Zum Thema Performance
Beim Thema KI denkt man durch die Berichterstattung natürlich sofort an riesige Server-Farmen, hohe Hardwareanforderungen und extremen Stromverbrauch. Wir waren selbst auch zunächst skeptisch, wie gut das auf unseren Entwickler-PCs und Notebooks funktionieren würde. Die Antwort: überraschend gut – zumindest wenn GPU Unterstützung aktiviert ist. Im ersten Versuch, bei dem ich im Container noch keine GPU Unterstützung aktiviert habe, war das Ganze gefühlt um Faktor 10 langsamer und somit nicht zu gebrauchen.
Im Vergleich zu Produkten aus der Cloud ist ein initialer Delay zwar merklich spürbar, aber wenn dieser überwunden ist, werden Antworten in einem vergleichbaren Tempo generiert. Der ganz grosse Ressourcen-Hunger kommt ja auch vom Training der Modelle und nicht unbedingt vom Ausführen dieser.
Nichtsdestotrotz: Ein Unterschied ist wahrnehmbar und zumindest die Fähigkeit zu Code-Completion ist dadurch natürlich eingeschränkt. Niemand wartet gerne ein paar Sekunden, nachdem ein paar Zeilen getippt wurden, bis ein Vorschlag von der KI erscheint.
Mein Fokus in der Verwendung liegt aber auch weniger auf Code-Completion, sondern auf sinnvoller Chat-Anbindung. Wenn ich einen Code-Block erzeugen möchten, fange ich nicht mit dem tippen an sondern frage direkt den Chat. Will ich ein Refactoring durchführen, markiere ich den Code für die KI und verlange explizit nach einer Änderung.
In meiner Erfahrung ist das auch der grosse Use-Case von Cloud-gestützten Diensten. Die Completions sind zwar eine nette Spielerei und nützlich um die Fertigkeiten einem Publikum vorzuführen. Der wahre Nutzen liegt in gezielten Prompts, nicht in der Vervollständigung einzelner Codezeilen.
Integration in die IDEs
Wie gerade erwähnt: Den grossen Mehrwert ziehen wir aus der Chat Funktionalität und diese ist eigentlich direkt im ollama-Container gegeben. Wir können über das präferierte Terminal eine Chat-Session mit einem Modell starten und haben die Funktionalität damit ja schon abgedeckt.
Trotzdem ist die Lösung ohne einer anständigen Integration in unsere IDEs nur halbgar. Wer kopiert schon gerne Code als Kontext zu einer Frage in ein Terminal-Fenster oder gibt mehrzeilige formatierte Daten ein. Auch der Wechsel jedes mal raus aus der Entwicklungsumgebung ist nicht ideal.
Zum Glück gibt es bereits zahlreiche Plugins, welche die Funktionen wie man sie von anderen KI-Coding-Assistants kennt, über ollama in die Entwicklungsumgebungen einbettet. Wir haben uns für «Proxy AI» für unsere Jetbrains Umgebungen und das «Github Copilot Plugin» für Visual Studio Code entschieden. Beide benötigen keine Abonnements oder ähnliches und sind mit wenigen Klicks installiert und konfiguriert. Es muss lediglich die lokale ollama Installation verlinkt und ein installiertes Modell ausgewählt werden.
Beide Plugins stellen einen Chat und Interaktionen über das Context-Menü bereit. Auch Code-Completion kann wenn gewünscht aktiviert werden.



Fazit
Die Kombination aus lokal gehosteten LLMs und direkter IDE-Integration bietet nicht nur Komfort im Entwickleralltag, sondern auch die Sicherheit, die moderne Softwareprojekte benötigen.
Wir bei Creasoft setzen damit ein klares Zeichen: KI-gestützte Entwicklung muss nicht auf Kosten des Datenschutzes gehen. Mit nur wenig Aufwand kann man sich selbst ein konkurrenzfähiges Setup zusammenbauen, welches mit nur wenigen Einschränkungen den grossen Herstellern Konkurrenz macht.
Stefan Dunst
Software Engineering