Qualitaetstest der KI #19

Closed
opened 2026-10-08 11:06:51 +02:00 by lena · 4 comments
Collaborator

Ziel

Vor dem Anschluss der KI pruefen, ob die OpenAI-Modelle Rezepte zuverlaessig genug lesen - vor allem, ob sie ihre Unsicherheit erkennen und lieber markieren als still raten. Das Ergebnis entscheidet, welches Modell fuer welche Aufgabe eingesetzt wird.

Grundlage

PRD Kapitel 08 ("Qualitaetstest vor der Umsetzung", "Markieren von Unsicherheit", "Aufgaben der KI nach Anspruch"); docs/kritische_durchsicht.md Punkt 22; CLAUDE.md (Stand).

Abhaengig von

  • (keine Issues) - braucht einen OpenAI-API-Schluessel von Lena und die Bestaetigung, dass der Server ins Internet kommt.

Akzeptanzkriterien

  • AK-1 Kriterien vorher festgelegt: "bestanden" heisst: keine falsch gelesene Menge ohne Markierung, und ein Rezeptfoto ist in unter 1 Minute verarbeitet. Die Kriterien stehen im Repo, bevor getestet wird.
  • AK-2 Testrezepte: Getestet wird mit den Dateien aus "erste Rezepte/", einer handschriftlichen Karte, einem englischen Blog und einem Instagram-Link. Zu jedem Testrezept ist das erwartete Ergebnis (Titel, Zutaten mit Mengen, Schritte) im Repo festgehalten.
  • AK-3 Modelle: Mindestens zwei OpenAI-Modelle (ein grosses, ein guenstiges) werden mit denselben Rezepten und derselben Anweisung getestet.
  • AK-4 Ergebnis: Ein kurzer Bericht in Alltagssprache: je Modell und Aufgabe (Foto lesen, Seitentext lesen, Rezept strukturieren) bestanden ja/nein, Dauer, ungefaehre Kosten pro Rezept, und die Empfehlung "Modell pro Aufgabe".
  • AK-5 Wiederverwendbar: Der Test laesst sich mit einem Befehl erneut ausfuehren (z. B. nach einem Modellwechsel). Die Testrezepte werden spaeter zu automatischen Vergleichstests.
  • AK-6 Datenschutz: An die KI gehen nur Rezeptinhalte, keine Namen oder Personendaten (PRD Kapitel 08, 18).

