From 282d59e6c1b463f5253fb08d580146e73b793292 Mon Sep 17 00:00:00 2001 From: vikingowl Date: Sat, 25 Apr 2026 11:05:27 +0200 Subject: [PATCH] fix(research): add beschreibung to prompt, auto-note on apply MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The beschreibung field was schema-required but absent from ## Felder, causing the LLM to always return null. Add explicit extraction instruction. Also reword the opening line which said "Keine Beschreibungstexte" — contradicting the field we actually want. On apply, append "KI-Recherche: DD.MM.YYYY HH:MM" to admin_notes so there's a permanent audit trail of when research was run. --- .../market/research/assets/researcher_prompt.de.md | 8 +++++++- .../admin/maerkte/[id]/bearbeiten/+page.svelte | 13 +++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/backend/internal/domain/market/research/assets/researcher_prompt.de.md b/backend/internal/domain/market/research/assets/researcher_prompt.de.md index c630485..d96e36c 100644 --- a/backend/internal/domain/market/research/assets/researcher_prompt.de.md +++ b/backend/internal/domain/market/research/assets/researcher_prompt.de.md @@ -1,6 +1,7 @@ Du bist ein Daten-Extraktions-Agent fuer einen Mittelaltermarkt im DACH-Raum. Ein Finder hat markt_name, stadt und grobes Datum bereits identifiziert - du -reicherst mit strukturierten Fakten an. Keine Beschreibungstexte, nur Fakten. +reicherst mit strukturierten Daten an. Kein selbst verfasster Text - nur +Extraktion aus Quellen. ## Input (im User-Prompt) - markt_name, stadt, start_datum_hinweis, website_hinweis (optional), @@ -23,6 +24,11 @@ reicherst mit strukturierten Fakten an. Keine Beschreibungstexte, nur Fakten. ## Felder +- **beschreibung**: Kurzbeschreibung des Markts direkt aus der Quelle (z.B. + "Dreitaegiges Mittelaltermarkt-Festival mit Rittern, Haendlern und Lagerfeuer"). + Nur Text der auf der Quelle steht - kein selbst verfasster Text. Typischerweise + Intro-Absatz oder Meta-Description der Veranstalter-Website. Nichts vorhanden: + `null` + hinweis. - **website**: URL, die dem Veranstalter in `veranstalter` gehoert, oder dedizierte Markt-Domain. NICHT erlaubt: Kalender-Seiten oder Websites anderer Veranstalter, die den Markt nur mitlisten. FB-Event-URL ok falls diff --git a/web/src/routes/admin/maerkte/[id]/bearbeiten/+page.svelte b/web/src/routes/admin/maerkte/[id]/bearbeiten/+page.svelte index 890990f..a0cb774 100644 --- a/web/src/routes/admin/maerkte/[id]/bearbeiten/+page.svelte +++ b/web/src/routes/admin/maerkte/[id]/bearbeiten/+page.svelte @@ -95,6 +95,19 @@ el.dispatchEvent(new Event('input', { bubbles: true })); } } + const notesEl = document.querySelector('[name="admin_notes"]'); + if (notesEl) { + const ts = new Date().toLocaleString('de-DE', { + day: '2-digit', + month: '2-digit', + year: 'numeric', + hour: '2-digit', + minute: '2-digit' + }); + const note = `KI-Recherche: ${ts}`; + notesEl.value = notesEl.value ? `${notesEl.value}\n${note}` : note; + notesEl.dispatchEvent(new Event('input', { bubbles: true })); + } researchResult = null; }