Java Programm mit KI in 1 Stunde erzeugen

Das Grok-2-Modell das im August 2024 veröffentlicht wurde, bietet eine Reihe von Verbesserungen und Funktionen, unter anderem ist das Kontextfenster von 131072 Tokens möglich. Also mal in Perplexity das Grok-2-Modell für ein Java Programm-Generierung verwenden. Hier mal das Endergebnis vorweg:

Ich hatte die Idee, mal für jeden Tag, bis zur Rente einen Eintrag in meinen Kalender mit Counter eintragen zu lassen. Also z.B, in der Form „Noch 33 Tage bis zur Rente“. Rausgekommen ist dann ein universelles Programm, das auch für alle anderen Ereignisse verwendet werden kann, also z.B. noch „55 Tage bis zum Urlaub“ usw.

Ganz zum Schluss, gibt es auch das Programm zum kostenlosen Download.

Hier mal alle Schritte bzw. Promps die an die KI gingen.

Vorraussetzung sind ein Gitlab Account, Eclipse IDE, Maven, Java 21 und Perplexity mit Grok-2-Modell

Die Schritte sind jeweils im GitLab Repo als Tags bzw. Commit zu sehen.

Also:
-Ein Projekt in Gitlab anlegen: https://gitlab.com/IT-Berater/twrente
-Eclipse starten
-Projekt clonen und importieren git clone https://gitlab.com/IT-Berater/twrente
-als Maven Projekt setzen
-Java Version 21 setzen

Nun zur 1. KI Anfrage mit Prompt in Perplexity:

Antwort von der KI ua.:
Funktionsweise
1. Swing-GUI:
• Die GUI enthält ein Textfeld für die Eingabe des Zieldatums und einen Button zum Generieren der Kalenderdatei.
• Das eingegebene Datum wird überprüft, ob es in der Zukunft liegt.
2. ICS-Datei-Erstellung:
• Das Programm erstellt Kalender-Einträge für jeden Tag rückwärts vom Zieldatum bis zum aktuellen Datum.
• Jeder Eintrag wird im iCalendar-Format (VEVENT) gespeichert.
3. Speichern der Datei:
• Die generierten Termine werden in einer Datei namens calendar.ics gespeichert.

Dann habe ich das generierte Programm in ein Java Projekt importiert und gestartet. Version 1 nach Gitlab hochladen und Tag v0.0.1 gesetzt (25 Min hat das gedauert).
Kurzer Test, Gui läuft schon mal:

Die nächsten 15 Min habe ich mit Anpassungen verwendet. Der 2. Prompt:

Antwort ua.:
Um die Gesamtzahl der Tage bis zum Zieldatum zu berechnen und jeden Kalendereintrag entsprechend anzupassen, können wir das Java-Programm wie folgt erweitern. Die Kalendereinträge enthalten nun den Text “Noch ? Tage bis zur Rente”, wobei ? durch die verbleibende Anzahl an Tagen ersetzt wird.

Der 3. Prompt:

Antwort Änderungen und Funktionsweise
1. Rückwärtslaufender Countdown:
• Der Countdown startet mit der Gesamtanzahl der Tage (totalDays) zwischen dem heutigen Datum und dem Zieldatum.
• Für jeden Tag wird daysRemaining um 1 reduziert.
2. Iterieren vom heutigen Datum:
• Die Schleife beginnt beim aktuellen Datum (today) und läuft vorwärts bis zum Zieldatum (targetDate).
3. Anpassung des Kalendereintrags:
• Der SUMMARY-Text lautet weiterhin: “Noch ? Tage bis zur Rente”.
• Das ? wird durch den aktuellen Wert von daysRemaining ersetzt.

Also mit KI in 40 Minuten zum ersten Ergebnis wie gewünscht. Jetzt noch etwas weitere Kosmetik.

4. Prompt:

Antwort ua.:
1. Eingabeformat: Das Datum wird nun im Format dd.MM.yyyy eingegeben.
2. Textänderung: Der Titel des Fensters und die Beschriftung des Labels wurden zu “Datum des Renteneintritts” geändert.
3. UID-Anpassung: Die UID enthält keine E-Mail-Adresse mehr, sondern nur das Datum.
4. Beenden-Button: Ein zusätzlicher Button wurde hinzugefügt, um das Programm zu beenden.

Endergebnis:

5. Prompt:Test muss sein:

6. Prompt:

Nach dem Test habe ich festgestellt, das es besser währe, ein ganztägiges Kalenderereignis zu machen. Alo noch ein Fix nach Test:

Antwort von der KI ua.:

Um die Termine als ganztägige Ereignisse im Kalender einzutragen, müssen die Felder DTSTART und DTEND angepasst werden, sodass sie nur das Datum enthalten, ohne eine Uhrzeit. Im iCalendar-Format wird dies durch das Hinzufügen des Parameters VALUE=DATE erreicht. Ganztägige Ereignisse beginnen um Mitternacht und enden am Ende des Tages.

So, die Stunde ist nun um, einige Kleinigkeiten wurde auch per Hand noch angepasst, wie rename der Klassen und JUnit Test bzw. Methode auf public gesetzt. Hier das Ergebnis:

Dann noch ein Diagramm generieren lassen:

ablauf

Nun hatte ich noch die Idee, alles zu generalisiere, so das man das Programm nicht nur für die Rente verwenden kann.

7. Prompt:

Dann habe ich noch manuell etwas Refactoring gemacht, GUI von Logik getrennt, pom.xml angepasst und alles nach Maven-Central geladen. So sieht es nun aus:

TWRente final 7

Hier kann man das Programm laden https://gitlab.com/IT-Berater/twrente/-/tags links auf den Pfeil neben dem Papierkorb dann auf „Artefakt herunterladen“ das Zip auspacken und auf der Konsole starte mit:

java -jar de.wenzlaff.twrente-1.1.1-jar-with-dependencies.jar

und es startet das Programm. Das Ergebnis wird dann in der calendar.ics Datei zu finden sein.

Vorhandene Dateien werden noch überschrieben.

Der Quellcode, kann wie geschrieben hier angeschaut werden.