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.
59 lines
1.7 KiB
Python
59 lines
1.7 KiB
Python
"""
|
|
KI-Prompt Jobs: Resolver + oeffentliche Fassade fuer Uebungs-KI-Aufrufe.
|
|
|
|
Importiert exercise_ai fuer Platzhalter-Builder und OpenRouter-Orchestrierung.
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
from typing import Any, Dict
|
|
|
|
from ai_prompt_context import ExerciseFormAiFocusRow, ExerciseFormAiPromptContext
|
|
from exercise_ai import build_exercise_placeholder_variables
|
|
|
|
|
|
def resolve_exercise_form_variables(cur, slug: str, ctx: ExerciseFormAiPromptContext) -> Dict[str, str]:
|
|
"""Baut die Mustache-Map fuer exercise_summary / exercise_skill_suggestions."""
|
|
return build_exercise_placeholder_variables(
|
|
cur,
|
|
slug=slug,
|
|
title=(ctx.title or "").strip(),
|
|
goal=ctx.goal,
|
|
execution=ctx.execution,
|
|
focus_area_hint=ctx.focus_hint,
|
|
focus_areas_context=ctx.focus_area_tuples(),
|
|
preparation=ctx.preparation,
|
|
trainer_notes=ctx.trainer_notes,
|
|
)
|
|
|
|
|
|
def run_exercise_form_ai_suggestion(
|
|
cur,
|
|
ctx: ExerciseFormAiPromptContext,
|
|
*,
|
|
want_summary: bool,
|
|
want_skills: bool,
|
|
want_instructions: bool = False,
|
|
) -> Dict[str, Any]:
|
|
"""
|
|
Fuehrt Uebungs-KI aus (OpenRouter) — ein Einstieg fuer Router und kuenftige Jobs.
|
|
|
|
``ctx`` = Formularinhalt; ``want_*`` = welche Prompt-Slugs angefragt werden.
|
|
"""
|
|
from exercise_ai import run_exercise_ai_suggestion
|
|
|
|
return run_exercise_ai_suggestion(
|
|
cur,
|
|
form_ctx=ctx,
|
|
want_summary=want_summary,
|
|
want_skills=want_skills,
|
|
want_instructions=want_instructions,
|
|
)
|
|
|
|
|
|
__all__ = [
|
|
"ExerciseFormAiFocusRow",
|
|
"ExerciseFormAiPromptContext",
|
|
"resolve_exercise_form_variables",
|
|
"run_exercise_form_ai_suggestion",
|
|
]
|