"A journalist who is also a bad programmer, stylized in the style of Gary Larson"
Comic-Bild eines bärtigen Mannes, der schreibt; neben ihm ein freundlicher Roboter

Quickie: So schreibt die KI deinen Programmcode mit!

Eine geschätzte Kollegin hat mir beim Gespräch vor einigen Wochen gesagt, dass das das manchmal schon sehr nerdy ist, was ich hier blogge. Heute wird’s mal richtig was aus der Nische: ein Tipp für die paar Leute genau wie mich – die nicht besonders gut programmieren, es trotzdem gelegentlich tun, und sich dabei von KI möglichst elegant, schnell und einfach helfen lassen wollen.

Midjourney-Bild: “A friendly, smiling, savvy AI robot supporting a middle-aged journalist with glasses in writing computer code”; Comic-Vorlage über –sref

Derzeit hält mich die Europawahl beschäftigt. Vorige Wahl- und Abstimmungsergebnisse habe ich mit Programmen in der Sprache “R” abfragen und anzeigen lassen, diesmal programmiere ich in Python, weil das auch bei uns mehr Leute können.

Ich bin allerdings nicht der routinierteste Python-Programmierer und wurstele mich so durch. Wie geht das nochmal bei einem CURL-Aufruf mit diesen verdammten (wenn auch zugegebenermaßen äußerst praktischen) Dictionaries? Und dabei lasse ich mir von KI helfen – die überhaupt sehr gut ist, wenn man Unterstützung bei ersten Schritten braucht.

Ein KI-Assistent beim Programmieren hat sich bei mir bewährt, wenn

  • ich nicht wusste, wie man eine bestimmte Funktion verwendet – wie man zwei Python-Dataframes miteinander verbindet, oder welche Parameter man beim Einlesen einer etwas unkonventionellen CSV-Datei setzen muss.
  • ich etwas erklärt haben möchte – wie war das nochmal mit .loc? Als Python-Anfänger brauche ich viel Unterstützung und Erklärung; die KI beschreibt und hilft mir lernen.
  • ich Fehler finden möchte – weshalb tut der Code nicht das, was ich erwarte? Kann man das so machen? 

Womit zumindest kleinere Modelle sich überraschend schwer tun, sind simple Tippfehler – ein kleines “x” statt einem großen hat die KI übersehen – aber sie hilft zumindest, über den toten Punkt wegzukommen und einen anderen Ansatz zu finden.

Anweisung an die KI: "Wait 30 seconds" - der generierte Python-Code:<br />
import time<br />
time.sleep(30)
Wie ging das nochmal mit 30 Sekunden Warten in Python? Die KI kennt die Antwort praktisch sofort – viel schneller als suchen.

KI als Programmier-Assistent ist also ein großer Gewinn. Ich könnte ChatGPT nutzen; das schreibt und erklärt mir auch in der Kostenlos-Variante richtig gut Python-Code. Aber das ewige Hin- und Herspringen zwischen Bildschirmfenstern ist nervig, die KI weiß oft nicht genug über den Kontext meines Programms, und an sich hätte ich die Vorschläge gern, während ich sie tippe. Könnte man das nicht direkt beim Programmieren…?

Kostenlos-Ersatz für kommerziellen KI-Assistenten

Leute, die vom Programmieren leben, kennen seit einem knappen Jahr den Github Copilot. Das war eine der ersten kommerziellen KI-Anwendungen und ist eine Variante des ChatGPT-Sprachmodells, die elegant in einen Code-Editor eingeklinkt ist: sie analysiert, kommentiert, generiert aus Kommentaren ganze Codeblöcke. Sehr praktisch – aber nicht billig.

Zum Glück gibt es inzwischen eine Sparfuchs-Alternative namens “Continue” für uns Gelegenheitsprogrammierer. Sie setzt voraus, dass man die kostenlose Programmierumgebung “Visual Studio Code” nutzt – für die Arbeit mit Python und Python-Notebooks funktioniert sie ganz gut, auch wenn mir der Komfort der gewohnten RStudio-Umgebung fehlt. Und. Das VSC ist wie Github und der Copilot ein Microsoft-Produkt. (Man ist inzwischen in der Open-Source- und ganz besonders in der KI-Welt von Microsoft ziemlich umzingelt – aber das ist ein Thema für einen anderen Tag.)

