Programmieren mit AI

Letztes Wochenende habe ich mit (mehr oder weniger) Hilfe von Google Bard und MS Bing AI Chat zwei Python Scripts erstellt, hier ein kurzer Erfahrungsbericht.

Projekt 1: Mastodon Unfollower Tracker

Beim einfacheren Projekt (~ 80 Zeilen), dem Unfollower Tracker, war bereits der erste Vorschlag von Bard ziemlich nah an einem lauffähigen Script. Das Hauptproblem war, dass die KI sich ein Account- Alias namens “self” zusammen halluzinierte, das wirklich sehr praktisch wäre aber leider nicht existiert. Das konnte Bard aber nach einem entsprechenden Hinweis selbst korrigieren. Die vorgeschlagene Anpassung für Paging (zunächst hatte das Script nur die ersten 40 Follower runtergeladen) hat zwar nicht wirklich funktioniert, brachte mich aber auf die richtige Spur, so dass ich den Code mit Hilfe der Mastodon API Dokumentation ohne größere Schwierigkeiten selbst anpassen konnte. So weit so gut, wenn ihr euch das Ergebnis mal anschauen wollt, der Source Code ist in Codeberg verfügbar: https://codeberg.org/loehwe/mastoUnfollowers

Projekt 2: Mastodon Follower Circles

Ermutigt von diesem Erfolg beschloss ich, ein etwas anspruchsvolleres Projekt in Angriff zu nehmen, einen Circles- Generator nach dem Vorbild von “Chirpty” (aus der guten alten Twitter Zeit, die Älteren erinnern sich vielleicht). Leider erfand Bard wieder mal ein API, das nicht existiert (“interactions”), also habe ich mir auf Basis des ersten Scripts und der API Doku die entsprechenden Calls für Favs und Posts selbst rausgesucht. Bei der Interaktion mit dem Mastodon API haben in dem Fall sowohl Bard als auch Bing AI (die ich aus lauter Verzweiflung hinzugezogen hatte) weitgehend versagt, das Zählen (wie oft hat ein Account auf welche Art interagiert) hat die KI aber mit Hilfe eines Dictionaries ganz gut implementiert.

Die Erstellung der eigentlichen Circle Grafik war der frustrierendste Teil des Experiments, von Bard erhielt ich dazu verschiedene Vorschläge mit allen möglichen Grafikbibliotheken, von denen ich aber keinen zum Laufen bringen konnte. Also nochmal “Bing AI To The Rescue”, damit konnte ich nach einigen Versuchen und manuellen Korrekturen (Floats auf Int runden und diverse Parameter für die “Pillow” Library korrigieren) wenigstens ein “falsches” Bild generieren, mit viel zu kleinen Avatarbildern und drei Kreisen mit jeweils allen Accounts. falsches Circle Image

Nach diesem “Durchbruch” ging es wieder besser voran, mit etwas Fine Tuning der Positionen, Radien etc. konnte ich relativ schnell die Fehler korrigieren und eine korrekte Grafik erzeugen. richtiges Circle Image

Es gibt im Code noch einiges an Optimierungspotenzial, aber auch dieses Script habe ich in Codeberg hochgeladen, damit ihr euch selbst ein Bild machen könnt: https://codeberg.org/loehwe/mastoCircles

Fazit

So einfach, wie man sich das vielleicht vorstellt (“generier mal ein Programm für Use Case”), ist die Code Generierung mittels KI leider nicht. Die Beispiele der KI sind zwar etwas ausführlicher als bei StackOverflow, aber die Codequalität ist sehr unterschiedlich, Bard fügt mehr Kommentare ein, Bing arbeitet etwas strukturierter (mehr Functions) und man muss IMMER mit Fehlern rechnen.

Die Stärken der KI liegen eher bei einfachen Algorithmen und Boilerplate Code als bei spezifischen API Zugriffen, deshalb kann ich mir auch vorstellen, dass eine integrierte Lösung wie Github Copilot für begrenzte Anwendungsfälle (Setter / Getter, Unit Tests oder auch mal eine einfache Funktion) besser funktioniert als mein eher ganzheitlicher Ansatz.

Aber trotz aller Schwächen und erheblichem Frustpotential hat mir die Zusammenarbeit mit Bard und Bing ermöglicht, an einem Wochenende zwei ganz nette Python Scripts für den Hausgebrauch zu schreiben, und das ohne Vorwissen über Mastodon API und mit nur sehr wenig Python- Erfahrung. Grundsätzliche Programmierkenntnisse sind aber auf jeden Fall notwendig, um mit Hilfe von KI zu brauchbaren Ergebnissen zu kommen.

____ © 2023-24 by Löwe, licensed under CC BY-NC-SA 4.0