53 lines
2.8 KiB
MySQL
53 lines
2.8 KiB
MySQL
|
|
-- Migration 087: Planungs-KI — LLM Start/Ziel-Extraktion aus Trainer-Anfrage (Alternative zu Regex)
|
|||
|
|
|
|||
|
|
INSERT INTO ai_prompts (
|
|||
|
|
slug, display_name, description, template,
|
|||
|
|
category, output_format, output_schema, is_system_default, default_template, active, sort_order
|
|||
|
|
)
|
|||
|
|
SELECT
|
|||
|
|
'planning_progression_start_target',
|
|||
|
|
'Progressions-Roadmap Start/Ziel-Extraktion',
|
|||
|
|
'Versteht die Trainer-Anfrage und formuliert dedizierte Ausgangslage, Zielzustand und Ergänzungen (ohne Gruppen-Tracking).',
|
|||
|
|
$t$Du bist Assistent für Kampfsport-Trainer und analysierst eine Anfrage für einen didaktischen Progressionsgraphen.
|
|||
|
|
|
|||
|
|
Trainer-Anfrage (Ursprungstext):
|
|||
|
|
{{goal_query}}
|
|||
|
|
|
|||
|
|
Semantic Brief (heuristisch): {{semantic_brief_json}}
|
|||
|
|
|
|||
|
|
Bereits vom Trainer eingegebene Ergänzungen (falls vorhanden): {{user_notes}}
|
|||
|
|
|
|||
|
|
Aufgabe:
|
|||
|
|
1. **primary_topic** — Kern-Thema/Technik in kurzer, präziser Bezeichnung (z. B. „Kumite Beinarbeit“, „Mae Geri“).
|
|||
|
|
2. **start_situation** — Ausgangslage in eigenen Worten: Was kann der Athlet/die Gruppe *jetzt* (laut Anfrage oder sinnvoll ableitbar)? Konkret, beobachtbar, ohne Gruppenanalyse aus der Datenbank.
|
|||
|
|
3. **target_state** — Zielzustand in eigenen Worten: Was soll am Ende der Progression erreicht sein? Konkret, didaktisch nutzbar.
|
|||
|
|
4. **roadmap_notes** — Ergänzungen aus dem Ursprungstext: Fokus, Kontext (z. B. Kumite), besondere Anforderungen, Einschränkungen, die der Trainer erwähnt hat oder die für die Roadmap relevant sind. Nicht wiederholen, was bereits in start_situation/target_state steht.
|
|||
|
|
5. **extraction_notes** — Kurz (1–2 Sätze): Was war explizit vs. abgeleitet? Wo war die Anfrage unklar?
|
|||
|
|
|
|||
|
|
Regeln:
|
|||
|
|
- Keine Gruppenanalyse — nur das, was aus dem Text hervorgeht oder didaktisch naheliegend formuliert ist.
|
|||
|
|
- Formuliere start_situation und target_state **eigenständig und verständlich**, nicht nur Textfragmente kopieren.
|
|||
|
|
- Bei „von … bis …“: Start und Ziel aus diesem Bogen schärfen und präzise beschreiben.
|
|||
|
|
- Bei nur einem Thema ohne Bogen: start_situation und target_state didaktisch sinnvoll formulieren oder leer lassen, wenn nicht ableitbar — dann in extraction_notes erklären.
|
|||
|
|
- Antworte NUR mit JSON.
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
"primary_topic": "…",
|
|||
|
|
"start_situation": "…",
|
|||
|
|
"target_state": "…",
|
|||
|
|
"roadmap_notes": "…",
|
|||
|
|
"extraction_notes": "…"
|
|||
|
|
}$t$,
|
|||
|
|
'training',
|
|||
|
|
'json',
|
|||
|
|
'{"type":"object","properties":{"primary_topic":{"type":"string"},"start_situation":{"type":"string"},"target_state":{"type":"string"},"roadmap_notes":{"type":"string"},"extraction_notes":{"type":"string"}}}'::jsonb,
|
|||
|
|
true,
|
|||
|
|
NULL,
|
|||
|
|
true,
|
|||
|
|
13
|
|||
|
|
WHERE NOT EXISTS (SELECT 1 FROM ai_prompts WHERE slug = 'planning_progression_start_target');
|
|||
|
|
|
|||
|
|
UPDATE ai_prompts SET default_template = template
|
|||
|
|
WHERE slug = 'planning_progression_start_target'
|
|||
|
|
AND (default_template IS NULL OR TRIM(default_template) = '');
|