"""Stufe 1 der Pipeline: erfassen, was im Aufgabentext steht – Teilfragen und Zahlen, noch kein Modell.""" from pathlib import Path from typing import List from core.llm import LLMSession from core.model_schema import CheckIssue, TaskUnderstanding UNDERSTAND_PROMPT_FILE = Path(__file__).parent / "Verstehen-Prompt.txt" def understand_task(session: LLMSession, task: str, issues: List[CheckIssue] = (), data_prompt: str = "") -> TaskUnderstanding: """Stufe 0: erfassen, was im Text steht – Teilfragen, Zahlen, Machbarkeit. Noch kein Modell.""" nachtrag = "" if issues: nachtrag = ("\n\nDEIN VORIGER VERSUCH WAR UNVOLLSTÄNDIG:\n" + "\n".join(f"- [{i.code}] {i.message}" for i in issues) + "\nErfasse die fehlenden Punkte, behalte den Rest bei.") return session.create( TaskUnderstanding, [ {"role": "system", "content": UNDERSTAND_PROMPT_FILE.read_text(encoding="utf-8")}, {"role": "user", "content": f"AUFGABENTEXT:\n{task}\n\n{data_prompt}{nachtrag}".strip()}, ], step="Verstehen", )