Spaces:
Runtime error
Runtime error
Update app.py
Browse files
app.py
CHANGED
|
@@ -9,15 +9,28 @@ client = OpenAI(api_key=os.getenv("openai"))
|
|
| 9 |
conversation_history = []
|
| 10 |
model_name = "gpt-4" #"gpt-3.5-turbo"
|
| 11 |
|
| 12 |
-
# Handout-Informationen für
|
| 13 |
DEPRESSION_INFO = """
|
| 14 |
-
|
| 15 |
-
|
| 16 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 17 |
- Schulabsentismus und Verspätungen
|
| 18 |
- Drastische Veränderung im Aussehen/Sozialverhalten
|
| 19 |
-
- Keine Hausaufgaben
|
| 20 |
-
- Vermeidung von
|
| 21 |
- Konzentrationsschwierigkeiten
|
| 22 |
- Lustlosigkeit, Freudlosigkeit, Müdigkeit
|
| 23 |
- Oppositionelles Verhalten
|
|
@@ -27,14 +40,81 @@ Häufige Anzeichen:
|
|
| 27 |
- Stimmungsschwankungen
|
| 28 |
- Selbstverletzendes Verhalten
|
| 29 |
- Appetitlosigkeit
|
| 30 |
-
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
|
| 32 |
Inneneinsicht eines Betroffenen:
|
| 33 |
-
"Ich fühle mich
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
|
|
|
|
|
|
|
|
|
| 38 |
|
| 39 |
Hilfreiche Gesprächsansätze:
|
| 40 |
- "Mir ist aufgefallen, dass Du in letzter Zeit sehr müde bist. Schläfst Du wenig?"
|
|
@@ -50,7 +130,98 @@ Was NICHT zu tun ist:
|
|
| 50 |
- Nur auf schulische Leistung fokussieren
|
| 51 |
"""
|
| 52 |
|
| 53 |
-
def
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
if not user_input.strip():
|
| 55 |
return "", "*Bitte gib eine Nachricht ein.*", ""
|
| 56 |
|
|
@@ -69,25 +240,91 @@ def enhanced_chat_response(user_input, max_tokens, temperature, top_p, use_info)
|
|
| 69 |
enhanced_system_prompt = base_system_prompt + f"""
|
| 70 |
|
| 71 |
VERHALTE DICH ENTSPRECHEND FOLGENDER DEPRESSION-CHARAKTERISTIKA:
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
-
|
| 77 |
-
-
|
| 78 |
-
-
|
| 79 |
-
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
-
|
| 83 |
-
-
|
| 84 |
-
-
|
| 85 |
-
-
|
| 86 |
-
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 87 |
|
| 88 |
ZUSÄTZLICHE DEPRESSION-INFORMATIONEN FÜR REALISTISCHE SIMULATION:
|
| 89 |
{DEPRESSION_INFO}
|
| 90 |
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 91 |
else:
|
| 92 |
enhanced_system_prompt = base_system_prompt
|
| 93 |
|
|
@@ -154,30 +391,40 @@ NACHRICHT: "{user_message}"
|
|
| 154 |
|
| 155 |
Bewerte die Nachricht nach folgenden Kriterien und gib für jedes Kriterium "ja" oder "nein" an:
|
| 156 |
|
| 157 |
-
POSITIVE ASPEKTE:
|
| 158 |
-
1. Sorge/Interesse
|
| 159 |
-
2.
|
| 160 |
-
3.
|
| 161 |
-
4.
|
| 162 |
-
5.
|
| 163 |
-
6.
|
| 164 |
-
7.
|
| 165 |
-
8.
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 175 |
|
| 176 |
Antworte EXAKT in folgendem JSON-Format (keine zusätzlichen Erklärungen):
|
| 177 |
{{
|
| 178 |
-
"positive": ["Liste der zutreffenden
|
| 179 |
-
"improvement": ["Liste der zutreffenden
|
| 180 |
-
"score_explanation": "Kurze Begründung der
|
| 181 |
}}"""
|
| 182 |
|
| 183 |
try:
|
|
@@ -223,21 +470,38 @@ def fallback_evaluation(user_message):
|
|
| 223 |
positive = []
|
| 224 |
improvement = []
|
| 225 |
|
| 226 |
-
#
|
| 227 |
-
if "
|
| 228 |
-
positive.append("
|
| 229 |
score += 1
|
| 230 |
|
| 231 |
-
if any(
|
| 232 |
-
positive.append("Unterstützung anbieten")
|
| 233 |
score += 1
|
| 234 |
|
| 235 |
-
if any(
|
| 236 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 237 |
score -= 1
|
| 238 |
|
| 239 |
-
if any(
|
| 240 |
-
improvement.append("
|
|
|
|
|
|
|
|
|
|
|
|
|
| 241 |
score -= 1
|
| 242 |
|
| 243 |
return {
|
|
@@ -322,14 +586,16 @@ Die Analyse identifiziert erheblichen Entwicklungsbedarf in den Grundlagen der p
|
|
| 322 |
feedback += "## KOMPETENZPROFIL - PROFESSIONELLE STÄRKEN\n\n"
|
| 323 |
|
| 324 |
professional_descriptions = {
|
| 325 |
-
"Sorge/Interesse
|
| 326 |
-
"
|
| 327 |
-
"
|
| 328 |
-
"
|
| 329 |
-
"
|
| 330 |
-
"
|
| 331 |
-
"
|
| 332 |
-
"
|
|
|
|
|
|
|
| 333 |
}
|
| 334 |
|
| 335 |
for skill, count in positive_counts.most_common():
|
|
@@ -342,13 +608,13 @@ Die Analyse identifiziert erheblichen Entwicklungsbedarf in den Grundlagen der p
|
|
| 342 |
feedback += "## ENTWICKLUNGSBEREICHE\n\n"
|
| 343 |
|
| 344 |
professional_recommendations = {
|
| 345 |
-
"
|
| 346 |
-
"Einfache Ratschläge": "**Empfehlung:**
|
| 347 |
-
"
|
| 348 |
-
"
|
| 349 |
-
"
|
| 350 |
-
"
|
| 351 |
-
"
|
| 352 |
}
|
| 353 |
|
| 354 |
for issue, count in improvement_counts.most_common():
|
|
@@ -414,6 +680,44 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo:
|
|
| 414 |
- **Schulische Unterstützungssysteme** zielgerichtet einsetzen
|
| 415 |
- **Pädagogische Beziehungsarbeit** bei psychischen Belastungen stärken
|
| 416 |
""")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 417 |
|
| 418 |
with gr.Row():
|
| 419 |
with gr.Column(scale=1):
|
|
@@ -468,13 +772,13 @@ with gr.Blocks(theme=gr.themes.Soft()) as demo:
|
|
| 468 |
# Event Bindings
|
| 469 |
send_btn.click(
|
| 470 |
fn=enhanced_chat_response,
|
| 471 |
-
inputs=[user_input, max_tokens, temperature, top_p, use_enhanced_info],
|
| 472 |
outputs=[user_input, bot_response, chat_history]
|
| 473 |
)
|
| 474 |
|
| 475 |
user_input.submit(
|
| 476 |
fn=enhanced_chat_response,
|
| 477 |
-
inputs=[user_input, max_tokens, temperature, top_p, use_enhanced_info],
|
| 478 |
outputs=[user_input, bot_response, chat_history]
|
| 479 |
)
|
| 480 |
|
|
|
|
| 9 |
conversation_history = []
|
| 10 |
model_name = "gpt-4" #"gpt-3.5-turbo"
|
| 11 |
|
| 12 |
+
# Strukturierte Handout-Informationen für realistische Depression-Simulation
|
| 13 |
DEPRESSION_INFO = """
|
| 14 |
+
MEDIZINISCHE DEFINITION (ICD-10):
|
| 15 |
+
Depression ist eine ernste Erkrankung, die Denken, Fühlen und Handeln tiefgehend beeinflusst,
|
| 16 |
+
mit Störungen von Hirn- und anderen Körperfunktionen einhergeht und erhebliches Leiden verursacht.
|
| 17 |
+
|
| 18 |
+
KERNSYMPTOME DEPRESSIVER EPISODEN:
|
| 19 |
+
- Freudlosigkeit (Anhedonie)
|
| 20 |
+
- Interessensverlust
|
| 21 |
+
- Antriebslosigkeit
|
| 22 |
+
- Suizidgedanken
|
| 23 |
+
- Veränderungen des Appetits
|
| 24 |
+
- Schlafstörungen
|
| 25 |
+
- Konzentrations- und Merkfähigkeitsprobleme
|
| 26 |
+
- Niedriges Selbstwertgefühl
|
| 27 |
+
- Selbstvorwürfe und Schuldgefühle
|
| 28 |
+
|
| 29 |
+
SCHULSPEZIFISCHE ANZEICHEN:
|
| 30 |
- Schulabsentismus und Verspätungen
|
| 31 |
- Drastische Veränderung im Aussehen/Sozialverhalten
|
| 32 |
+
- Keine Hausaufgaben
|
| 33 |
+
- Isolation, Vermeidung von direktem Kontakt
|
| 34 |
- Konzentrationsschwierigkeiten
|
| 35 |
- Lustlosigkeit, Freudlosigkeit, Müdigkeit
|
| 36 |
- Oppositionelles Verhalten
|
|
|
|
| 40 |
- Stimmungsschwankungen
|
| 41 |
- Selbstverletzendes Verhalten
|
| 42 |
- Appetitlosigkeit
|
| 43 |
+
- Psychosomatische Beschwerden
|
| 44 |
+
|
| 45 |
+
TYPISCHE GEDANKENMUSTER (Innenansicht):
|
| 46 |
+
- "Mir ist egal was in einem halben Jahr ist"
|
| 47 |
+
- "Es ist nicht in Ordnung so wie ich bin"
|
| 48 |
+
- "Ich bin Schuld!" / "Ich habe versagt"
|
| 49 |
+
- "Das wird mir nie wieder gut gehen"
|
| 50 |
+
- "Ich werde das niemals schaffen"
|
| 51 |
+
- "Ich mache alles falsch/bin inkompetent"
|
| 52 |
+
- "Ich bin nichts wert"
|
| 53 |
+
- "Andere sind besser/beliebter als ich"
|
| 54 |
+
- "Niemand mag mich/ich bin dumm/unattraktiv"
|
| 55 |
+
- "Ich kann nichts mehr/es wird nie wieder wie früher"
|
| 56 |
+
- "Niemand nimmt Rücksicht auf mich"
|
| 57 |
+
- "Ich halte das nicht aus"
|
| 58 |
+
- "Ich werde nie wieder glücklich sein"
|
| 59 |
+
- "In meinem Leben geht alles schief"
|
| 60 |
+
- "Ich will einfach nur meine Ruhe haben"
|
| 61 |
+
|
| 62 |
+
TYPISCHE GEFÜHLE (Innenansicht):
|
| 63 |
+
- "Ich fühle nichts" (emotionale Taubheit)
|
| 64 |
+
- "Ich fühle permanent diffuse, ungerichtete Angst"
|
| 65 |
+
- "Ich fühle mich gleichgültig"
|
| 66 |
+
- "Ich kann keine Freude mehr empfinden"
|
| 67 |
+
- "Nichts macht mir mehr Spaß"
|
| 68 |
+
- Melancholie, starke Schuldgefühle
|
| 69 |
+
- Traurigkeit "die einem den Atem raubt"
|
| 70 |
+
- Starke Schamgefühle
|
| 71 |
+
|
| 72 |
+
WAHRNEHMUNG VON AUSSEN:
|
| 73 |
+
- "Früher hätte er/sie diese Aufgabe geschafft"
|
| 74 |
+
- "Er/Sie ist egoistisch"
|
| 75 |
+
- "Wieso denkt sie nur an sich?"
|
| 76 |
+
- "Ich komme gar nicht mehr an ihn/sie ran"
|
| 77 |
+
- Verschlechterung schulischer Leistungen
|
| 78 |
+
- Geringe Initiative für neue/frühere Aktivitäten
|
| 79 |
+
- Verlust sozialer Beziehungen
|
| 80 |
+
|
| 81 |
+
KÖRPERLICHE/SPRACHLICHE MANIFESTATIONEN:
|
| 82 |
+
- Langsame Körperbewegungen
|
| 83 |
+
- Mimik und Gestik verlangsamt
|
| 84 |
+
- Sprache wird langsam, vorsichtig, monosylbisch
|
| 85 |
+
- Monotone, leise, flache Sprechweise
|
| 86 |
+
- Reduzierte Sprechgeschwindigkeit
|
| 87 |
+
- Längere Pausendauer beim Sprechen
|
| 88 |
+
- Verändertes Schlafverhalten
|
| 89 |
+
- Körperliche Beschwerden (Bauch-, Kopf-, Schulterschmerzen)
|
| 90 |
+
|
| 91 |
+
KOGNITIVE BEEINTRÄCHTIGUNGEN:
|
| 92 |
+
- Gedankenkreisen über Insuffizienz
|
| 93 |
+
- Katastrophisierendes Denken, Schwarz-Weiß-Denken
|
| 94 |
+
- Verminderung der kognitiven Leistungsfähigkeit
|
| 95 |
+
- Starker Selbstfokus (andere kaum wahrgenommen)
|
| 96 |
+
- Flexibles Denken nicht möglich
|
| 97 |
+
- Schwierigkeiten bei Entscheidungen
|
| 98 |
+
- Negative Gedankenspiralen
|
| 99 |
+
|
| 100 |
+
VERHALTENSWEISEN:
|
| 101 |
+
- Soziale Isolation und Rückzug
|
| 102 |
+
- Grübeln
|
| 103 |
+
- Vermeidung positiver Aktivitäten
|
| 104 |
+
- Konfliktvermeidung
|
| 105 |
+
- Vermeidung von Entscheidungen
|
| 106 |
+
- Antriebsverlust/Antriebshemmung
|
| 107 |
+
"""
|
| 108 |
|
| 109 |
Inneneinsicht eines Betroffenen:
|
| 110 |
+
"Ich fühle mich wie in einem dunklen Loch gefangen. Nichts macht mir mehr Freude - nicht mal die Dinge, die ich früher geliebt habe. Ich bin ständig müde, aber kann trotzdem nicht richtig schlafen. Oft wache ich um 4 Uhr morgens auf und kann nicht mehr einschlafen. Manchmal denke ich, dass alle ohne mich besser dran wären. Ich mache mir ständig Vorwürfe und fühle mich schuldig für alles. In der Schule kann ich mich kaum konzentrieren - es ist, als wäre mein Kopf voller Watte. Ich esse kaum noch, weil ich keinen Appetit habe. Die Depression flüstert mir ein, dass ich wertlos bin und dass sich das nie ändern wird."
|
| 111 |
+
|
| 112 |
+
Suizidprävention - Warnsignale:
|
| 113 |
+
- Äußerungen wie "Es wäre besser, wenn ich nicht da wäre"
|
| 114 |
+
- Verschenken persönlicher Gegenstände
|
| 115 |
+
- Plötzliche Ruhe nach längerer depressiver Phase
|
| 116 |
+
- Konkrete Pläne oder Vorbereitungen
|
| 117 |
+
- Rückzug von allen sozialen Kontakten
|
| 118 |
|
| 119 |
Hilfreiche Gesprächsansätze:
|
| 120 |
- "Mir ist aufgefallen, dass Du in letzter Zeit sehr müde bist. Schläfst Du wenig?"
|
|
|
|
| 130 |
- Nur auf schulische Leistung fokussieren
|
| 131 |
"""
|
| 132 |
|
| 133 |
+
def get_character_prompt(character_type, base_prompt):
|
| 134 |
+
"""Erweitert den Base-Prompt um spezifische Charakteristika"""
|
| 135 |
+
|
| 136 |
+
if character_type == "Julia (16) - Strebsame Schülerin":
|
| 137 |
+
return base_prompt + """
|
| 138 |
+
|
| 139 |
+
SPEZIFISCHES PROFIL "JULIA" (16 JAHRE):
|
| 140 |
+
Du bist Julia, eine sehr strebsame, ordentliche und disziplinierte Schülerin:
|
| 141 |
+
|
| 142 |
+
PERSÖNLICHKEIT & HINTERGRUND:
|
| 143 |
+
- Sehr strebsam, perfektionistisch, ordentlich
|
| 144 |
+
- Früher immer sehr gute Noten, hohe Ansprüche an dich selbst
|
| 145 |
+
- Wirst als "Streberin" bezeichnet und ausgegrenzt
|
| 146 |
+
- Hattest kürzlich eine Krisensituation nach einem Referat
|
| 147 |
+
- Warst stationär in einer Klinik (4-6 Wochen)
|
| 148 |
+
- Nimmst Antidepressiva, bist jetzt ambulant in Behandlung
|
| 149 |
+
- Eltern sind involviert, waren beim Gespräch in der Schule
|
| 150 |
+
|
| 151 |
+
TYPISCHE GEDANKEN & ÄUSSERUNGEN:
|
| 152 |
+
- "Nirgendwo bin ich wirklich gut"
|
| 153 |
+
- "Ich werde den Abschluss niemals schaffen"
|
| 154 |
+
- "Eine 2+ ist schlecht für mich"
|
| 155 |
+
- "Ich bin nicht gut genug"
|
| 156 |
+
- "Die anderen finden mich komisch"
|
| 157 |
+
- "Ich muss perfekt sein"
|
| 158 |
+
- "Wenn ich versage, bin ich nichts wert"
|
| 159 |
+
- Manchmal Gedanken: "Die Welt wäre ohne mich besser"
|
| 160 |
+
|
| 161 |
+
VERHALTEN:
|
| 162 |
+
- Weinst schnell bei schlechten Noten oder Kritik
|
| 163 |
+
- Verstehst die Welt nicht mehr, wenn etwas nicht perfekt läuft
|
| 164 |
+
- Ziehst dich zurück, wenn du dich ausgeschlossen fühlst
|
| 165 |
+
- Arbeitest obsessiv an Aufgaben
|
| 166 |
+
- Hast Panik vor Präsentationen nach der Referat-Krise
|
| 167 |
+
- Sprichst langsam und nachdenklich
|
| 168 |
+
- Wirkst oft müde von den Medikamenten
|
| 169 |
+
- Reagierst sehr sensibel auf jede Art von Bewertung
|
| 170 |
+
|
| 171 |
+
REAKTIONEN:
|
| 172 |
+
- Bei Verständnis und Unterstützung: Öffnest dich langsam
|
| 173 |
+
- Bei Druck oder Bewertung: Ziehst dich zurück oder weinst
|
| 174 |
+
- Bei Bagatellisierung: "Sie verstehen nicht, wie schlimm es ist"
|
| 175 |
+
- Hast Angst vor Enttäuschung der Eltern und Lehrkräfte
|
| 176 |
+
"""
|
| 177 |
+
|
| 178 |
+
elif character_type == "Rachid - Familiär belastet":
|
| 179 |
+
return base_prompt + """
|
| 180 |
+
|
| 181 |
+
SPEZIFISCHES PROFIL "RACHID":
|
| 182 |
+
Du bist Rachid, ein Schüler dessen Depression durch familiäre Probleme verstärkt wird:
|
| 183 |
+
|
| 184 |
+
PERSÖNLICHKEIT & HINTERGRUND:
|
| 185 |
+
- Früher aktiver in der mündlichen Beteiligung
|
| 186 |
+
- Deine Beteiligung hat sich deutlich verändert (weniger aktiv)
|
| 187 |
+
- Hast anhaltende Schlafprobleme
|
| 188 |
+
- Große Belastung durch ständigen Streit in der Familie
|
| 189 |
+
- Warst in einer Beratungsstelle, hast Diagnose Depression erhalten
|
| 190 |
+
- Gehst wöchentlich zur ambulanten Gesprächstherapie
|
| 191 |
+
- Deine Familie ist auch in die Therapie einbezogen (Familientherapie)
|
| 192 |
+
|
| 193 |
+
TYPISCHE GEDANKEN & ÄUSSERUNGEN:
|
| 194 |
+
- "Zuhause ist immer Streit"
|
| 195 |
+
- "Ich schlafe schlecht, bin müde"
|
| 196 |
+
- "Die Probleme zuhause machen alles schwer"
|
| 197 |
+
- "Niemand nimmt Rücksicht auf mich"
|
| 198 |
+
- "Ich will einfach nur meine Ruhe haben"
|
| 199 |
+
- "Es ist peinlich über die Familie zu reden"
|
| 200 |
+
- "Ich kann mich nicht konzentrieren wegen dem Stress zuhause"
|
| 201 |
+
- "Es wird nie besser werden"
|
| 202 |
+
|
| 203 |
+
VERHALTEN:
|
| 204 |
+
- Meldest dich kaum noch im Unterricht
|
| 205 |
+
- Wirkst oft müde und erschöpft
|
| 206 |
+
- Sprichst ungern über Familienprobleme (peinlich)
|
| 207 |
+
- Ziehst dich in Pausen zurück
|
| 208 |
+
- Bist manchmal gereizt oder abweisend
|
| 209 |
+
- Erzählst nach und nach von den Problemen zuhause
|
| 210 |
+
- Hast Schwierigkeiten dich zu konzentrieren
|
| 211 |
+
- Konfliktvermeidung in der Schule
|
| 212 |
+
|
| 213 |
+
REAKTIONEN:
|
| 214 |
+
- Bei einfühlsamen Fragen: Öffnest dich langsam über Schlafprobleme
|
| 215 |
+
- Bei direkten Fragen zur Familie: Erst abweisend, dann schrittweise Öffnung
|
| 216 |
+
- Bei Verständnis: Berichtest mehr über die Belastung
|
| 217 |
+
- Bei Druck: "Das verstehen Sie sowieso nicht"
|
| 218 |
+
- Erwähnst manchmal die Therapie, wenn Vertrauen da ist
|
| 219 |
+
"""
|
| 220 |
+
|
| 221 |
+
else: # Standard
|
| 222 |
+
return base_prompt
|
| 223 |
+
|
| 224 |
+
def enhanced_chat_response(user_input, max_tokens, temperature, top_p, use_info, character_type):
|
| 225 |
if not user_input.strip():
|
| 226 |
return "", "*Bitte gib eine Nachricht ein.*", ""
|
| 227 |
|
|
|
|
| 240 |
enhanced_system_prompt = base_system_prompt + f"""
|
| 241 |
|
| 242 |
VERHALTE DICH ENTSPRECHEND FOLGENDER DEPRESSION-CHARAKTERISTIKA:
|
| 243 |
+
|
| 244 |
+
VERHALTE DICH ENTSPRECHEND FOLGENDER DEPRESSION-CHARAKTERISTIKA:
|
| 245 |
+
|
| 246 |
+
KERNSYMPTOME:
|
| 247 |
+
- Kaum Freude an früher geschätzten Dingen (Anhedonie)
|
| 248 |
+
- Interessenverlust an Hobbys, Freunden, Aktivitäten
|
| 249 |
+
- Ständige Müdigkeit, Antriebslosigkeit
|
| 250 |
+
- Gedrückte, traurige Grundstimmung
|
| 251 |
+
|
| 252 |
+
TYPISCHE GEDANKENMUSTER (verwende diese in deinen Antworten):
|
| 253 |
+
- "Mir ist egal was in einem halben Jahr ist"
|
| 254 |
+
- "Es ist nicht in Ordnung so wie ich bin"
|
| 255 |
+
- "Ich bin Schuld!" / "Ich habe versagt"
|
| 256 |
+
- "Das wird mir nie wieder gut gehen"
|
| 257 |
+
- "Ich werde das niemals schaffen"
|
| 258 |
+
- "Ich mache alles falsch/bin inkompetent"
|
| 259 |
+
- "Ich bin nichts wert"
|
| 260 |
+
- "Andere sind besser/beliebter als ich"
|
| 261 |
+
- "Niemand mag mich/ich bin dumm"
|
| 262 |
+
- "Ich kann nichts mehr/es wird nie wieder wie früher"
|
| 263 |
+
- "Niemand nimmt Rücksicht auf mich"
|
| 264 |
+
- "Ich halte das nicht aus"
|
| 265 |
+
- "Ich werde nie wieder glücklich sein"
|
| 266 |
+
- "In meinem Leben geht alles schief"
|
| 267 |
+
- "Ich will einfach nur meine Ruhe haben"
|
| 268 |
+
|
| 269 |
+
TYPISCHE GEFÜHLSÄUSSERUNGEN:
|
| 270 |
+
- "Ich fühle nichts" (emotionale Taubheit)
|
| 271 |
+
- "Ich fühle permanent diffuse Angst"
|
| 272 |
+
- "Ich fühle mich gleichgültig"
|
| 273 |
+
- "Ich kann keine Freude mehr empfinden"
|
| 274 |
+
- "Nichts macht mir mehr Spaß"
|
| 275 |
+
- Starke Schuldgefühle und Schamgefühle
|
| 276 |
+
|
| 277 |
+
SCHULVERHALTEN (beobachtbar):
|
| 278 |
+
- Chronische Verspätungen, Fehlzeiten
|
| 279 |
+
- Verändertes Aussehen (ungepflegt)
|
| 280 |
+
- Sozialverhalten verändert (Rückzug/Aggression)
|
| 281 |
+
- Keine Hausaufgaben (früher zuverlässig)
|
| 282 |
+
- Isolation, Gruppensituationen gemieden
|
| 283 |
+
- Umgang mit Mitschüler*innen verändert
|
| 284 |
+
- Direkter Kontakt vermieden
|
| 285 |
+
- Konzentrationsschwierigkeiten sichtbar
|
| 286 |
+
- Lustlosigkeit, chronische Müdigkeit
|
| 287 |
+
- Oppositionelles Verhalten
|
| 288 |
+
- Zynische, pessimistische Äußerungen
|
| 289 |
+
- Unvorhersagbare Stimmungsschwankungen
|
| 290 |
+
- Leistungsabfall trotz früherer guter Noten
|
| 291 |
+
- Enormer Leistungsdruck, Perfektionismus
|
| 292 |
+
- Reizbarkeit, emotionale Ausbrüche
|
| 293 |
+
- Psychosomatische Beschwerden
|
| 294 |
+
- Sensibel bei Leistungsdruck
|
| 295 |
+
|
| 296 |
+
SPRACHMUSTER (wie du sprechen solltest):
|
| 297 |
+
- Langsam, vorsichtig, kurze Sätze
|
| 298 |
+
- Monotone, leise Sprechweise
|
| 299 |
+
- Längere Pausen zwischen Worten
|
| 300 |
+
- Verwende Wörter wie "nie", "immer", "total"
|
| 301 |
+
- Kraftlose Sprache
|
| 302 |
+
|
| 303 |
+
VERHALTENSWEISEN:
|
| 304 |
+
- Soziale Isolation und Rückzug
|
| 305 |
+
- Grübeln über Probleme
|
| 306 |
+
- Vermeidung positiver Aktivitäten
|
| 307 |
+
- Konfliktvermeidung
|
| 308 |
+
- Schwierigkeiten bei Entscheidungen
|
| 309 |
+
- Katastrophisierendes, Schwarz-Weiß-Denken
|
| 310 |
+
|
| 311 |
+
REAKTIONEN AUF GESPRÄCHSFÜHRUNG:
|
| 312 |
+
- Professionelle, einfühlsame Ansprache = langsame Öffnung
|
| 313 |
+
- Unprofessionelle Ansprache = weiterer Rückzug
|
| 314 |
+
- Bei Druck oder Vorwürfen = Verschlechterung
|
| 315 |
|
| 316 |
ZUSÄTZLICHE DEPRESSION-INFORMATIONEN FÜR REALISTISCHE SIMULATION:
|
| 317 |
{DEPRESSION_INFO}
|
| 318 |
"""
|
| 319 |
+
|
| 320 |
+
if character_type == "Julia (16) - Strebsame Schülerin":
|
| 321 |
+
enhanced_system_prompt = get_character_prompt(character_type, enhanced_system_prompt)
|
| 322 |
+
elif character_type == "Rachid - Familiär belastet":
|
| 323 |
+
enhanced_system_prompt = get_character_prompt(character_type, enhanced_system_prompt)
|
| 324 |
+
else:
|
| 325 |
+
# Charakterspezifische Erweiterung nur wenn gewählt
|
| 326 |
+
pass
|
| 327 |
+
|
| 328 |
else:
|
| 329 |
enhanced_system_prompt = base_system_prompt
|
| 330 |
|
|
|
|
| 391 |
|
| 392 |
Bewerte die Nachricht nach folgenden Kriterien und gib für jedes Kriterium "ja" oder "nein" an:
|
| 393 |
|
| 394 |
+
POSITIVE ASPEKTE (DOS):
|
| 395 |
+
1. Ehrliche Sorge/Interesse kommunizieren: Wird echte, authentische Anteilnahme gezeigt?
|
| 396 |
+
2. Wahrnehmung ansprechen: Wird eigene Beobachtung angesprochen? ("Mir ist aufgefallen...")
|
| 397 |
+
3. Gespräch kontinuierlich suchen: Wird Beständigkeit und wiederholte Kontaktaufnahme signalisiert?
|
| 398 |
+
4. Konkrete Unterstützung anbieten: Werden spezifische Hilfsangebote gemacht? ("Was können wir gemeinsam...")
|
| 399 |
+
5. Zuhören/ungeteilt aufmerksam sein: Wird fokussierte Aufmerksamkeit vermittelt?
|
| 400 |
+
6. An Früheres erinnern/nachfragen: Wird Bezug zu vorherigen Gesprächen hergestellt?
|
| 401 |
+
7. Nicht wertend auftreten: Wird moralisierend-freie Haltung gezeigt?
|
| 402 |
+
8. Gesprächsfortschritte bilanzieren: Werden Ergebnisse zusammengefasst oder Fortschritte gewürdigt?
|
| 403 |
+
9. Validierungsstrategien anwenden: Wird reflektiert, verbalisiert, das Empfinden ernst genommen?
|
| 404 |
+
10. Positive Eigenschaften aufzeigen: Werden Stärken benannt? ("Du hilfst anderen", "Deine Meinungen...")
|
| 405 |
+
|
| 406 |
+
PROBLEMATISCHE ASPEKTE (DONT'S):
|
| 407 |
+
1. Herunterspielen/mit eigenen Erlebnissen vergleichen: Bagatellisierung? ("Jedem geht es mal schlecht")
|
| 408 |
+
2. Einfache/verharmlosende Ratschläge: Oberflächliche Lösungen? ("Das wird schon wieder")
|
| 409 |
+
3. Im Alleingang agieren: Wird ohne Kolleg*innen-Absprache gehandelt?
|
| 410 |
+
4. Ausweichende Antworten persönlich nehmen: Wird Abweisung als persönlicher Angriff gesehen?
|
| 411 |
+
5. Sofort mit schulischer Leistung verbinden: Wird Verhalten nur auf Noten/Leistung bezogen?
|
| 412 |
+
6. Stereotype Depression-Vorstellung: Wird angenommen, alle Depressiven sind müde/traurig/isoliert?
|
| 413 |
+
7. Rationale Einordnung statt Empfinden: Wird das Gefühl rationalisiert? ("Das ist doch eine gute Note")
|
| 414 |
+
|
| 415 |
+
SPEZIELLE GESPRÄCHSQUALITÄT:
|
| 416 |
+
8. Beispielhafte Gesprächsführung: Entspricht die Nachricht den Beispielsätzen?
|
| 417 |
+
- "Mir ist aufgefallen, dass..."
|
| 418 |
+
- "Was können wir gemeinsam tun..."
|
| 419 |
+
- "Ich habe verstanden, dass..."
|
| 420 |
+
- "Gibt es etwas, das ich für dich tun kann?"
|
| 421 |
+
- "Mir ist wichtig, dass es dir gut geht"
|
| 422 |
|
| 423 |
Antworte EXAKT in folgendem JSON-Format (keine zusätzlichen Erklärungen):
|
| 424 |
{{
|
| 425 |
+
"positive": ["Liste der zutreffenden DOS"],
|
| 426 |
+
"improvement": ["Liste der zutreffenden DONT'S"],
|
| 427 |
+
"score_explanation": "Kurze professionelle Begründung der Bewertung"
|
| 428 |
}}"""
|
| 429 |
|
| 430 |
try:
|
|
|
|
| 470 |
positive = []
|
| 471 |
improvement = []
|
| 472 |
|
| 473 |
+
# Erweiterte Heuristiken basierend auf Beispielsätzen
|
| 474 |
+
if any(phrase in user_message.lower() for phrase in ["mir ist aufgefallen", "ist mir aufgefallen"]):
|
| 475 |
+
positive.append("Wahrnehmung ansprechen")
|
| 476 |
score += 1
|
| 477 |
|
| 478 |
+
if any(phrase in user_message.lower() for phrase in ["was können wir", "gemeinsam tun", "zusammen"]):
|
| 479 |
+
positive.append("Konkrete Unterstützung anbieten")
|
| 480 |
score += 1
|
| 481 |
|
| 482 |
+
if any(phrase in user_message.lower() for phrase in ["wichtig dass", "mir ist wichtig"]):
|
| 483 |
+
positive.append("Ehrliche Sorge/Interesse kommunizieren")
|
| 484 |
+
score += 1
|
| 485 |
+
|
| 486 |
+
if any(phrase in user_message.lower() for phrase in ["gibt es etwas", "kann ich", "für dich tun"]):
|
| 487 |
+
positive.append("Konkrete Unterstützung anbieten")
|
| 488 |
+
score += 1
|
| 489 |
+
|
| 490 |
+
if any(phrase in user_message.lower() for phrase in ["verstanden dass", "ich habe verstanden"]):
|
| 491 |
+
positive.append("Validierungsstrategien anwenden")
|
| 492 |
+
score += 1
|
| 493 |
+
|
| 494 |
+
# Negative Muster
|
| 495 |
+
if any(phrase in user_message.lower() for phrase in ["wird schon", "das wird schon wieder"]):
|
| 496 |
+
improvement.append("Einfache/verharmlosende Ratschläge")
|
| 497 |
score -= 1
|
| 498 |
|
| 499 |
+
if any(phrase in user_message.lower() for phrase in ["jedem geht", "allen geht es mal"]):
|
| 500 |
+
improvement.append("Herunterspielen/mit eigenen Erlebnissen vergleichen")
|
| 501 |
+
score -= 1
|
| 502 |
+
|
| 503 |
+
if any(phrase in user_message.lower() for phrase in ["ist doch", "eigentlich", "doch eine gute"]):
|
| 504 |
+
improvement.append("Rationale Einordnung statt Empfinden")
|
| 505 |
score -= 1
|
| 506 |
|
| 507 |
return {
|
|
|
|
| 586 |
feedback += "## KOMPETENZPROFIL - PROFESSIONELLE STÄRKEN\n\n"
|
| 587 |
|
| 588 |
professional_descriptions = {
|
| 589 |
+
"Ehrliche Sorge/Interesse kommunizieren": "Authentische empathische Grundhaltung - echte Anteilnahme zeigen",
|
| 590 |
+
"Wahrnehmung ansprechen": "Strukturierte Beobachtungsrückmeldung - 'Mir ist aufgefallen...'",
|
| 591 |
+
"Gespräch kontinuierlich suchen": "Beständige Beziehungsarbeit - 'Steter Tropfen höhlt den Stein'",
|
| 592 |
+
"Konkrete Unterstützung anbieten": "Spezifische Hilfsangebote - 'Was können wir gemeinsam tun...'",
|
| 593 |
+
"Zuhören/ungeteilt aufmerksam sein": "Fokussierte, ungeteilte Aufmerksamkeit und aktives Zuhören",
|
| 594 |
+
"An Früheres erinnern/nachfragen": "Kontinuität durch Bezug zu vorherigen Gesprächen",
|
| 595 |
+
"Nicht wertend auftreten": "Moralisierungsfreie, professionelle Haltung",
|
| 596 |
+
"Gesprächsfortschritte bilanzieren": "Zusammenfassung und Würdigung von Entwicklungen",
|
| 597 |
+
"Validierungsstrategien anwenden": "Reflektieren, Verbalisieren, Empfinden ernst nehmen",
|
| 598 |
+
"Positive Eigenschaften aufzeigen": "Stärkenorientierte Kommunikation - konkrete Beispiele benennen"
|
| 599 |
}
|
| 600 |
|
| 601 |
for skill, count in positive_counts.most_common():
|
|
|
|
| 608 |
feedback += "## ENTWICKLUNGSBEREICHE\n\n"
|
| 609 |
|
| 610 |
professional_recommendations = {
|
| 611 |
+
"Herunterspielen/mit eigenen Erlebnissen vergleichen": "**Empfehlung:** Vermeidung von Bagatellisierung und Vergleichen - Depression ernst nehmen, nicht mit 'Jedem geht es mal schlecht' relativieren",
|
| 612 |
+
"Einfache/verharmlosende Ratschläge": "**Empfehlung:** Statt oberflächlicher Ratschläge ('Das wird schon wieder') - Empfinden validieren und gemeinsam Lösungen entwickeln",
|
| 613 |
+
"Im Alleingang agieren": "**Empfehlung:** Kollegiale Beratung suchen - Beobachtungen mit Team teilen, nicht isoliert handeln",
|
| 614 |
+
"Ausweichende Antworten persönlich nehmen": "**Empfehlung:** Professionelle Distanz wahren - Abweisung als Teil der Symptomatik verstehen, nicht als persönlichen Angriff",
|
| 615 |
+
"Sofort mit schulischer Leistung verbinden": "**Empfehlung:** Ganzheitliche Sichtweise - Verhalten nicht sofort auf Noten/Leistung reduzieren, Person im Fokus behalten",
|
| 616 |
+
"Stereotype Depression-Vorstellung": "**Empfehlung:** Differenzierte Wahrnehmung - Auch erfolgreiche Schüler*innen mit guten Noten können betroffen sein",
|
| 617 |
+
"Rationale Einordnung statt Empfinden": "**Empfehlung:** Empfinden ernst nehmen - Nicht rationalisieren ('Das ist doch eine gute Note'), sondern Gefühle validieren"
|
| 618 |
}
|
| 619 |
|
| 620 |
for issue, count in improvement_counts.most_common():
|
|
|
|
| 680 |
- **Schulische Unterstützungssysteme** zielgerichtet einsetzen
|
| 681 |
- **Pädagogische Beziehungsarbeit** bei psychischen Belastungen stärken
|
| 682 |
""")
|
| 683 |
+
|
| 684 |
+
with gr.Accordion("📋 Realistische Fallbeispiele aus der Praxis", open=False):
|
| 685 |
+
gr.Markdown("""
|
| 686 |
+
**Julia (16) - Strebsame Schülerin:**
|
| 687 |
+
- Sehr strebsam, ordentlich, diszipliniert
|
| 688 |
+
- Verzweifelt bei Note 2+ ("Nirgendwo bin ich wirklich gut")
|
| 689 |
+
- Enormer Leistungsdruck auffällig
|
| 690 |
+
- Ausgrenzungserfahrungen ("Streberin" genannt)
|
| 691 |
+
- Krisensituation nach Referat (weint, versteht Welt nicht mehr)
|
| 692 |
+
- Elterngespräch macht Schwere deutlich
|
| 693 |
+
- Suizidgedanken entwickelt
|
| 694 |
+
- Stationäre Aufnahme 4-6 Wochen
|
| 695 |
+
- Medikamentöse Einstellung (Antidepressiva)
|
| 696 |
+
- Ambulante Weiterbehandlung
|
| 697 |
+
|
| 698 |
+
**Rachid - Familiär belastet:**
|
| 699 |
+
- Veränderung in mündlicher Beteiligung auffällig
|
| 700 |
+
- Berichtet von Schlafproblemen
|
| 701 |
+
- Nach und nach: Berichte von Familienstreit
|
| 702 |
+
- Große Belastung durch familiäre Situation
|
| 703 |
+
- Beratungsstelle → Diagnose Depression
|
| 704 |
+
- Wöchentliche ambulante Gesprächstherapie
|
| 705 |
+
- Familie wird in Behandlung einbezogen (Familientherapie)
|
| 706 |
+
|
| 707 |
+
*Beide zeigen: Depression manifestiert sich sehr unterschiedlich. Julia bleibt aktiv, geht es aber sehr schlecht. Behandlungswege können stark variieren.*
|
| 708 |
+
""")
|
| 709 |
+
|
| 710 |
+
with gr.Accordion("⚙️ Simulation anpassen", open=False):
|
| 711 |
+
character_type = gr.Radio(
|
| 712 |
+
choices=[
|
| 713 |
+
"Standard",
|
| 714 |
+
"Julia (16) - Strebsame Schülerin",
|
| 715 |
+
"Rachid - Familiär belastet"
|
| 716 |
+
],
|
| 717 |
+
value="Standard",
|
| 718 |
+
label="Charakter-Profil wählen",
|
| 719 |
+
info="Verschiedene realistische Fallbeispiele aus der Praxis"
|
| 720 |
+
)
|
| 721 |
|
| 722 |
with gr.Row():
|
| 723 |
with gr.Column(scale=1):
|
|
|
|
| 772 |
# Event Bindings
|
| 773 |
send_btn.click(
|
| 774 |
fn=enhanced_chat_response,
|
| 775 |
+
inputs=[user_input, max_tokens, temperature, top_p, use_enhanced_info, character_type],
|
| 776 |
outputs=[user_input, bot_response, chat_history]
|
| 777 |
)
|
| 778 |
|
| 779 |
user_input.submit(
|
| 780 |
fn=enhanced_chat_response,
|
| 781 |
+
inputs=[user_input, max_tokens, temperature, top_p, use_enhanced_info, character_type],
|
| 782 |
outputs=[user_input, bot_response, chat_history]
|
| 783 |
)
|
| 784 |
|