Nicht in dieser Stufe

  • Einbau der KI in die App (siehe das Issue "KI-Schritte bei der Erfassung" und #5)

Offene Fragen

  1. Wer stellt den OpenAI-API-Schluessel bereit, und mit welchem Ausgabenlimit?
  2. Welche handschriftliche Karte, welcher englische Blog und welcher Instagram-Link sollen in den Test?
## Ziel Vor dem Anschluss der KI pruefen, ob die OpenAI-Modelle Rezepte zuverlaessig genug lesen - vor allem, ob sie ihre Unsicherheit erkennen und lieber markieren als still raten. Das Ergebnis entscheidet, welches Modell fuer welche Aufgabe eingesetzt wird. ## Grundlage PRD Kapitel 08 ("Qualitaetstest vor der Umsetzung", "Markieren von Unsicherheit", "Aufgaben der KI nach Anspruch"); `docs/kritische_durchsicht.md` Punkt 22; CLAUDE.md (Stand). ## Abhaengig von - (keine Issues) - braucht einen OpenAI-API-Schluessel von Lena und die Bestaetigung, dass der Server ins Internet kommt. ## Akzeptanzkriterien - **AK-1 Kriterien vorher festgelegt:** "bestanden" heisst: keine falsch gelesene Menge ohne Markierung, und ein Rezeptfoto ist in unter 1 Minute verarbeitet. Die Kriterien stehen im Repo, bevor getestet wird. - **AK-2 Testrezepte:** Getestet wird mit den Dateien aus "erste Rezepte/", einer handschriftlichen Karte, einem englischen Blog und einem Instagram-Link. Zu jedem Testrezept ist das erwartete Ergebnis (Titel, Zutaten mit Mengen, Schritte) im Repo festgehalten. - **AK-3 Modelle:** Mindestens zwei OpenAI-Modelle (ein grosses, ein guenstiges) werden mit denselben Rezepten und derselben Anweisung getestet. - **AK-4 Ergebnis:** Ein kurzer Bericht in Alltagssprache: je Modell und Aufgabe (Foto lesen, Seitentext lesen, Rezept strukturieren) bestanden ja/nein, Dauer, ungefaehre Kosten pro Rezept, und die Empfehlung "Modell pro Aufgabe". - **AK-5 Wiederverwendbar:** Der Test laesst sich mit einem Befehl erneut ausfuehren (z. B. nach einem Modellwechsel). Die Testrezepte werden spaeter zu automatischen Vergleichstests. - **AK-6 Datenschutz:** An die KI gehen nur Rezeptinhalte, keine Namen oder Personendaten (PRD Kapitel 08, 18). ## Nicht in dieser Stufe - Einbau der KI in die App (siehe das Issue "KI-Schritte bei der Erfassung" und #5) ## Offene Fragen 1. Wer stellt den OpenAI-API-Schluessel bereit, und mit welchem Ausgabenlimit? 2. Welche handschriftliche Karte, welcher englische Blog und welcher Instagram-Link sollen in den Test?
Author
Collaborator

Entscheidungen 08.10.2026 (Lena) zu den offenen Fragen - damit ist das Issue bereit:

  1. Anbieter und Schluessel: Die KI wird ueber OpenRouter angesprochen (Base-URL https://openrouter.ai/api/v1, OpenAI-kompatibel). Lena legt den Schluessel selbst als Benutzer-Umgebungsvariable OPENROUTER_API_KEY an; er landet nie im Repo oder Chat. Ausgabenlimit: 10 Euro pro Monat.
  2. Datenschutz: Jede Anfrage verlangt Anbieter ohne Speicherung und ohne Training (OpenRouter provider.data_collection: "deny").
  3. Modelle: getestet werden z-ai/glm-5.3-flash (guenstig, liest Bilder; soll moeglichst fuer alle Aufgaben genutzt werden) und openai/gpt-6.1-sol als grosser Massstab (AK-3). Besteht GLM ueberall, nutzt die App nur GLM; faellt es bei einer Aufgabe durch, wird dort das guenstigste Modell genommen, das bestanden hat.
  4. Testrezepte: die Dateien aus "erste Rezepte/". Englischen Blog und Instagram-Post waehlt Claude selbst (oeffentlich, mit Cups/Fahrenheit bzw. Rezept im Beitragstext). Eine handschriftliche Karte liegt noch nicht vor (das Foto 20220420_190622.jpg ist eine gedruckte Kochbuchseite) - sie wird nachgetestet, sobald Lena ein Foto ablegt.
  5. Erwartete Ergebnisse schreibt Claude auf; Lena sieht im Bericht nur die Abweichungen.

status/entwurf entfernt.

Entscheidungen 08.10.2026 (Lena) zu den offenen Fragen - damit ist das Issue bereit: 1. **Anbieter und Schluessel:** Die KI wird ueber **OpenRouter** angesprochen (Base-URL `https://openrouter.ai/api/v1`, OpenAI-kompatibel). Lena legt den Schluessel selbst als Benutzer-Umgebungsvariable `OPENROUTER_API_KEY` an; er landet nie im Repo oder Chat. Ausgabenlimit: **10 Euro pro Monat**. 2. **Datenschutz:** Jede Anfrage verlangt Anbieter ohne Speicherung und ohne Training (OpenRouter `provider.data_collection: "deny"`). 3. **Modelle:** getestet werden `z-ai/glm-5.3-flash` (guenstig, liest Bilder; soll moeglichst fuer **alle** Aufgaben genutzt werden) und `openai/gpt-6.1-sol` als grosser Massstab (AK-3). Besteht GLM ueberall, nutzt die App nur GLM; faellt es bei einer Aufgabe durch, wird dort das guenstigste Modell genommen, das bestanden hat. 4. **Testrezepte:** die Dateien aus "erste Rezepte/". Englischen Blog und Instagram-Post waehlt Claude selbst (oeffentlich, mit Cups/Fahrenheit bzw. Rezept im Beitragstext). Eine **handschriftliche Karte** liegt noch nicht vor (das Foto `20220420_190622.jpg` ist eine gedruckte Kochbuchseite) - sie wird nachgetestet, sobald Lena ein Foto ablegt. 5. **Erwartete Ergebnisse** schreibt Claude auf; Lena sieht im Bericht nur die Abweichungen. `status/entwurf` entfernt.
Author
Collaborator

Nachtrag 08.10.2026 (Lena): Die handschriftliche Karte ist daten/waffeln.jpeg (Knusprige Waffeln). Sie wird beim Bau von #19 nach "erste Rezepte/" uebernommen. Sie testet ausserdem Spanne ("1-2 El. Zucker"), Abkuerzungen ("Van. Zucker", "gestr. Te."), eine Alternative ("Rum oder abger. Zitrone"), "ergibt 12 Stueck" und Namen im Rezepttext ("Oda + Joerg" - fuer den Datenschutz-Test).

Nachtrag 08.10.2026 (Lena): Die **handschriftliche Karte** ist `daten/waffeln.jpeg` (Knusprige Waffeln). Sie wird beim Bau von #19 nach "erste Rezepte/" uebernommen. Sie testet ausserdem Spanne ("1-2 El. Zucker"), Abkuerzungen ("Van. Zucker", "gestr. Te."), eine Alternative ("Rum oder abger. Zitrone"), "ergibt 12 Stueck" und Namen im Rezepttext ("Oda + Joerg" - fuer den Datenschutz-Test).
lena self-assigned this 2026-10-09 03:36:13 +02:00
Author
Collaborator

Claimed by session "Loop go #12 -> #19 -> #20 -> #5 [acbb06]"

Claimed by session "Loop go #12 -> #19 -> #20 -> #5 [acbb06]"
Author
Collaborator

Fertig. Ergebnis in Alltagssprache: docs/ki-qualitaetstest/zusammenfassung.md, ausführlicher Bericht: docs/ki-qualitaetstest/ergebnisse/2026-10-09_0409.md.

Ergebnis

  • GPT (openai/gpt-6.1-sol) besteht alle drei Aufgaben (Foto lesen, Seitentext lesen, Rezept strukturieren) in allen 3 Durchläufen: keine einzige falsch gelesene Menge, unklare Stellen markiert (z. B. "½ Schmelzkäse"), Fotos in 15-28 Sekunden.
  • GLM (z-ai/glm-5.3-flash) fällt bei jeder Aufgabe mindestens einmal durch: Waffelkarte einmal ganz ohne Zutaten, Fotos bis 131 Sekunden, bei langen Texten dreimal Abbruch nach 5 Minuten.
  • Empfehlung nach Lenas Regel: GPT für alle drei Aufgaben. Kosten etwa 1-8 Cent pro Rezept (bei 50 Rezepten im Monat ca. 1-2 Euro). Der ganze Test hat etwa 1,20 $ gekostet.

Wie getestet (AK-1 bis AK-6)

  • AK-1: Kriterien vor dem ersten Test committet (docs/ki-qualitaetstest/kriterien.md). Nach dem ersten Lauf offen begründet verschärft: 3 Durchläufe, jeder muss bestehen.
  • AK-2: 9 Testrezepte mit erwartetem Ergebnis in erste Rezepte/erwartet/: Kochbuchseite, handschriftliche Waffelkarte, PDF-Kochbuch, Tarte, Pizzateig, Zimtschnecken, englischer Blog (Sally's Chocolate Chip Cookies), Instagram (Cremiger Spitzkohl).
  • AK-3: beide Modelle mit derselben Anweisung und derselben festen Antwortform.
  • AK-4: Bericht je Modell und Aufgabe mit bestanden ja/nein, Dauer, Kosten, Empfehlung.
  • AK-5: ein Befehl: dotnet run --project KiQualitaetstest. Gespeicherte Antworten lassen sich ohne neue Kosten neu auswerten. Die Vergleichslogik hat 15 eigene Tests (ohne KI).
  • AK-6: nur Anbieter ohne Speicherung und Training; Haushaltsnamen in Texten vorher durch Platzhalter ersetzt. Fotos gehen unverändert an die KI - Namen auf einem Foto ("Oda + Jörg") lassen sich nicht vorher entfernen. GPT hat sie nie übernommen.

Gelernt für #20

  • Instagram liefert den Rezepttext ohne Anmeldung in der Seitenbeschreibung (og:description) - die App muss sie mitlesen.
  • Manche Blogs sperren Programme (Simply Recipes: "402 Payment Required").
  • Lange Seiten mit Leserkommentaren machen es langsamer und teurer.
  • "Ergibt" wird nicht immer erkannt - in der Prüfansicht leicht ergänzbar machen.

So probierst du es selbst aus
Im Kochbuch-Ordner dotnet run --project KiQualitaetstest -- --fall waffeln --durchlaeufe 1 (kostet etwa 1 Cent), danach den neuen Bericht unter docs/ki-qualitaetstest/ergebnisse/ öffnen. Ohne Kosten: dotnet run --project KiQualitaetstest -- --texte zeigt, welcher Text aus den Dateien gelesen wird.

Fertig. Ergebnis in Alltagssprache: `docs/ki-qualitaetstest/zusammenfassung.md`, ausführlicher Bericht: `docs/ki-qualitaetstest/ergebnisse/2026-10-09_0409.md`. **Ergebnis** - **GPT (`openai/gpt-6.1-sol`) besteht alle drei Aufgaben** (Foto lesen, Seitentext lesen, Rezept strukturieren) in allen 3 Durchläufen: keine einzige falsch gelesene Menge, unklare Stellen markiert (z. B. "½ Schmelzkäse"), Fotos in 15-28 Sekunden. - **GLM (`z-ai/glm-5.3-flash`) fällt bei jeder Aufgabe mindestens einmal durch**: Waffelkarte einmal ganz ohne Zutaten, Fotos bis 131 Sekunden, bei langen Texten dreimal Abbruch nach 5 Minuten. - **Empfehlung nach Lenas Regel:** GPT für alle drei Aufgaben. Kosten etwa 1-8 Cent pro Rezept (bei 50 Rezepten im Monat ca. 1-2 Euro). Der ganze Test hat etwa 1,20 $ gekostet. **Wie getestet (AK-1 bis AK-6)** - AK-1: Kriterien vor dem ersten Test committet (`docs/ki-qualitaetstest/kriterien.md`). Nach dem ersten Lauf offen begründet verschärft: 3 Durchläufe, jeder muss bestehen. - AK-2: 9 Testrezepte mit erwartetem Ergebnis in `erste Rezepte/erwartet/`: Kochbuchseite, handschriftliche Waffelkarte, PDF-Kochbuch, Tarte, Pizzateig, Zimtschnecken, englischer Blog (Sally's Chocolate Chip Cookies), Instagram (Cremiger Spitzkohl). - AK-3: beide Modelle mit derselben Anweisung und derselben festen Antwortform. - AK-4: Bericht je Modell und Aufgabe mit bestanden ja/nein, Dauer, Kosten, Empfehlung. - AK-5: ein Befehl: `dotnet run --project KiQualitaetstest`. Gespeicherte Antworten lassen sich ohne neue Kosten neu auswerten. Die Vergleichslogik hat 15 eigene Tests (ohne KI). - AK-6: nur Anbieter ohne Speicherung und Training; Haushaltsnamen in Texten vorher durch Platzhalter ersetzt. **Fotos gehen unverändert an die KI** - Namen auf einem Foto ("Oda + Jörg") lassen sich nicht vorher entfernen. GPT hat sie nie übernommen. **Gelernt für `#20`** - Instagram liefert den Rezepttext ohne Anmeldung in der Seitenbeschreibung (og:description) - die App muss sie mitlesen. - Manche Blogs sperren Programme (Simply Recipes: "402 Payment Required"). - Lange Seiten mit Leserkommentaren machen es langsamer und teurer. - "Ergibt" wird nicht immer erkannt - in der Prüfansicht leicht ergänzbar machen. **So probierst du es selbst aus** Im Kochbuch-Ordner `dotnet run --project KiQualitaetstest -- --fall waffeln --durchlaeufe 1` (kostet etwa 1 Cent), danach den neuen Bericht unter `docs/ki-qualitaetstest/ergebnisse/` öffnen. Ohne Kosten: `dotnet run --project KiQualitaetstest -- --texte` zeigt, welcher Text aus den Dateien gelesen wird.
lena 2026-10-09 05:21:03 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
robert/rezeptbuch#19
No description provided.