Mit ein paar Klicks haben auch Bisher-Nicht-Programmierer alles Nötige auf ihrem Computer installiert, um Python-Programme selbst schreiben und bearbeiten zu können – und sich dabei von der KI unterstützen und beraten zu lassen. Funktioniert unter Windows, Linux, oder wie bei mir auf dem Mac.

Ladebildschirm der "Continue.dev"-Erweiterung für VSC

Schritt 1: VSC und Continue installieren

  • Wer noch kein Python auf dem Rechner hat: Irgendwann muss man ja mal damit anfangen. Ich empfehle das Installations-Paket Miniconda.
  • Das VSC herunterladen und installieren (Download-Seite)
  • VSC-Erweiterungen: "Continue" eingeben und die Erweiterung herunterladen und installierenVSC starten und auf den Erweiterungs-Button klicken – das kleine Symbol am linken Bildschirmrand, das wie vier Kacheln aussieht, aus denen eine rausspringt. Nach der Erweiterung “Continue” suchen und auf “Installieren” klicken.
  • Dann noch gleich noch gleich diese Erweiterungen mitinstallieren: “Python”, “Python Debugger” (von Microsoft) und “Jupyter” (ebenfalls von Microsoft). Damit kann man in VSC elegant Python-Programme schreiben und ausprobieren.
  • VSC einmal beenden und neu starten. Die Continue-Erweiterung ist jetzt geladen – einrichten werden wir sie im nächsten Schritt.

Nur: wo ist sie? Ich habe mich echt totgesucht, als ich sie das erste Mal aktivieren wollte. Am einfachsten ist, einmal Ctrl-L zu drücken (auf dem Mac: Cmd ⌘-L) Ladebildschirm der "Continue.dev"-Erweiterung für VSCund damit die “Sekundäre Seitenleiste” zu öffnen – was man auch über eine Schaltfläche an der rechten, oberen Ecke des Bildschirms tun kann.

Jedenfalls: da meldet sich die Continue-Erweiterung, und bietet uns in der unteren rechten Ecke jetzt noch ein kleines Zahnrädchen-Symbol für die Einstellungen an und auf der linken Seite daneben eine Schaltfläche für das ausgewählte KI-Modell und ein Plus-Symbol. Dort müssen wir jetzt noch ein paar Installationsarbeiten erledigen: Continue braucht einen API-Key, gewissermaßen einen Werksausweis, mit dem unser Computer auf die ChatGPT-KI zugreifen kann..

Wie komme ich an einen API-Key? Da die Nutzung der KI über die API nach Verbrauch abgerechnet wird, ähnlich wie Strom oder Wasser, will OpenAI auch bei Kostenlos-Konten meine Kreditkartendaten. Das ist nicht teuer, für die Erzeugung von 5.000 Worten berechnet die KI etwa einen Cent. So geht’s: 

  • Bei dieser OpenAI-Seite mit den normalen ChatGPT-Zugangsdaten anmelden
  • Auf “Add Payment Details” klicken und eine Kreditkarte hinterlegen
  • Das OpenAI-Konto über die Kreditkarte mit, sagen wir, 10 Dollar aufladen – das reicht eine Weile
  • Oben rechts auf das “Dashboard” wechseln und dann am linken Rand auf die Seite für die API-Keys – oder direkt über diesen Link
  • “Create new secret key” klicken. Ihm der Einfachheit halber alle Berechtigungen (permissions) lassen. Die ewig lange Zahlen- und Buchstabenfolge (“sk-883n67na…”) ist der API-Key – kopieren.

