Nachdem das Thema bereits überall in den Mainstream-Medien angekommen ist, war es Zeit, noch einmal tiefer in die Möglichkeiten der aktuellen AI-Tools einzutauchen. In Form eines kleines Workshops haben wir die Gelegenheit genutzt, die Programmier-Fähigkeiten von ChatGPT zu testen. Darüber hinaus haben wir einen kurzen Blick auf andere Tools geworfen, die für uns Entwickler interessant sein könnten.
Die Möglichkeiten von ChatGPT selbst sind natürlich vielfältig. Zum einen steht es quasi als Suchmaschine in alltagstauglicher Sprache Rede und Antwort. Mit der Einschränkung, dass aktuelle Web-Inhalte noch nicht verfügbar sind (Der derzeitige Wissensstand beschränkt sich auf Einträge bis 2021). Auch zum Formulieren von eMails, Werbetexten oder kreativen Formaten (Witze, Gedichte oder TV-Serien) hat sich das Sprachmodell bereits einen Namen gemacht.
ChatGPT für Entwickler
Was nun aber ChatGPT für Entwickler besonders interessant macht, ist die Tatsache, dass das Sprachmodell auch mit zahlreichen Programmiersprachen trainiert wurde. Das zu Grunde liegende Modell GPT-3 wird bereits im “GitHub Copilot” verwendet und hat auf diesem Wege Trainingsmaterial aus Milliarden von Codezeilen intus – in dutzenden von Programmiersprachen, die in den github Repos verwendet werden.
Der Clou ist also, dass man umgangssprachlich eine Vorgabe machen kann. Daraus wird dann von ChatGPT nicht nur ein Programmcode erzeugt, sondern es wird in den meisten Fällen auch zusätzlich relativ verständlich erklärt, wie sich das angegebene Problem auf Basis des Codes lösen lässt. ChatGPT ist also eine Art wandelndes Lexikon, das zu vielen Algorithmen und Problemen die passende Herangehensweise ausspuckt und auch gleich eine auf die konkrete Frage hin optimiertes Code-Beispiel erzeugt.
Für manche Sprachen lässt sich der Code 1:1 kopieren und ausführen. Auch kann ChatGPT HTML-Code für Webseiten erstellen. Und was beeindruckend ist: Diesen auch mit passend generiertem Content füllen! Es reicht also eine Aufforderung wie “Erzeuge eine Webseite mit einer Speisekarte für die heutige Veranstaltung.”, darauf hin spuckt ChatGPT den passenden HTML-Code aus und denkt sich auch brauchbare Menu-Vorschläge gleich mit aus. Die anschließende Aufforderung, dies als JavaScript umzubauen, erzeugte ein plausibles Code-Beispiel.
CustomFunctions erstellen per KI
Wir wurden also mutiger und haben es mit FileMaker spezifischen Beispielen versucht. Zwar konnte ChatGPT auf Anfrage den Code für eine Custom-Function erzeugen, die von 1 bis 100 zählt, wahlweise auch als rekursive Variante. Allerdings wichen einige Befehle von den Syntax-Vorgaben aus FileMaker ab. Daher war der erzeugte Code anschließend nicht direkt in FileMaker lauffähig.
Vermutlich hängt dies damit zusammen, dass FileMaker Code im vorhandenen Trainings-Material der AI bislang nicht ausreichend repräsentiert ist. Daher ähnelt der erzeugte Code anderen Script-Sprachen, die im Detail Unterschiede zu FileMaker aufweisen. Bei JavaScript Code klappt es hingegen besser mit den erzeugten Beispielen.
Nützlich kann ChatGPT dennoch sein, weil sich auch komplexe Algorithmen einfach erläutern lassen und hierzu relativ verständliche Code-Beispiele erzeugt werden. Ob diese immer zu 100% fehlerfrei sind, dafür gibt es allerdings keine Garantie, weil auch hierbei das verwendete Trainingsmaterial einen Einfluss hat und natürlich nicht absolut frei von Fehlern ist!
Code-Analyse und Fehlerkorrekturen
Wir haben auch den umgekehrten Weg versucht und ChatGPT mit einem fehlerhaften Script gefüttert, verbunden mit der Aufforderung diesen zu korrigieren. Dies klappte auf Anhieb und ChatGPT wies auf eine fehlende Variable hin und erläuterte welche Auswirkungen dies im Script-Ablauf haben würde.
Allgemeine Fragen zur Funktionsweise von FileMaker und bestimmten Eigenschaften des Programms konnte ChatGPT jedoch souverän beantworten.
ScreenShots von unseren Experimenten finden sich auf den Folien von Stammtisch, die hier zum Download bereit stehen:
https://www.dropbox.com/s/fqablkzs1rfkofn/FileMaker%20Stammtisch%202023-01.pdf?dl=0
Die KI musiziert und rappt
Zwischenzeitlich rauchten nicht nur den Teilnehmern die Köpfe aufgrund der unerwartet weitreichenden Implikationen dieses mächtigen Tools. Auch ChatGPT selbst benötigte einige Verschnaufpausen, da der Dienst in kürzester Zeit dermaßen populär geworden ist, dass die Server aufgrund der vielen Anfragen immer wieder überlastet sind.
Nach reichlichem Experimentieren und hitziger Diskussion baten wir ChatGPT als spaßigen Abschluss, sich einen Rap-Song von Dieter Bohlen über FileMaker Programmierer auszudenken. Das Ergebnis kam prompt in englischer Sprache. Die vom AI-Tool “Tuna” vertonte und gesungene Fassung gibt es hier zum Download:
https://www.dropbox.com/s/ifto1n5per8i2ud/ChatGPT%20FileMaker%20Stammtisch%20Song.mp4?dl=0
Über musikalischen Geschmack lässt sich sicher beim nächsten Mal noch trefflich diskutieren…. dennoch erstaunlich, wozu diese Tools anhand weniger Eingaben in der Lage sind!
Linkliste
Hier die zugehörigen Links zu den Tools:
ChatGPT
https://openai.com/blog/chatgpt/
httpie
AI gestützte Alternative zu Postman für den Zugriff auf Web-APIs
https://httpie.io/
GitHub Copilot
Enthält die gleiche Technologie wie ChatGPT speziell für die Verwendung mit Programmier-Code
https://github.com/features/copilot
Copilot CLI
Prototyp für umgangssprachliche Unterstützung in der Command-Line
https://githubnext.com/projects/copilot-cli/
MidJourney
Bilder erstellen aus Texteingaben oder auf Basis eigener Vorlagen
https://www.midjourney.com/home/
Dall-e 2
Bilder oder Kunstwerke erstellen aus Texteingaben
https://openai.com/dall-e-2/
Stable Diffusion
Bilder erstellen aus Texteingaben (SDK auf github verfügbar)
https://stablediffusionweb.com
Tuna
Songs aus einer Textvorlage erstellen und in verschiedenen Stimmen vorsingen
https://tuna.voicemod.net