From 06d80b255b8fb8d1b1e16167dd1d1e7637dc18c5 Mon Sep 17 00:00:00 2001 From: Kevin Adametz Date: Fri, 10 Jul 2026 17:14:12 +0000 Subject: [PATCH] KI-Klassifikation: Substanzpruefung gegen Gruen-Durchrutscher Gruen setzt jetzt einen erkennbaren Nachrichtenkern voraus; Test-/ Platzhalter-Texte sind explizit K6-Verstoss (rot), sehr duenne Inhalte mindestens gelb. Behebt Befund, dass inhaltsleere Test-PMs (Score 4) nach der Prompt-Ueberarbeitung gruen durchliefen. Co-authored-by: Cursor --- .../Drivers/OpenAiClassificationDriver.php | 34 ++++++++++++------- .../PressReleaseClassificationJobTest.php | 3 +- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/app/Services/PressRelease/Classification/Drivers/OpenAiClassificationDriver.php b/app/Services/PressRelease/Classification/Drivers/OpenAiClassificationDriver.php index a63b3bba..b0236556 100644 --- a/app/Services/PressRelease/Classification/Drivers/OpenAiClassificationDriver.php +++ b/app/Services/PressRelease/Classification/Drivers/OpenAiClassificationDriver.php @@ -104,25 +104,35 @@ class OpenAiClassificationDriver implements ClassificationDriver - "yellow": Es gibt konkrete Anhaltspunkte für einen möglichen Verstoß, die sich aus dem Text allein nicht sicher belegen lassen (z. B. zweifelhafte Tatsachenbehauptungen ohne Quelle, stark werblicher Ton - mit geringem Nachrichtenwert, mögliche Rechteprobleme). Auch wenn du - zwischen zwei Stufen schwankst, wähle "yellow". - - "green": Keine Verstöße und keine konkreten Verdachtsmomente. Eine - journalistisch gebaute Unternehmensmeldung mit erkennbarem - Nachrichtenwert ist "green", auch wenn sie das Unternehmen positiv - darstellt — Eigen-PR ist normal und kein Ablehnungsgrund. + mit geringem Nachrichtenwert, mögliche Rechteprobleme, sehr dünner + Inhalt mit kaum erkennbarer Nachricht). Auch wenn du zwischen zwei + Stufen schwankst, wähle "yellow". + - "green": Keine Verstöße und keine konkreten Verdachtsmomente. "green" + setzt zwingend voraus, dass der Text eine echte, substanzielle + Pressemitteilung mit erkennbarem Nachrichtenkern ist (wer teilt was + mit?). Eigen-PR mit positivem Unternehmensbild ist dabei normal und + kein Ablehnungsgrund. ## Entscheidungsregeln - 1. Prüfe Titel und Text vollständig gegen jede Kategorie. - 2. "red" nur bei einem klar belegbaren Verstoß; benenne dann die + 1. Prüfe zuerst die Substanz: Test-, Platzhalter- oder inhaltsleere + Texte (z. B. "Test", Lorem ipsum, zusammenhanglose Füllsätze, nur + wenige Sätze ohne jede Aussage) sind ein klarer Verstoß gegen + "Kein Pressecharakter / Spam" und damit "red" — solche Mitteilungen + dürfen nie "green" sein. + 2. Sehr dünne Inhalte, die zwar echt wirken, aber keinen erkennbaren + Nachrichtenwert haben, sind mindestens "yellow". + 3. Prüfe Titel und Text vollständig gegen jede Kategorie. + 4. "red" nur bei einem klar belegbaren Verstoß; benenne dann die Kategorie (Code) und zitiere die entscheidende Passage wörtlich oder sinngemäß. - 3. Unterscheide werbliche Sprache (zulässig, ggf. "yellow" bei reinem + 5. Unterscheide werbliche Sprache (zulässig, ggf. "yellow" bei reinem Verkaufstext ohne Nachrichtenwert) von unzulässigen Inhalten. - 4. Superlative und Meinungen sind zulässig; unbelegte Tatsachen-, + 6. Superlative und Meinungen sind zulässig; unbelegte Tatsachen-, Heil- oder Gewinnversprechen sind es nicht. - 5. Bewerte nur, was im Text steht — unterstelle nichts, was nicht - belegbar ist. + 7. Bewerte nur, was im Text steht — unterstelle keine Verstöße, die + nicht belegbar sind. Fehlende Substanz ist dagegen direkt am Text + erkennbar und zählt als Beleg. ## Antwortformat diff --git a/tests/Feature/PressReleaseClassificationJobTest.php b/tests/Feature/PressReleaseClassificationJobTest.php index 0d10a3e4..29bbf0e3 100644 --- a/tests/Feature/PressReleaseClassificationJobTest.php +++ b/tests/Feature/PressReleaseClassificationJobTest.php @@ -90,7 +90,8 @@ test('openai classification prompt lists the active rejection categories', funct return str_contains($systemPrompt, 'K1 Rechtswidrige Inhalte') && str_contains($systemPrompt, 'K5 Rechte Dritter') && ! str_contains($systemPrompt, 'K6 Kein Pressecharakter') - && str_contains($systemPrompt, 'markiere die Mitteilung dann direkt rot'); + && str_contains($systemPrompt, 'markiere die Mitteilung dann direkt rot') + && str_contains($systemPrompt, 'Prüfe zuerst die Substanz'); }); });