5. Lösen der drei Probleme mit ChatGPT
5.1. Einführung
Hier ist ein erster Screenshot einer ChatGPT-Sitzung:
![]() ![]() |
- In [1-3] werden die drei Probleme, die ChatGPT ;
- In [4] wurde der URL von ChatGPT ;
- In [5] wurde die verwendete Version von ChatGPT ;
ChatGPT ist ein Produkt von OpenAI, das unter URL [https://chatgpt.com/] erhältlich ist. Um einen Verlauf Ihrer Frage-/Antwort-Sitzungen wie oben beschrieben zu haben, müssen Sie ein Konto einrichten. Außerdem begrenzt ChatGPT, wie alle anderen getesteten IA, die Anzahl Ihrer Fragen und die Anzahl der hochgeladenen Dateien. Wenn dieses Limit erreicht ist, ist die Sitzung beendet und Ihnen wird angeboten, sie zu einem späteren Zeitpunkt fortzusetzen. Die von ChatGPT gesetzten Grenzen werden sehr schnell erreicht. Um dieses Tutorial zu erstellen, musste ich ai ein kostenpflichtiges Abonnement für einen Monat abschließen.
Die Schnittstelle von ChatGPT ist wie folgt:
![]() |
- In [1], um Dateien an die gestellte Frage anzuhängen ;
- In [2] wurde die gestellte Frage ;
- In [3], um die Ausführung des IA ;
5.2. Das Problem 1
Die Frage an ChatGPT:
![]() |
ChatGPT antwortet korrekt.
5.3. Das Problem 2
Das ist die Berechnung der Steuer mit dem PDF. Um ehrlich zu sein, werden wir den von Gemini erzeugten PDF verwenden, der Fehler im ursprünglichen PDF korrigiert.
![]() |
- In [1] wurde der von Gemini erzeugte PDF angegeben;
- In [2] wurde der Einheitstest hinzugefügt, mit dem Gemini seine Überlegenheit demonstrierte:
Wir starten ChatGPT. Er braucht etwa drei Minuten, um seine Antwort zu generieren. Im Gegensatz zu Gemini liefert er einen funktionierenden Link, um den erzeugten script abzurufen. Wir laden ihn in PyCharm :
![]() |
Der script [chatGPT1] funktioniert beim ersten Versuch. Hier gibt es kein Foto, bei diesem Problem war ChatGPT besser als Gemini.
Der von script [chatGPT1] bereitgestellte ChatGPT ist wie folgt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 | |
5.4. Das Problem 3
Nun wird ChatGPT gebeten, die Regeln zur Berechnung der Steuer im Internet zu suchen:
![]() |
Diesmal geben wir nicht den PDF an, der die zu beachtenden Rechenregeln vorgab. Wir geben nur unsere Anweisungen in der Textdatei an. Wir erinnern daran, dass diese Textdatei nun 12 Unit-Tests enthält, nachdem wir zu den ursprünglichen 11 Tests denjenigen hinzugefügt haben, den Gemini verwendet hat, um zu zeigen, dass mein ursprünglicher PDF fehlerhaft war.
ChatGPT antwortet innerhalb von 8 Minuten, gibt einen Link zum Herunterladen des erzeugten script an. Nach dem Hochladen in PyCharm besteht dieser script alle 12 Tests. Auf beide gestellten Probleme hat ChatGPT also gleich beim ersten Mal richtig geantwortet und damit Gemini übertroffen.
ChatGPT gibt in seiner Antwort seine Quellen an:
![]() |
Es gibt nichts zu sagen, es ist eine gute Arbeit.
Jetzt können wir ihn bitten, wie wir es mit Gemini getan haben, einen PDF für Schüler zu generieren.
![]() |
Die Antwort von ChatGPT erhielt er erst nach einigem Hin und Her, da der erzeugte PDF eine Schriftart verwendete, bei der Zeichen durch ein Quadrat ersetzt wurden. Aber schließlich erzeugte er PDF. Ich gebe ihn weiter, weil er andere Regeln als Geminis PDF liefert und ich mich damals fragte, wer Recht hat. Wir werden das untersuchen.
![]() |
![]() |
![]() | ![]() |
![]() |
Der Unterschied zu Geminis PDF liegt in der Berechnung des Abschlags. Die beiden IA haben nicht denselben Ansatz. Gemini hatte geschrieben:
![]() |
![]() |
![]() |
Die beiden IA haben zwei unterschiedliche Ansätze. Wer hat Recht?
5.5. Das Problem 4
Wir werden ChatGPT bitten, sich bei der Steuerberechnung auf seinen PDF zu stützen:
![]() | ![]() |
Wie die Male zuvor erzeugt er einen script Python, der beim ersten Versuch funktioniert. Wir hatten in den Anweisungen einen zusätzlichen Test hinzugefügt:
Alle 13 Tests wurden erfolgreich bestanden.
5.6. Zurück zu Gemini
Nun kehren wir zu Gemini zurück, dem wir den PDF von ChatGPT präsentieren werden. Da sich die in diesem PDF implementierten Regeln von denen unterscheiden, die in Geminis PDF implementiert sind, kann man sich fragen, was passieren wird:
![]() |
Gemini erzeugte zunächst einen script Python, der Tests verpatzte. Wir präsentierten ihm die Logs :
Frage 2
![]() |
Frage 3
Es gibt immer noch Fehler. Wir machen weiter.
![]() |
Frage 4
Immer wieder Fehler bei der Ausführung :
![]() |
Diesmal ist es gut.
Es ist dennoch faszinierend, dass bei PDF mit recht unterschiedlichen Rechenregeln die IA beide korrekte Ergebnisse liefern.
Gemini wird folgende Frage gestellt:
![]() |
Die vollständige Frage lautet wie folgt:
Die Antwort von Gemini ist kategorisch:
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
5.7. Was sagt ChatGPT dazu?
Man stellt ChatGPT die gleiche Frage, die man auch Gemini gestellt hat.
![]() |
Die Antwort von ChatGPT lautet wie folgt:
![]() |
![]() |
Deshalb schlägt uns ChatGPT einen Einheitentest vor, um die beiden Methoden gegeneinander abzuwägen. Wir duplizieren :
- Der script [gemini3], den Gemini mit seinem PDF [Das Problem laut Gemini] als Quelle erzeugt, wird in den script [gemini4] dupliziert;
- Der script [chatGPT3], der von ChatGPT unter Verwendung seines PDF [Das Problem nach ChatGPT] als Quelle erzeugt wurde, wird in script [chatGPT4] dupliziert;
![]() | ![]() |
Außerdem fügen wir in jedem der Skripte [gemini4, chatGPT4] den von ChatGPT vorgeschlagenen Einheitstest hinzu, um die beiden IA zu trennen.
Die Ausführung von [gemini4] führt zu folgenden Ergebnissen:
C:\Data\st-2025\dev\python\code\python-flask-2025-cours\.venv\Scripts\python.exe "C:/Program Files/JetBrains/PyCharm 2025.2.1.1/plugins/python-ce/helpers/pycharm/_jb_unittest_runner.py" --path "C:\Data\st-2025\dev\python\code\python-flask-2025-cours\outils ia\gemini\gemini4.py"
Testing started at 17:45 ...
Launching unittests with arguments python -m unittest C:\Data\st-2025\dev\python\code\python-flask-2025-cours\outils ia\gemini\gemini4.py in C:\Data\st-2025\dev\python\code\python-flask-2025-cours
SubTest failure: Traceback (most recent call last):
File "C:\Program Files\Python313\Lib\unittest\case.py", line 58, in testPartExecutor
yield
File "C:\Program Files\Python313\Lib\unittest\case.py", line 556, in subTest
yield
File "C:\Data\st-2025\dev\python\code\python-flask-2025-cours\outils ia\gemini\gemini4.py", line 234, in test_cas_verifies_simulateur_officiel
self.assertAlmostEqual(calcul_impot, attendu_impot, delta=1, msg="Échec sur le montant de l'impôt")
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AssertionError: 2669 != 2270 within 1 delta (399 difference) : Échec sur le montant de l'impôt
Ran 1 test in 0.010s
FAILED (failures=1)
One or more subtests failed
Failed subtests list: [Test 'test12' avec entrée (2, 0, 43333)]
Process finished with exit code 1
Also scheitert Gemini an dem von ChatGPT hinzugefügten Test.
Die Ausführung von [chatGPT4] führt zu folgenden Ergebnissen:
C:\Data\st-2025\dev\python\code\python-flask-2025-cours\.venv\Scripts\python.exe "C:\Data\st-2025\dev\python\code\python-flask-2025-cours\outils ia\chatGPT\chatGPT4.py"
Test (2, 2, 55555) -> obtenu (impôt=2814, décote=0, réduction=0) | attendu (2815, 0, 0) | OK
Test (2, 2, 50000) -> obtenu (impôt=1384, décote=384, réduction=347) | attendu (1385, 384, 346) | OK
Test (2, 3, 50000) -> obtenu (impôt=0, décote=721, réduction=0) | attendu (0, 720, 0) | OK
Test (1, 2, 100000) -> obtenu (impôt=19884, décote=0, réduction=0) | attendu (19884, 0, 0) | OK
Test (1, 3, 100000) -> obtenu (impôt=16782, décote=0, réduction=0) | attendu (16782, 0, 0) | OK
Test (2, 3, 100000) -> obtenu (impôt=9200, décote=0, réduction=0) | attendu (9200, 0, 0) | OK
Test (2, 5, 100000) -> obtenu (impôt=4230, décote=0, réduction=0) | attendu (4230, 0, 0) | OK
Test (1, 0, 100000) -> obtenu (impôt=22986, décote=0, réduction=0) | attendu (22986, 0, 0) | OK
Test (2, 2, 30000) -> obtenu (impôt=0, décote=0, réduction=0) | attendu (0, 0, 0) | OK
Test (1, 0, 200000) -> obtenu (impôt=64210, décote=0, réduction=0) | attendu (64211, 0, 0) | OK
Test (2, 3, 200000) -> obtenu (impôt=42842, décote=0, réduction=0) | attendu (42843, 0, 0) | OK
Test (2, 2, 49500) -> obtenu (impôt=1296, décote=431, réduction=325) | attendu (1297, 431, 324) | OK
Test (1, 0, 18535) -> obtenu (impôt=359, décote=491, réduction=90) | attendu (359, 491, 90) | OK
Test (2, 0, 43333) -> obtenu (impôt=2268, décote=0, réduction=401) | attendu (2270, 0, 400) | ECHEC
Détails tolérance ±1€ : impôt ok? False, décote ok? True, réduction ok? True
Résultat global : AU MOINS UN TEST ÉCHOUE ❌
Process finished with exit code 0
ChatGPT scheitert ebenfalls an dem hinzugefügten Test, aber nicht aus denselben Gründen wie Gemini. ChatGPT fand die richtigen Ergebnisse, aber mit einem Abstand von 2 Euro statt des vorgeschriebenen 1 Euro.
Von nun an ist es also der von ChatGPT erzeugte PDF, den wir mit den folgenden IA verwenden werden. Es ist anzumerken, dass beide IA die ersten Tests aufgrund der fehlenden Unit-Tests, die in meinen Anweisungen vorgeschlagen wurden, bestanden haben. Daher in diesem speziellen Beispiel die Wichtigkeit, Unit-Tests für die Grenzfälle der Steuerberechnung einzufügen. Da es ziemlich schwierig ist, sich diese Tests selbst auszudenken. Wir werden die IA bitten, selbst welche hinzuzufügen.
5.8. Problem 3 mit Unit-Tests, die von den IA generiert werden
Die Ergebnisse, die mit Gemini und ChatGPT erzielt wurden, lassen Zweifel aufkommen. Haben die IA eine allgemeine Lösung gefunden, die alle denkbaren Tests validiert, oder haben sie eine Lösung gefunden, die nur die vorgeschriebenen Tests validiert. Wir starten wieder mit eine Lösung ohne PDF, um die IA zu zwingen, im Internet nach den benötigten Informationen zu suchen. Und wir ändern unsere Anweisungen wie folgt:
![]() |
Die Textdatei [instructionsSansPDF4.txt] enthält bereits 14 vorgeschriebene Tests. Zu diesen Tests fügen wir die folgenden Anweisungen hinzu:
- Zeilen 11-24, die 14 vorgeschriebenen Tests ;
- Zeilen 5-55: Dieser Code stammt aus script, der von ChatGPT generiert wurde. Wir werden Gemini auferlegen, diesen Code zu verwenden, um den Vergleich zwischen den beiden erzeugten Skripten zu erleichtern.
Wir beginnen mit ChatGPT :
![]() |
Seine erste Antwort ist nicht korrekt. Ich mache ihn darauf aufmerksam, indem ich ihm die Logs der Ausführung gebe :
![]() | ![]() |
Seine zweite Antwort ist die richtige. ChatGPT hat den 14 vorgeschriebenen Tests die folgenden 11 Tests hinzugefügt:
Es gibt jetzt 25 Unit-Tests. Ich ai überprüfe die 11 neuen Tests manuell mit dem offiziellen Simulator der DGIP und es ist in Ordnung.
Jetzt geht es weiter mit Gemini. Das wird viel komplizierter sein. Es wird ihm gelingen, einen script zu erzeugen, der die 25 Tests von ChatGPT besteht, aber erst nach einer langen Fehlersuche.
![]() |
Nachfolgend die Debugging-Liste :
![]() |
Seltsamerweise fiel eine Mehrheit der Tests durch, selbst unter den 14 vorgeschriebenen, obwohl Gemini in der Vergangenheit Code generiert hatte, der alle Tests bestanden hatte.
Die folgende Antwort von Gemini ist immer noch nicht korrekt:
![]() |
Auch die folgende Antwort nicht:
![]() |
Die nächste Antwort auch nicht. Daraufhin ändere ich meine Vorgehensweise. Ich bitte ihn, die 25 Tests zu bestehen, die ChatGPT bestanden hat, und lege ihm die Logs von ChatGPT bei:
![]() |
Gemini schlägt fehl. Er hat die Tests von ChatGPT richtig hinzugefügt. Ich füge ihm die Protokolle seiner Ausführung bei :
![]() |
Immer noch nicht :
![]() |
Immer noch nicht :
![]() |
Immer noch nicht :
![]() |
Immer noch nicht, aber besser :
![]() |
Gemini macht neue Fehler :
![]() |
Er verbessert sich wieder :
![]() |
Diesmal:
![]() | ![]() |
Unbestreitbar war ChatGPT in diesem konkreten Beispiel der Steuerberechnung für 2019 mit den in der Anweisungsdatei platzierten Beschränkungen relevanter als Gemini. Aber das ist nur ein Beispiel.
Wir können noch einen Schritt weiter gehen. Wir können Gemini bitten, einen PDF nach den Rechenregeln zu regenerieren, die er verwendet hat, um die 25 Tests zu bestehen. Wir wollen sehen, ob er seine ursprüngliche Argumentation zu den Berechnungen des Abschlags und der 20%igen Ermäßigung geändert hat :
![]() | ![]() |
Diesmal erzeugte Gemini eine MarkDown-Datei, die ich ai anschließend in PDF [Das Problem laut Gemini Version 2] umwandelte. Und Gemini hat tatsächlich seine Argumentation geändert:
![]() |
![]() |
Es ist zu erkennen, dass es die besondere Berechnung des Abschlags und die Regel des Abfischens nicht mehr gibt. Gemini hat nun die Argumentation von ChatGPT übernommen.























