Achtung: Wenn der einmal erzeugt ist, kann man ihn sich nicht wieder anzeigen lassen. Wer ihn nicht an sicherer Stelle in eine Textdatei speichern kann, kann aber später einfach den vergessenen löschen und einen neuen erzeugen.

  • Jetzt zurück zum Visual Studio Code
  • Auf das kleine Plus am unteren Rand des rechten Seitenfensters klicken – hier wähle ich das Modell aus, die KI, die Continue nutzen soll. Jetzt: Klick auf OpenAI, den Anbieter von ChatGPT.
  • Den vorher kopierten API-Key mit Strg-C bzw. Cmd -C in das Feld “apiKey” einkopieren
  • Das Modell GPT-3.5 Turbo auswählen. Besser wäre zwar das neue GPT-4o – aber das steht nicht gleich zur Verfügung, wenn man noch nie einen API-Key genutzt hat.

OpenAI
Requires API Key
Use gpt-4, gpt-3.5-turbo, or any other OpenAI model. See here to obtain an API key.


Enter required parameters
apiKey
Advanced (optional)
Select a model preset

Geschafft! Jetzt können wir KI beim Programme schreiben einsetzen:

  • Eine neue Python-Datei öffnen (VSC-Menü “Datei”/”Datei öffnen..”/”Python-Datei”
  • Strg-I klicken (oder auf dem Mac: Cmd ⌘-I) – und eingeben, was ich will: “Schreibe ein Python-Programm, das die ersten hundert Primzahlen berechnet”. Nach ein paar Augenblicken generiert die KI Code – den grün unterlegten Vorschlag kann ich entweder übernehmen oder verwerfen.
  • Programmcode markieren und Strg-L klicken (Mac: Cmd ⌘-L) – und unter den Code Fragen dazu stellen: “Explain.”

Continue hat noch ein paar Sonder-Befehle, um Programmier-Handbücher zu durchsuchen oder Code zu überarbeiten – die schaut man sich am besten auf dieser Überblicks-Seite auf den GIFs an, die praktisch dokumentieren, wie man sie benutzt. Und: ich kann mir von KI Vervollständigungen vorschlagen lassen; im Idealfall fange ich einen Programmteil an, und die KI schlägt vor, wie er enden soll, und ich übernehme es einfach mit Tab. Für die automatische Textvervollständigung ist die große ChatGPT-KI allerdings nicht gut geeignet – dafür sollte ich ein kleines Modell nutzen, das lokal auf meinem Rechner läuft.

Schritt 2: Ein lokales Sprachmodell macht OpenAI überflüssig

Es muss nicht immer GPT-4 oder Claude 3 sein! Die sind ja bekanntlich “Cloud-Dienste”, das heißt: sie laufen auf den Rechnern der Anbietern, und man nutzt sie über das Internet, mit allen verbundenen Nachteilen. Einfachere KI-Modelle laufen aber gut auf dem eigenen Rechner.

Ich rate zu folgendem:

  • ollama installieren – das ist eine Umgebung für KI-Sprachmodelle; sie richtet gewissermaßen die Wohnung ein, in der Sprachmodelle auf meinem Rechner arbeiten können. Das Open-Source-Projekt ollama ist mit einem Klick installiert, wird gut gepflegt und aktuell gehalten, und bietet eine Vielzahl von kleineren oder größeren KI-Modellen zur Auswahl. Auf meinem privaten 16GB-Mac habe ich mich für das Modell “deepseek-coder:6.7b” entschieden. Das funktioniert auch gut für den im letzten Abschnitt beschriebenen Autocomplete.
  • Ein Modell herunterladen: Dazu muss ich ollama-Befehle auf der Kommandozeile… oh, mein Gott! Ich weiß, die Worte lösen bei nicht ganz so technikaffinen Menschen Besorgnis aus. Aber ich muss gar nicht das MacOs-Programm “Terminal” öffnen (bzw. auf Windows-Rechnern die “Eingabeaufforderung“, und von den Linux-Klugscheißern reden wir gar nicht.) Das kann ich auch bequem in VSC erledigen – eine der Schaltflächen in der rechten oberen Ecke schaltet den VSC-Fenster-Streifen am unteren Bildschirmrand in ein Terminal-Fenster um, wo ich jetzt das Kommando tippen kann, mit dem ollama das ungefähr 4GB große KI-Modell herunterlädt:
     ollama pull deepseek-coder:6.7b
  • Nach Abschluss des Downloads kann ich mit ollama list nachschauen, welche KI-Modelle geladen sind. Terminal zu – wird im Moment nicht mehr gebraucht.

(base) jan@untergeekAir ~ % ollama list
NAME                    ID              SIZE    MODIFIED     
aya:latest              7ef8c4942023    4.8 GB  5 days ago  
phi3:latest             a2c89ceaed85    2.3 GB  2 weeks ago 
deepseek-coder:6.7b     ce298d984115    3.8 GB  2 months ago
mistral:latest          d364aa8d131e    4.1 GB  7 months ago

  • Jetzt müssen wir continue noch sagen, dass es das KI-Modell auf meinem Rechner findet – dazu nutzen wir mal nicht die “Plus”-Schaltfläche, über die wir oben unseren API-Key eingetragen haben, sondern das kleine Zahnrad ganz rechts unten unter der Continue-Fensterleiste am rechten Bildschirmrand. Das Zahnrädchen öffnet eine Datei namens config.json mit den Einstellungen – sie findet sich übrigens im Nutzer-Dateiverzeichnis im versteckten Ordner .continue – und dort tragen wir im Abschnitt “Models” einen Abschnitt für ollama ein. Siehe Bild. Und wer den Autocomplete nutzen möchte, geht ganz ans Ende der Datei und ändert im Abschnitt tabAutocompleteMode noch den “model”-Eintrag so ab: "model": "deepseek-coder:6.7b" — Datei speichern und schließen (Klick auf das x im Tab mit dem Dateinamen), fertig.

"models": [
    {
      "title": "Ollama",
      "provider": "ollama",
      "model": "AUTODETECT"
    },
    {
      "title": "OpenAI",
      "provider": "openai",
      "model": "gpt-4o",
      "apiBase": "https://api.openai.com/v1/",
      "apiKey": "<your-api-key>"
    }Beim ersten Mal dauert es ein paar Sekunden, bis die KI lokal geladen ist und läuft, und die schnellste ist sie auch nicht, aber: Jetzt hilft mir die kleine deepseek-KI ohne jede Internetverbindung auf meinem Rechner beim Programmieren! Und das ziehe ich dem ChatGPT-Modell GPT-4 deutlich vor.

Denn obwohl sie viele Lücken hat und viele Dinge enthält, die sehr zweifelhaft oder zumindest wahnsinnig ungenau sind, ist sie dem größeren, viel langatmigeren Modell in zweierlei Hinsicht überlegen. Erstens ist sie ein bisschen billiger, und zweitens stehen im Datenschutz-Kleingedruckten in großen, freundlichen Buchstaben die Worte KEINE PANIK: Von dem, was ich dem lokalen Sprachmodell über meinen Code verrate, wird kein Buchstabe an irgendeinen Server bei OpenAI, Microsoft oder sonstwo gefunkt. Das funktioniert selbst, wenn man in Deutschlands Funklochwüsten ohne Netz unterwegs ist! Und API-Kosten fallen auch keine an.

…und wie immer: Keine Wunder von der KI erwarten!

Eins sollten wir bei all dem nicht vergessen: Auch eine programmierende KI verzapft mitunter haarsträubenden Unfug. Man sollte immer nachvollziehen, was das Sprachmodell da vorgeschlagen hat. Die KI ist ein Assistent, kein Subunternehmer.

Gerade Menschen, die erste Programmier-Schritte gehen, sollten sich also von der KI möglichst viel erklären lassen – das Ziel ist: alles, was die KI tut, müsste ich im Prinzip auch selber können, auf jeden Fall aber verstanden haben. Erst dann darf ich es mit gutem Gewissen an die KI delegieren.

Auch lesenswert:

Kurzlink zu diesem Artikel: https://www.janeggers.tech/y9rw

Neue Posts einfach per Mail zugeschickt bekommen? Dann hier eintragen; die Mails kannst du natürlich jederzeit wieder abbestellen.

Loading

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert