All checks were successful
Deploy Development / deploy (push) Successful in 44s
Test Suite / pytest-backend (push) Successful in 40s
Test Suite / lint-backend (push) Successful in 0s
Test Suite / build-frontend (push) Successful in 14s
Test Suite / k6 /health Baseline (push) Successful in 36s
Test Suite / playwright-tests (push) Successful in 1m16s
- Added `exercise_instruction_rewrite` functionality to enhance AI-generated instructions, incorporating fields for goal, execution, preparation, and trainer notes. - Updated `ExerciseFormAiPromptContext` to include new fields and methods for instruction handling. - Enhanced the `run_exercise_form_ai_suggestion` function to support instruction rewriting and validation. - Modified API endpoints and frontend components to integrate instruction features, including a new button for AI instruction revision. - Incremented application version to 0.8.163 and updated changelog to reflect these changes, including migration details and new functionality.
60 lines
2.7 KiB
SQL
60 lines
2.7 KiB
SQL
-- 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) = '');
|