KI und Ich

Ein Blog über KI, Auswirkungen und Experimente von Karlheinz Agsteiner

Mit LLMs Apps bauen, die LLMs brauchen

Hirnverzwirbelnd

Hätte ich vor einigen Monaten gedacht, ich würde ein LLM verwenden, um eine Spezifikation zu schreiben, mit der ich ein LLM bitte, eine App zu bauen, in der ich ein LLM bitte, einen Spielerzug zu bewerten? Wohl eher nicht. Aber so ist's passiert:

Teil 1: "Speccer" - Kollaboratives Spezifizieren von Apps

Eine App, die erstaunlicherweise sogar funktioniert: kollaboratives Erzeugen von Spezifikationen, die als Prompt zum Erstellen einer App verwendet werden sollen. Die Idee ist: mehrere Autoren registrieren sich bei der App. Nach einer initialen Beschreibung, welche App man spezifizieren will, gibt's
einen langen Zyklus:

  1. LLM erzeugt erste Spec, die jeder der Autoren sehen kann.
  2. LLM erzeugt eine Menge von Fragen, die noch zu beantworten sind, bis die Spezifikation so weit ist, dass ein LLM die App bauen kann.
  3. Alle Autoren beantworten die Fragen.
  4. LLM baut basierend auf den Antworten eine verfeinerte nächste Version der Spec.
    Dann wieder zu 2.

Speccer in Aktion

Ich habe dabei nur das entwickelt, was ich selbst brauche, dh der Speccer kann immer nur an einer Spezifikation arbeiten, es gibt kein echtes User-Management, keine Passwörter, kein Undo.

Aber: er funktioniert prima.

Zum Selbst-Ausprobieren: https://github.com/kagsteiner/Speccer/tree/main

Du brauchst eine node.js Installation und ein kleines bisschen Entwickler-Kenntnisse. Und vor allem einen OpenAI API Key

Teil 2: "Wortkunst" - eine kreative Scrabble-Variante

Neulich beim Scrabble spielen habe ich mich mal wieder über das Konzept geärgert, das durch die doppelten/dreifachen Wert Felder und die Buchstabenpunkte ein unschön taktisches Spiel bevorzugt. Eigentlich will man doch schöne Wörter legen. Lange Wörter. Aber das gibt oft dem Gegner die Möglichkeit, richtig abzusahnen.

Also, Speccer angeworfen und eine Variante spezifiziert, in der man die Punktevergabe einem "AI Orakel" überlässt, das die gefundenen Wörter anhand von Kreativität, Seltenheit und Schönheit mit einer Punktzahl von 1-100 bewertet.

Nach drei runden teils ziemlich technischer Fragen zu Details wie dem genauen Matchmaking war die Spec fertig. ChatGPT hat zweimal nachbessern müssen - erst hat der "Start Game" Button nicht funktioniert, dann hat die Mistral-LLM ihre JSON-Antwort in Dreifach-Quotes zurückgegeben. Noch eine kleinigkeit im Design und fertig war die App.

Wortkunst

Ja, kann man noch hübscher machen aber hey, nach insgesamt 2 Stunden von "Idee im Kopf" zu diesem Ergebnis. Nicht schlecht.

Dann noch 30 Minuten gebraucht, bis das Spiel auf meiner lokalen Synology (die nicht im Internet ist) läuft, jetzt kann ich das mit der Familie ausprobieren. (ein Umsonst-Spiel, das mich pro LLM-Call Geld kostet, mag man nicht ohne Weiteres ins Netz stellen...)

Hirnverzwirbelnd Teil 2

Es ist schon erstaunlich, wie rasant sich das Software Entwickeln mit LLMs entwickelt. Ich würde ein Vorgehen wie das oben keinesfalls für professionelle Anwendungen empfehlen, die ich verkaufe, für die ich Support leisten muss, egal, ob mein LLM die Grätsche macht. Das kann weiterhin passieren. Und wenn du dann vor 100k Zeilen Code stehst, alles mit nem LLM Gevibecoded, von dem du keine Ahnung hast, wie es im Detail funktioniert, ja, das ist, glaube ich, die ultimative Entwicklerhölle.

Aber für eigene Spaß-Apps: Super.