feat(enrich): full category taxonomy, tighter description + opening_hours rules (B1-B3)

- Replace 3-example inline comment with 7-label taxonomy block so the
  model knows all valid categories instead of guessing from partial hints
- Tighten description constraint to 60-220 chars with explicit word bans
- Mark opening_hours as a rough guide, not authoritative for booking
This commit is contained in:
2026-04-25 17:58:08 +02:00
parent f98ecf8790
commit b25ae09bd2

View File

@@ -141,15 +141,34 @@ DACH region. Using the provided source-page excerpts as grounding, return a
JSON object with exactly these fields:
{
"category": string, // short German label, e.g. "mittelaltermarkt",
// "weihnachtsmarkt", "ritterfest". Lowercase.
"opening_hours": string, // German; brief (e.g. "Sa-So 10:00-18:00").
"category": string, // see taxonomy below
"opening_hours": string, // Brief German summary, e.g. "Sa-So 10:00-18:00".
// Rough guide only — not authoritative for booking.
// Empty string if unclear from sources.
"description": string // 1-3 sentences in German summarising what the
// market offers. Neutral tone, no hype.
// Empty string if sources have no useful info.
"description": string // 60-220 chars, German, complete sentences, neutral
// tone. No lists, no marketing words (einzigartig,
// unvergesslich, magisch). Facts only. Empty string
// if sources have no useful content.
// Example: "Dreitaegiger Mittelaltermarkt mit
// Haendlern, Lagerleben und Ritterturnieren."
}
Category taxonomy — pick exactly one:
mittelaltermarkt Medieval market: merchants, craft stalls, period costumes
weihnachtsmarkt Christmas market / Advent market
ritterfest Knight festival: jousting, tournaments, knight camp focus
handwerkermarkt Craft/artisan market without strong medieval theme
schlossfest Castle or palace festival — broader programme, not just market
ritterturnier Jousting tournament; the tournament IS the main event
kirchweih Traditional Bavarian/Austrian parish fair (Kirmes, Kirtag)
(empty string) Sources unclear or event does not fit any category above
Examples:
"Dresdner Striezelmarkt", christmas-market sources → "weihnachtsmarkt"
"Ritterturnier Burg Kreuzenstein", jousting sources → "ritterturnier"
"Kirchweih Fürth", parish-fair sources → "kirchweih"
"Schlossfest Schönbrunn", castle-festival sources → "schlossfest"
Rules:
- Return ONLY the JSON object. No prose, no code fences.
- If the sources do not support a field, return an empty string for it.