Commit faffe19f authored by Kantz's avatar Kantz
Browse files

revert for better readablitity

parent f3d2a6e0
from __future__ import annotations
def build_messages(
system_prompt: str,
context_parts: list[str],
history: list[dict] | None = None,
query: str | None = None,
query_instruction: str | None = None,
) -> list[dict[str, str]]:
messages = [{"role": "system", "content": system_prompt}]
messages.append({"role": "user", "content": "\n\n".join(part for part in context_parts if part)})
if history:
messages.extend(history)
if query:
suffix = f"\n\n{query_instruction}" if query_instruction else ""
messages.append(
{
"role": "user",
"content": f"AKTUELLE Eingabe des Studenten (höchste Priorität):\n{query}{suffix}",
}
)
return messages
......@@ -4,7 +4,6 @@ from __future__ import annotations
from typing import Iterable
from app.LLM_services.prompt_messages import build_messages
from app.deterministic_services import llm_client
......@@ -53,18 +52,31 @@ def generate_dialog(
history: list[dict] | None = None,
sources: str | None = None,
) -> str:
effective_parent_refs = parent_refs
context_parts = [
f"Parent-Referenzen:\n{_format_parent_refs(parent_refs)}",
f"Parent-Referenzen:\n{_format_parent_refs(effective_parent_refs)}",
]
if sources:
context_parts.append(f"Kontext/Sources:\n{sources}")
messages = build_messages(
HINT_SYSTEM_PROMPT,
context_parts,
history=history,
query=query,
query_instruction="Reagiere ausschließlich auf diese Eingabe und bleibe sokratisch. Nutze deine Tools um mir zu helfen.",
)
messages = [{"role": "system", "content": HINT_SYSTEM_PROMPT}]
messages.append({"role": "user", "content": "\n\n".join(context_parts)})
if history:
messages.extend(history)
if query:
messages.append(
{
"role": "user",
"content": (
"AKTUELLE Eingabe des Studenten (höchste Priorität):\n"
f"{query}\n\n"
"Reagiere ausschließlich auf diese Eingabe und bleibe sokratisch. Nutze deine Tools um mir zu helfen."
),
}
)
result = llm_client.chat(messages=messages)
return llm_client.get_message_content(result)
# structure of the task-prompt.
from __future__ import annotations
from app.LLM_services.prompt_messages import build_messages
from app.deterministic_services import llm_client
HINT_SYSTEM_PROMPT = r"""
HINT_SYSTEM_PROMPT = """
Du bist ein didaktischer Mathe-Tutor. Du gibst Feedback zu den Lösungen des Nutzers zur Gegebenen Frage.
Vergleiche das Ergebnis mit der korrekten Lösung.
......@@ -28,7 +26,6 @@ Halte dich kurz und präzise.
Denke nach bevor du eine Ausgabe macht.
"""
def generate_hint(
query: str | None,
task: str,
......@@ -40,17 +37,25 @@ def generate_hint(
context_parts = [
f"Hier ist die Zu lösende Aufgaben:{task}\n",
f"Hier ist eine korrekte Lösung als referenz:{solution}\n",
f"Hier ist ein exemplarischer Lösungsweg:{hints}\n",
f"Hier ist ein exemplarischer Lösungsweg:{hints}\n"
]
if sources:
context_parts.append(f"Kontext/Sources:\n{sources}")
messages = build_messages(
HINT_SYSTEM_PROMPT,
context_parts,
history=history,
query=query,
query_instruction="Gib einen kurzen Tipp, der genau diese Eingabe adressiert. Nutze deine Tools um mir zu helfen.",
)
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 Eingabe des Studenten (höchste Priorität):\n{query}\n\n Gib einen kurzen Tipp, der genau diese Eingabe adressiert. Nutze deine Tools um mir zu helfen."
})
result = llm_client.chat(messages=messages)
return llm_client.get_message_content(result)
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment