26 lines
1.1 KiB
Python
26 lines
1.1 KiB
Python
|
|
"""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",
|
|||
|
|
)
|