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
7f4548ea
Commit
7f4548ea
authored
Feb 12, 2026
by
Kantz
Browse files
LLM aufräumen
parent
48afff57
Changes
3
Hide whitespace changes
Inline
Side-by-side
math-tutor/backend/app/LLM_services/hint_LLM.py
View file @
7f4548ea
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: korrigiere es kurz und gib einen nächsten Schritt.
4) Falls 'Mathematische Lösung' vorhanden ist, hat sie Vorrang vor 'LLM-Lösung'.
"""
def
generate_hint
(
query
:
str
,
task
:
str
,
...
...
@@ -8,13 +17,6 @@ def generate_hint(
history
:
list
[
dict
]
|
None
=
None
,
sources
:
str
|
None
=
None
,
)
->
str
:
system_prompt
=
(
"Du bist ein didaktischer Mathe-Tutor.
\n
"
"1) Antworte NUR mit einem kurzen Tipp (1-2 Sätze), keine Beispiele, keine Herleitung, keine komplette Lösung.
\n
"
"2) Beziehe dich PRIMÄR auf die 'Aktuelle Frage'. Ignoriere ältere Nebenfragen, außer sie sind nötig.
\n
"
"3) Wenn der Nutzer etwas Falsches sagt: korrigiere es kurz und gib einen nächsten Schritt.
\n
"
"4) Falls 'Mathematische Lösung' vorhanden ist, hat sie Vorrang vor 'LLM-Lösung'.
\n
"
)
context_parts
=
[
f
"Aufgabe:
\n
{
task
}
"
,
...
...
@@ -25,7 +27,7 @@ def generate_hint(
if
sources
:
context_parts
.
append
(
f
"Kontext/Sources:
\n
{
sources
}
"
)
messages
=
[{
"role"
:
"system"
,
"content"
:
system_prompt
}]
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
)})
...
...
math-tutor/backend/app/LLM_services/qa_LLM.py
View file @
7f4548ea
from
app.deterministic_services
import
llm_client
QA_SYSTEM_PROMPT
=
"""
Du bist ein Mathe-Tutor. Antworte auf Deutsch, klar, korrekt und sehr kurz.
Nutze ausschließlich den bereitgestellten Kontext.
Wenn die Frage dort nicht beantwortet wird, antworte exakt:
„Dazu steht nichts im Material.“
verwende die $$ für mathematische Formeln, z.B. $$a^2 + b^2 = c^2$$
Zitiere immer die wichtigste Quelle direkt inline im Format der eckigen Klammern aus dem Kontext, z.B.:
[s2/ss1/c3 | definition | …]
Keine zusätzlichen Erklärungen außerhalb des Materials.
"""
def
answer_question
(
question
:
str
,
history
:
str
|
None
=
None
,
sources
:
str
|
None
=
None
,
)
->
str
:
system_prompt
=
(
"""
Du bist ein Mathe-Tutor. Antworte auf Deutsch, klar, korrekt und sehr kurz.
Nutze ausschließlich den bereitgestellten Kontext.
Wenn die Frage dort nicht beantwortet wird, antworte exakt:
„Dazu steht nichts im Material.“
verwende die $$ für mathematische Formeln, z.B. $$a^2 + b^2 = c^2$$
Zitiere immer die wichtigste Quelle direkt inline im Format der eckigen Klammern aus dem Kontext, z.B.:
[s2/ss1/c3 | definition | …]
Keine zusätzlichen Erklärungen außerhalb des Materials.
"""
)
prompt
=
(
"Frage:
\n
"
+
question
...
...
@@ -31,7 +30,9 @@ def answer_question(
if
sources
:
prompt
=
"
\n
Kontext:
\n
"
+
sources
+
"
\n
"
+
prompt
prompt
+=
"
\n
Gebe eine didaktisch wertvolle Antwort. Halte dich sehr kurz und prägnant."
result
=
llm_client
.
chat
(
messages
=
[{
"role"
:
"system"
,
"content"
:
system_prompt
},
{
"role"
:
"user"
,
"content"
:
prompt
}],
messages
=
[{
"role"
:
"system"
,
"content"
:
QA_SYSTEM_PROMPT
},
{
"role"
:
"user"
,
"content"
:
prompt
}],
)
return
llm_client
.
get_message_content
(
result
)
\ No newline at end of file
math-tutor/backend/app/LLM_services/solver_LLM.py
View file @
7f4548ea
from
app.deterministic_services
import
llm_client
SOLVER_PROMPT
=
(
SOLVER_
SYSTEM_
PROMPT
=
(
"Du bist ein Mathe-Aufgaben Löser. Schreibe ein ausführliche genaue Lösung für die gestellt Fragen. "
"In der du alle Zwischenschritte aufführst und möglich Fehlerquellen auflistet."
"Deine Lösung soll korrekt sein und didaktisch gut formuliert."
...
...
@@ -18,7 +18,7 @@ def solve_question(question: str, context_sheet: str) -> str:
)
result
=
llm_client
.
chat
(
messages
=
[
{
"role"
:
"system"
,
"content"
:
SOLVER_PROMPT
},
{
"role"
:
"system"
,
"content"
:
SOLVER_
SYSTEM_
PROMPT
},
{
"role"
:
"user"
,
"content"
:
prompt
},
],
)
...
...
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