Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
math_tutor_dev
public_math_tutor
Commits
6ab334f1
Commit
6ab334f1
authored
Feb 18, 2026
by
Kantz
Browse files
task_hint_LLM implementiert
parent
939372b1
Changes
1
Show whitespace changes
Inline
Side-by-side
math-tutor/backend/app/LLM_services/task_hint_LLM.py
View file @
6ab334f1
from
__future__
import
annotations
from
app.deterministic_services
import
llm_client
HINT_SYSTEM_PROMPT
=
"""
Du bist ein didaktischer Mathe-Tutor."
1) Antworte NUR mit einem kurzen Tipp (1-2 Sätze), keine Beispiele, keine Herleitung, keine komplette Lösung.
2) Beziehe dich PRIMÄR auf die 'Aktuelle Frage'. Ignoriere ältere Nebenfragen, außer sie sind nötig.
3) Wenn der Nutzer etwas Falsches sagt weiße ihn darauf hin gib aber keine Lösung an.
4) Basiere deine Tipps auf den Hinweisen.
5) Die Übergebene Lösung ist IMMER korrekt.
6) Der Nutzer kenn die Läsung und die Hinweise nicht.
verwende die $ für mathematische Formeln, z.B. $a^2 + b^2 = c^2$
Antworte mit folgender Struktur
Das war richtig/das ist noch nicht richtig/gute Frage
[Hier soll der nächster Tipp um weiter zu machen/um den Fehler zu korrigieren stehen ohne Klammern]
"""
def
generate_hint
(
query
:
str
|
None
,
task
:
str
,
...
...
@@ -9,12 +26,28 @@ def generate_hint(
history
:
list
[
dict
]
|
None
=
None
,
sources
:
str
|
None
=
None
,
)
->
str
:
# Temporary placeholder so orchestrator_task can call this module now.
# Replace this implementation with your custom LLM call.
if
hints
:
return
hints
[
0
]
if
solution
:
return
"Hinweis: Nutze die gegebene Musterloesung als Orientierung fuer den naechsten Schritt."
if
task
:
return
"Hinweis: Lies die Aufgabenstellung genau und bestimme zuerst, was gesucht ist."
return
"Kein Hinweis verfuegbar."
context_parts
=
[
f
"Aufgabe:
{
task
}
\n
"
,
f
"Lösung:
{
solution
}
\n
"
,
f
"Hinweise:
{
hints
}
\n
"
]
if
sources
:
context_parts
.
append
(
f
"Kontext/Sources:
\n
{
sources
}
"
)
messages
=
[{
"role"
:
"system"
,
"content"
:
HINT_SYSTEM_PROMPT
}]
# Kompakter Kontext als eine Nachricht (kein langer Fließtext mit History mischen)
messages
.
append
({
"role"
:
"user"
,
"content"
:
"
\n\n
"
.
join
(
context_parts
)})
# History als echte Turns (und ggf. begrenzen, siehe Punkt 2)
if
history
:
messages
.
extend
(
history
)
# Aktuelle Frage als letzte Nachricht, fett hervorgehoben durch Struktur/Delimiters
messages
.
append
({
"role"
:
"user"
,
"content"
:
f
"AKTUELLE FRAGE (höchste Priorität):
\n
{
query
}
\n\n
Gib einen kurzen Tipp zum nächsten Schritt, der genau diese Frage adressiert."
})
result
=
llm_client
.
chat
(
messages
=
messages
)
return
llm_client
.
get_message_content
(
result
)
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment