Files
ImportAssist/docs/ai-evaluation-v1.md
T

216 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Manuelle Bewertung der KI-Fehleranalyse – Version 1
Grundlage:
- invoice-interface-v1.md
- ai-analysis-prompt.md
- Jeweils ein gespeicherter ImportAssist-Prüfbericht
## Fall A: Completed mit fachlichen Fehlern
Eingabe:
Fünf geprüfte Rechnungen, eine gültig, vier fehlerhaft.
Die Antwort muss:
- Completed als abgeschlossene Prüfung einordnen.
- Die vier fehlerhaften Rechnungen mit ihren Befunden erklären.
- Die gemeldeten Fehler passenden Regelkennungen zuordnen.
- Fehlende Informationen für die Korrektur benennen.
- Die gültige Rechnung ohne zusätzliche Fehlerbewertung lassen.
Die Antwort darf nicht:
- Kundennummern, Rechnungsnummern oder Beträge erfinden.
- Einen konkreten ursprünglichen Betrag behaupten.
- Ohne Beleg zwischen Nullbetrag und negativem Betrag unterscheiden.
- Eine gültige Währung oder existierende Kunden bestätigen.
## Fall B: Rejected wegen CSV-Struktur
Eingabe:
Status Rejected, leere rows, alle Zähler null.
fileErrors meldet für Zeile 3:
„Erwartet werden vier Spalten ohne Anführungszeichen.“
Die Antwort muss:
- Die Abweisung der gesamten Datei erklären.
- Auf CSV-Zeile 3 verweisen.
- CSV-001 und REP-001 passend heranziehen.
- Klarstellen, dass keine fachliche Rechnungsprüfung stattfand.
- Die Prüfung der Originalzeile und erneute Verarbeitung empfehlen.
Die Antwort darf nicht:
- Die Datei aufgrund der Nullzähler als fehlerfrei bezeichnen.
- Einzelne Rechnungen fachlich bewerten.
- Behaupten, welche konkrete Spalte fehlt.
- Behaupten, ob zu wenige Spalten, zu viele Spalten oder
Anführungszeichen die Ursache waren.
## Bewertung
Für jede Antwort prüfen:
1. Stimmen alle Aussagen mit den bereitgestellten Quellen überein?
2. Passen die Regelverweise?
3. Sind die nächsten Prüfschritte konkret und zulässig?
4. Werden Informationslücken ausdrücklich benannt?
Erster manueller Durchlauf:
Beide Fälle anhand der Antworten im Lernchat geprüft.
Kein automatisierter Modelltest und kein Nachweis wiederholbarer Qualität.
## Testlauf vom 09.09.2026 – Completed mit fachlichen Fehlern
### Konfiguration
- Modell: gpt-4.1-mini
- Modellversion: 2025-04-14
- Bereitstellung: importassist-analysis (Global Standard)
- Durchführung: manuell im Foundry-Playground
- Quellen: invoice-interface-v1.md und invoices-report.json
- Anweisungen: ai-analysis-prompt.md vor der heutigen Ergänzung
- Websuche: deaktiviert
### Eingabe
Prüfbericht mit Status Completed:
5 Rechnungen, davon 1 gültig und 4 fehlerhaft.
Keine Dateistrukturfehler.
### Erwartung
- Mengen, Zeilen und Regelkennungen korrekt wiedergeben.
- Completed als abgeschlossene Prüfung erklären.
- Keine Importfreigabe oder Erlaubnis zum Teilimport ableiten.
- Gültigkeit auf die implementierten Prüfregeln begrenzen.
- Keine ursprünglichen Beträge oder Ersatzwerte erfinden.
### Beobachtung
- Mengen, betroffene Zeilen und Regelkennungen korrekt erkannt.
- Prüfschritte mit Bezug auf Quelldaten vorgeschlagen.
- Keine konkreten Ersatzwerte erfunden.
- Unbelegte Aussage: „Datei insgesamt importierbar“.
- Zu umfassende Aussage: INV-001 sei „fehlerfrei“.
### Bewertung
Teilweise bestanden.
Die Antwort enthält eine unbelegte Importfreigabe und stellt die
Aussagekraft der implementierten Prüfregeln zu umfassend dar.
### Anpassung
Anweisungen um zwei Klarstellungen ergänzt:
- Completed bedeutet keine Importfreigabe.
- isValid gilt ausschließlich für die implementierten Prüfregeln.
### Wiederholung
Noch offen. Dieselbe Eingabe in einem neuen Chat mit den ergänzten
Anweisungen testen und das Ergebnis hier dokumentieren.
### Wiederholung 2 mit präzisierten Anweisungen
- Mengen, Fehler und Regelkennungen korrekt wiedergegeben.
- Keine unbelegte Importfreigabe.
- Aussagekraft der Prüfung eingeschränkt; Währung als ungeprüft benannt.
- Gewünschte Formulierung für isValid=true nicht wörtlich übernommen.
- Ungenaue Bezeichnung „keine Rechnung“ statt „Rechnungsnummer fehlt“.
- Gutschrift als mögliche Ursache angesprochen, ohne sie ausdrücklich
als unbelegte Hypothese zu kennzeichnen.
Bewertung: teilweise bestanden; wesentliche frühere Fehler behoben.
Verbleibende sprachliche und fachliche Unschärfen dokumentiert.
Ein einzelner Lauf belegt noch keine zuverlässige Wiederholbarkeit.
## Testlauf vom 09.09.2026 – Rejected wegen Strukturfehler
### Eingabe
Prüfbericht mit Status Rejected, leeren rows und einem
Dateistrukturfehler in Zeile 3.
### Beobachtung
- Status Rejected und fehlende fachliche Prüfung korrekt erklärt.
- Zeile 3 korrekt als zweite Datenzeile eingeordnet.
- Strukturfehler korrekt CSV-001 zugeordnet.
- Keine bestimmte fehlende Spalte erfunden.
- Mögliche Fehlerursachen ausdrücklich offengelassen.
- Keine Behauptung, die Datei enthalte null Rechnungen.
- Entfernen von Anführungszeichen zu konkret empfohlen,
obwohl deren Vorhandensein unbekannt ist.
- Bezeichnung der gesamten Datei als „unbrauchbar“ zu pauschal.
- Quellenzuordnung der Zeilenzählung zu REP-001 noch zu prüfen.
### Bewertung
Teilweise bestanden.
Kernaussage korrekt; Korrekturvorschlag und Wortwahl benötigen
Präzisierung. Eine Quellenzuordnung bleibt offen.
## C#-Testläufe vom 10.09.2026
### Konfiguration
- Tool: ImportAssist.Analyze
- SDK: .NET 10.0.112
- Azure.AI.OpenAI: 2.1.0
- Modell: gpt-4.1-mini, Version 2025-04-14
- Bereitstellung: importassist-analysis
- Eingaben: aktueller Analyseprompt, Schnittstellenspezifikation
und jeweiliger JSON-Prüfbericht
- Maximale Ausgabetokens: 2000
- Jeder Aufruf ohne vorherigen Chatverlauf und ohne Tools
### Completed-Bericht
- Fehlerzeilen und Regelkennungen korrekt zugeordnet.
- Keine unbelegte Importfreigabe.
- Währung korrekt als ungeprüft behandelt.
- Ungenaue Formulierung: Nur eine Rechnung sei „validiert worden“.
Tatsächlich wurden fünf geprüft; eine bestand die Prüfregeln.
- Gutschrift als möglicher Prüfansatz erwähnt, nicht als Tatsache.
- Tokenverbrauch: 1434 Eingabe, 605 Ausgabe.
Bewertung: teilweise bestanden; sprachliche Unschärfe verbleibt.
### Rejected-Bericht
- Strukturfehler in Zeile 3 korrekt CSV-001 zugeordnet.
- Ausgebliebene fachliche Prüfung korrekt erklärt.
- Keine konkrete fehlende Spalte erfunden.
- Originalinhalt der betroffenen Zeile als fehlende Information benannt.
- Prüfung der Quelldaten statt unbegründeter Korrektur empfohlen.
- Tokenverbrauch: 1202 Eingabe, 426 Ausgabe.
Bewertung: für diesen Testlauf bestanden.
### Grenzen
Je ein manueller C#-Testlauf pro Fall.
Keine Aussage über zuverlässige Wiederholbarkeit oder andere Eingaben.
Die Antworten werden bislang als Freitext ausgegeben und manuell geprüft.
## Strukturierte C#-Testläufe vom 11.09.2026
### Konfiguration
- Modellbereitstellung: importassist-analysis
- Antwortschema: docs/ai-analysis.schema.json
- Structured Outputs mit aktiviertem strikten Modus
- Deserialisierung in InvoiceAnalysis und AnalysisFinding
- Maximale Ausgabetokens: 2000
### Completed-Bericht
- JSON erfolgreich in C# eingelesen.
- Sechs Befunde mit korrekten Zeilen und Regelkennungen.
- limitations korrekt als Liste auf oberster Ebene.
- Fehlende Rechnungsnummer in Zeile 6 als leerer String statt null.
Das Schema erlaubt diesen String; die semantische Vorgabe wurde verletzt.
- Empfehlung zur Änderung auf einen positiven Betrag zu pauschal.
Der fachlich richtige Betrag muss zuerst anhand der Quelle geklärt werden.
- Tokenverbrauch: 1894 Eingabe, 874 Ausgabe.
Bewertung: Struktur bestanden, fachliche Prüfung teilweise bestanden.
### Rejected-Bericht
- JSON erfolgreich in C# eingelesen.
- Genau ein Befund: CSV-001, Zeile 3, invoiceId null.
- Keine konkrete Fehlerursache erfunden.
- Fehlende Originalzeile und ausgebliebene fachliche Prüfung benannt.
- Tokenverbrauch: 1662 Eingabe, 236 Ausgabe.
Bewertung: festgelegte Kriterien in diesem Lauf bestanden.
### Offene Punkte
- Leere oder ausschließlich aus Leerzeichen bestehende invoiceId
zusätzlich in C# zurückweisen; bei fehlender Nummer ist null vorgesehen.
- Korrekturvorschläge müssen den fachlich richtigen Quellwert respektieren.
- Ablehnungen, abgebrochene Antworten und ungültige Antwortstrukturen
werden im Code behandelt, wurden aber noch nicht gezielt getestet.
- Einzelne erfolgreiche Läufe belegen keine zuverlässige Wiederholbarkeit.