60 lines
2.7 KiB
MySQL
60 lines
2.7 KiB
MySQL
|
|
-- Migration 071: KI-Prompt fuer Anleitungs-Ueberarbeitung (Ziel, Durchfuehrung, Vorbereitung, Trainer-Hinweise)
|
|||
|
|
-- JSON-Ausgabe; praezise HTML-Fragmente fuer RichTextEditor.
|
|||
|
|
|
|||
|
|
INSERT INTO ai_prompts (
|
|||
|
|
slug, display_name, description, template,
|
|||
|
|
category, output_format, output_schema, is_system_default, default_template, active, sort_order
|
|||
|
|
)
|
|||
|
|
SELECT
|
|||
|
|
'exercise_instruction_rewrite',
|
|||
|
|
'Anleitung ueberarbeiten',
|
|||
|
|
'Ueberarbeitet Ziel, Durchfuehrung, Vorbereitung und Trainer-Hinweise — praezise, strukturiert, ohne Aufblaehen.',
|
|||
|
|
$t$Du bist Assistent fuer Kampfsport-Trainer.
|
|||
|
|
Ueberarbeite die Anleitung dieser Uebung: verbessere Formulierung, ergaenze fehlende Kernpunkte, kuerze ueberfluessige Passagen.
|
|||
|
|
Wichtig: Texte sollen praezise und nachvollziehbar bleiben — keine Fuellsaetze, keine Wiederholungen, kein Marketing.
|
|||
|
|
|
|||
|
|
Stil:
|
|||
|
|
- Deutsch, sachlich, direkt an Trainer gerichtet (Durchfuehrung: Imperativ oder klare Schritte)
|
|||
|
|
- Ziel: 1–3 kurze Absaetze (Kern des Trainingsziels)
|
|||
|
|
- Durchfuehrung: klare Schritte (nummerierte Liste oder kurze Absaetze)
|
|||
|
|
- Vorbereitung/Aufbau: nur wenn noetig (Raum, Material, Aufbau) — sonst leerer String
|
|||
|
|
- Trainer-Hinweise: Sicherheit, typische Fehler, Coaching-Tipps — knapp, Stichpunkte oder kurze Absaetze
|
|||
|
|
|
|||
|
|
Format (HTML fuer Rich-Text-Editor):
|
|||
|
|
- Erlaubt: <p>, <ul>, <ol>, <li>, <strong>, <em>, <br>
|
|||
|
|
- Keine Ueberschriften (h1–h6), keine Tabellen, kein Markdown, keine Code-Fences
|
|||
|
|
- Medienverweise {{exerciseMedia:ID}} aus den Eingabetexten UNVERAENDERT an passender Stelle uebernehmen
|
|||
|
|
|
|||
|
|
Eingabe:
|
|||
|
|
Titel: {{exercise_title}}
|
|||
|
|
Fokuskontext: {{exercise_focus_area}}
|
|||
|
|
|
|||
|
|
Ziel (Plaintext, Ausgang): {{exercise_goal}}
|
|||
|
|
Durchfuehrung (Plaintext, Ausgang): {{exercise_execution}}
|
|||
|
|
Vorbereitung/Aufbau (Plaintext, Ausgang): {{exercise_preparation}}
|
|||
|
|
Trainer-Hinweise (Plaintext, Ausgang): {{exercise_trainer_notes}}
|
|||
|
|
|
|||
|
|
Antworte NUR mit einem JSON-Objekt (kein Text davor/danach):
|
|||
|
|
{
|
|||
|
|
"goal": "<p>…</p>",
|
|||
|
|
"execution": "<ol><li>…</li></ol>",
|
|||
|
|
"preparation": "<p>…</p> oder \"\"",
|
|||
|
|
"trainer_notes": "<ul><li>…</li></ul> oder \"\""
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
Leere Felder als leerer String "" wenn nichts Sinnvolles ergibt.$t$,
|
|||
|
|
'exercise',
|
|||
|
|
'json',
|
|||
|
|
'{"type":"object","required":["goal","execution","preparation","trainer_notes"],"properties":{"goal":{"type":"string"},"execution":{"type":"string"},"preparation":{"type":"string"},"trainer_notes":{"type":"string"}}}'::jsonb,
|
|||
|
|
true,
|
|||
|
|
NULL,
|
|||
|
|
true,
|
|||
|
|
3
|
|||
|
|
WHERE NOT EXISTS (SELECT 1 FROM ai_prompts WHERE slug = 'exercise_instruction_rewrite');
|
|||
|
|
|
|||
|
|
-- Referenztext fuer Admin-Ruecksetzen (wie 069)
|
|||
|
|
UPDATE ai_prompts
|
|||
|
|
SET default_template = template
|
|||
|
|
WHERE slug = 'exercise_instruction_rewrite'
|
|||
|
|
AND (default_template IS NULL OR TRIM(default_template) = '');
|