Frajosgro commited on
Commit
485b570
·
verified ·
1 Parent(s): 46a44aa

Add 2 files

Browse files
Files changed (2) hide show
  1. index.html +274 -419
  2. prompts.txt +3 -1
index.html CHANGED
@@ -3,7 +3,7 @@
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
- <title>Franz - Psychoanalytischer Beistand</title>
7
  <script src="https://cdn.tailwindcss.com"></script>
8
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
  <style>
@@ -74,24 +74,9 @@
74
  50% { transform: translateY(-5px); }
75
  }
76
 
77
- .analysis-tag {
78
- background-color: #e0e7ff;
79
- color: #4338ca;
80
- }
81
-
82
- .concept-tag {
83
- background-color: #ecfdf5;
84
- color: #065f46;
85
- }
86
-
87
- .recommendation-tag {
88
- background-color: #ffedd5;
89
- color: #9a3412;
90
- }
91
-
92
- .warning-tag {
93
- background-color: #fee2e2;
94
- color: #b91c1c;
95
  }
96
 
97
  .fade-in {
@@ -103,29 +88,11 @@
103
  to { opacity: 1; transform: translateY(0); }
104
  }
105
 
106
- .analysis-section {
107
- border-left: 3px solid #6366f1;
108
  padding-left: 12px;
109
  margin: 12px 0;
110
  }
111
-
112
- .concept-box {
113
- background-color: #f8fafc;
114
- border: 1px solid #e2e8f0;
115
- border-radius: 8px;
116
- padding: 12px;
117
- margin: 12px 0;
118
- }
119
-
120
- .divider {
121
- border-top: 1px dashed #cbd5e1;
122
- margin: 16px 0;
123
- }
124
-
125
- .highlight {
126
- background-color: #fef08a;
127
- padding: 0 2px;
128
- }
129
  </style>
130
  </head>
131
  <body class="bg-gray-50">
@@ -139,7 +106,7 @@
139
  <h1 class="title-font text-3xl font-bold text-gray-800">Franz</h1>
140
  </div>
141
  <p class="text-gray-600 max-w-2xl mx-auto">
142
- Ihr psychoanalytischer Beistand für tiefenpsychologische Einsichten und konkrete Handlungsempfehlungen
143
  </p>
144
  </header>
145
 
@@ -152,12 +119,7 @@
152
  </div>
153
  <div>
154
  <h2 class="font-semibold">Dr. Franz Huber</h2>
155
- <p class="text-xs text-indigo-200">Psychoanalytischer Experte</p>
156
- </div>
157
- <div class="ml-auto flex space-x-2">
158
- <button class="w-8 h-8 rounded-full bg-indigo-500 hover:bg-indigo-400 flex items-center justify-center">
159
- <i class="fas fa-ellipsis-v text-sm"></i>
160
- </button>
161
  </div>
162
  </div>
163
 
@@ -171,20 +133,17 @@
171
  </div>
172
  </div>
173
  <div class="psycho-bubble rounded-lg p-4 max-w-[85%]">
174
- <p class="font-medium text-indigo-800 mb-2">Willkommen zu unserer psychoanalytischen Sitzung.</p>
175
- <p class="text-gray-700 mb-2">Ich bin Franz, Ihr psychologischer Beistand mit tiefenanalytischem Fokus. Ich helfe Ihnen, zwischenmenschliche Dynamiken zu verstehen und gesunde Handlungsstrategien zu entwickeln.</p>
 
176
 
177
- <div class="concept-box mt-3">
178
- <p class="font-medium text-gray-800 mb-1">Mein Ansatz basiert auf:</p>
179
- <ul class="list-disc pl-5 space-y-1 text-gray-700">
180
- <li>Tiefenpsychologische Analyse unbewusster Prozesse</li>
181
- <li>Bindungstheorie und Objektbeziehungen</li>
182
- <li>Analyse von Wiederholungsmustern</li>
183
- <li>Identifikation von Abwehrmechanismen</li>
184
- </ul>
185
  </div>
186
 
187
- <p class="text-gray-700 mt-3">Bitte schildern Sie mir Ihre Situation möglichst detailliert. Je mehr Kontext Sie geben, desto präziser kann ich analysieren.</p>
 
 
188
  </div>
189
  </div>
190
  </div>
@@ -192,59 +151,46 @@
192
  <!-- Input Area -->
193
  <div class="border-t border-gray-200 p-4 bg-gray-50">
194
  <div class="flex items-center">
195
- <button id="show-example" class="w-10 h-10 rounded-full bg-gray-200 hover:bg-gray-300 flex items-center justify-center mr-2">
196
- <i class="fas fa-lightbulb text-gray-600"></i>
197
- </button>
198
  <div class="flex-grow relative">
199
- <textarea id="message-input" rows="1" class="w-full border border-gray-300 rounded-full py-3 px-4 pr-12 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 resize-none" placeholder="Beschreiben Sie Ihre Situation..."></textarea>
200
  <button id="send-button" class="absolute right-3 top-1/2 transform -translate-y-1/2 w-8 h-8 rounded-full bg-indigo-600 hover:bg-indigo-700 flex items-center justify-center">
201
  <i class="fas fa-paper-plane text-white text-sm"></i>
202
  </button>
203
  </div>
204
  </div>
205
- <div class="mt-2 flex flex-wrap gap-2">
206
- <button class="quick-prompt text-xs bg-gray-200 hover:bg-gray-300 text-gray-700 px-3 py-1 rounded-full" data-prompt="Ich habe einen Konflikt mit einer Freundin, die mich immer wieder enttäuscht.">
207
- <i class="fas fa-user-friends mr-1"></i> Freundschaftskonflikt
208
- </button>
209
- <button class="quick-prompt text-xs bg-gray-200 hover:bg-gray-300 text-gray-700 px-3 py-1 rounded-full" data-prompt="Mein Partner zeigt narzisstische Tendenzen und ich weiß nicht, wie ich damit umgehen soll.">
210
- <i class="fas fa-heart mr-1"></i> Beziehungsmuster
211
- </button>
212
- <button class="quick-prompt text-xs bg-gray-200 hover:bg-gray-300 text-gray-700 px-3 py-1 rounded-full" data-prompt="Ich fühle mich in meiner Arbeitsumgebung manipuliert und weiß nicht, wie ich reagieren soll.">
213
- <i class="fas fa-mask mr-1"></i> Manipulation erkennen
214
- </button>
215
- <button class="quick-prompt text-xs bg-gray-200 hover:bg-gray-300 text-gray-700 px-3 py-1 rounded-full" data-prompt="Ich bemerke, dass ich immer wieder in ähnliche problematische Situationen gerate.">
216
- <i class="fas fa-history mr-1"></i> Wiederholungsmuster
217
- </button>
218
- </div>
219
  </div>
220
  </div>
221
 
222
  <!-- Info Footer -->
223
  <footer class="mt-8 text-center text-sm text-gray-500">
224
- <p>Franz bietet psychologischen Beistand, ersetzt jedoch keine professionelle Therapie.</p>
225
- <p class="mt-1">Bei akuten psychischen Krisen wenden Sie sich bitte an einen Facharzt oder Notdienst.</p>
226
  </footer>
227
  </div>
228
 
229
  <script>
230
- // User profile to personalize responses
231
  const userProfile = {
232
  name: null,
 
233
  age: null,
234
  gender: null,
235
- knownPatterns: [],
236
- previousIssues: []
 
 
237
  };
238
 
239
- // Conversation history
240
  let conversationHistory = [];
241
 
242
  document.addEventListener('DOMContentLoaded', function() {
243
  const messageInput = document.getElementById('message-input');
244
  const sendButton = document.getElementById('send-button');
245
  const chatMessages = document.getElementById('chat-messages');
246
- const showExampleButton = document.getElementById('show-example');
247
- const quickPrompts = document.querySelectorAll('.quick-prompt');
 
 
 
248
 
249
  // Auto-resize textarea
250
  messageInput.addEventListener('input', function() {
@@ -252,7 +198,7 @@
252
  this.style.height = (this.scrollHeight) + 'px';
253
  });
254
 
255
- // Send message on Enter key (but allow Shift+Enter for new lines)
256
  messageInput.addEventListener('keydown', function(e) {
257
  if (e.key === 'Enter' && !e.shiftKey) {
258
  e.preventDefault();
@@ -263,22 +209,6 @@
263
  // Send message on button click
264
  sendButton.addEventListener('click', sendMessage);
265
 
266
- // Quick prompts
267
- quickPrompts.forEach(button => {
268
- button.addEventListener('click', function() {
269
- messageInput.value = this.getAttribute('data-prompt');
270
- messageInput.focus();
271
- messageInput.dispatchEvent(new Event('input'));
272
- });
273
- });
274
-
275
- // Show example button
276
- showExampleButton.addEventListener('click', function() {
277
- messageInput.value = "Ich habe das Gefühl, dass meine Freundin mich emotional erpresst. Wenn ich Zeit mit anderen verbringe, wird sie eifersüchtig und macht mir Vorwürfe. Gleichzeitig erwartet sie, dass ich immer für sie da bin, ist aber selbst oft nicht verfügbar. Dieses Muster kenne ich auch von früheren Freundschaften.";
278
- messageInput.focus();
279
- messageInput.dispatchEvent(new Event('input'));
280
- });
281
-
282
  // Send message function
283
  function sendMessage() {
284
  const messageText = messageInput.value.trim();
@@ -291,10 +221,8 @@
291
  timestamp: new Date()
292
  });
293
 
294
- // Check for profile information in first message
295
- if (conversationHistory.length === 1) {
296
- extractProfileInfo(messageText);
297
- }
298
 
299
  // Add user message to chat
300
  addMessage(messageText, 'user');
@@ -306,23 +234,89 @@
306
  // Show typing indicator
307
  showTypingIndicator();
308
 
309
- // Simulate response after delay
310
  setTimeout(() => {
311
  removeTypingIndicator();
312
- const response = generatePsychoResponse(messageText);
313
- addMessage(response, 'psycho');
 
 
 
 
 
314
 
315
  // Add to conversation history
316
  conversationHistory.push({
317
  sender: 'psycho',
318
- text: JSON.stringify(response), // Store the full response object
 
319
  timestamp: new Date()
320
  });
321
- }, 1500 + Math.random() * 2000);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
322
  }
323
 
324
  // Add message to chat
325
- function addMessage(text, sender) {
326
  const messageDiv = document.createElement('div');
327
  messageDiv.className = `flex fade-in`;
328
 
@@ -338,104 +332,7 @@
338
  </div>
339
  `;
340
  } else {
341
- // Psycho response with analysis structure
342
- const responseData = typeof text === 'string' ? JSON.parse(text) : text;
343
-
344
- let tagsHtml = '';
345
- if (responseData.tags && responseData.tags.length > 0) {
346
- tagsHtml = `<div class="mb-3">${responseData.tags.map(tag =>
347
- `<span class="${tag.class} text-xs font-medium px-2 py-1 rounded mr-2">${tag.text}</span>`
348
- ).join('')}</div>`;
349
- }
350
-
351
- let introHtml = '';
352
- if (responseData.intro) {
353
- introHtml = `<p class="font-medium text-indigo-800 mb-3">${personalizeText(responseData.intro)}</p>`;
354
- }
355
-
356
- let analysisHtml = '';
357
- if (responseData.analysis && responseData.analysis.length > 0) {
358
- analysisHtml = `
359
- <div class="analysis-section">
360
- <p class="font-medium text-gray-800 mb-2">Tiefenpsychologische Analyse:</p>
361
- ${responseData.analysis.map(p =>
362
- `<p class="text-gray-700 mb-2">${personalizeText(p)}</p>`
363
- ).join('')}
364
- </div>
365
- `;
366
- }
367
-
368
- let conceptsHtml = '';
369
- if (responseData.concepts && responseData.concepts.length > 0) {
370
- conceptsHtml = `
371
- <div class="concept-box">
372
- <p class="font-medium text-gray-800 mb-2">Relevante psychologische Konzepte:</p>
373
- <ul class="list-disc pl-5 space-y-1 text-gray-700">
374
- ${responseData.concepts.map(c =>
375
- `<li><span class="font-medium">${c.term}:</span> ${c.definition}</li>`
376
- ).join('')}
377
- </ul>
378
- </div>
379
- `;
380
- }
381
-
382
- let patternsHtml = '';
383
- if (responseData.patterns && responseData.patterns.length > 0) {
384
- // Update user profile with recognized patterns
385
- responseData.patterns.forEach(pattern => {
386
- if (!userProfile.knownPatterns.includes(pattern)) {
387
- userProfile.knownPatterns.push(pattern);
388
- }
389
- });
390
-
391
- patternsHtml = `
392
- <div class="mt-3">
393
- <p class="font-medium text-gray-800 mb-1">Erkannte Muster in Ihrer Schilderung:</p>
394
- <ul class="list-disc pl-5 space-y-1 text-gray-700">
395
- ${responseData.patterns.map(p =>
396
- `<li>${p}</li>`
397
- ).join('')}
398
- </ul>
399
- </div>
400
- `;
401
- }
402
-
403
- let recommendationsHtml = '';
404
- if (responseData.recommendations && responseData.recommendations.length > 0) {
405
- recommendationsHtml = `
406
- <div class="divider"></div>
407
- <div class="mt-2">
408
- <p class="font-medium text-gray-800 mb-2">Konkrete Handlungsempfehlungen:</p>
409
- <ol class="list-decimal pl-5 space-y-2 text-gray-700">
410
- ${responseData.recommendations.map(r =>
411
- `<li>${personalizeText(r)}</li>`
412
- ).join('')}
413
- </ol>
414
- </div>
415
- `;
416
- }
417
-
418
- let warningHtml = '';
419
- if (responseData.warning) {
420
- warningHtml = `
421
- <div class="mt-3 p-3 bg-red-50 rounded-lg border border-red-200">
422
- <p class="font-medium text-red-800 flex items-center">
423
- <i class="fas fa-exclamation-triangle mr-2"></i> Wichtiger Hinweis
424
- </p>
425
- <p class="text-red-700 mt-1">${responseData.warning}</p>
426
- </div>
427
- `;
428
- }
429
-
430
- let followupHtml = '';
431
- if (responseData.followup) {
432
- followupHtml = `
433
- <div class="mt-3">
434
- <p class="text-gray-700 italic">${responseData.followup}</p>
435
- </div>
436
- `;
437
- }
438
-
439
  messageDiv.innerHTML = `
440
  <div class="flex-shrink-0 mr-3">
441
  <div class="w-8 h-8 rounded-full bg-indigo-100 flex items-center justify-center">
@@ -443,14 +340,16 @@
443
  </div>
444
  </div>
445
  <div class="psycho-bubble rounded-lg p-4 max-w-[85%]">
446
- ${tagsHtml}
447
- ${introHtml}
448
- ${analysisHtml}
449
- ${conceptsHtml}
450
- ${patternsHtml}
451
- ${recommendationsHtml}
452
- ${warningHtml}
453
- ${followupHtml}
 
 
454
  </div>
455
  `;
456
  }
@@ -459,47 +358,6 @@
459
  chatMessages.scrollTop = chatMessages.scrollHeight;
460
  }
461
 
462
- // Personalize text with user profile info
463
- function personalizeText(text) {
464
- if (userProfile.name) {
465
- text = text.replace(/Sie/g, userProfile.name)
466
- .replace(/Ihre/g, `${userProfile.name}s`);
467
- }
468
-
469
- // Highlight psychological terms
470
- const terms = ['Übertragung', 'Gegenübertragung', 'Wiederholungszwang', 'Abwehrmechanismus',
471
- 'Projektion', 'Spaltung', 'Narzissmus', 'Objektbeziehung', 'Bindungstheorie'];
472
-
473
- terms.forEach(term => {
474
- const regex = new RegExp(term, 'gi');
475
- text = text.replace(regex, `<span class="highlight">${term}</span>`);
476
- });
477
-
478
- return text;
479
- }
480
-
481
- // Extract basic profile info from first message
482
- function extractProfileInfo(text) {
483
- // Check for name (simple pattern)
484
- const nameMatch = text.match(/(?:ich bin|mein name ist|ich heiße)\s+([A-Za-zäöüßÄÖÜ]+)/i);
485
- if (nameMatch && nameMatch[1]) {
486
- userProfile.name = nameMatch[1];
487
- }
488
-
489
- // Check for age
490
- const ageMatch = text.match(/(?:ich bin|alter)\s+(\d+)\s+(?:jahre|jahren)/i);
491
- if (ageMatch && ageMatch[1]) {
492
- userProfile.age = parseInt(ageMatch[1]);
493
- }
494
-
495
- // Check for gender
496
- if (text.match(/\b(frau|weiblich)\b/i)) {
497
- userProfile.gender = 'weiblich';
498
- } else if (text.match(/\b(mann|männlich)\b/i)) {
499
- userProfile.gender = 'männlich';
500
- }
501
- }
502
-
503
  // Show typing indicator
504
  function showTypingIndicator() {
505
  const typingDiv = document.createElement('div');
@@ -532,180 +390,177 @@
532
  }
533
  }
534
 
535
- // Generate psychoanalytic response based on keywords and history
536
- function generatePsychoResponse(message) {
537
  const lowerMessage = message.toLowerCase();
538
 
539
- // Check for specific keywords and patterns
540
- if (lowerMessage.includes('freund') || lowerMessage.includes('freundin') || lowerMessage.includes('freundschaft')) {
541
- return {
542
- intro: 'Ihre Schilderung der Freundschaftssituation zeigt interessante psychodynamische Muster, die wir gemeinsam untersuchen können.',
543
- tags: [
544
- { text: 'Analyse', class: 'analysis-tag' },
545
- { text: 'Übertragung', class: 'concept-tag' },
546
- { text: 'Bindungstheorie', class: 'concept-tag' },
547
- { text: 'Empfehlung', class: 'recommendation-tag' }
548
- ],
549
- analysis: [
550
- 'Die beschriebene Dynamik weist Merkmale einer <span class="font-medium text-indigo-700">unsicheren Bindung</span> auf, möglicherweise mit Elementen einer <span class="font-medium text-indigo-700">ambivalenten Bindungsstruktur</span>.',
551
- 'Besonders auffällig ist das <span class="font-medium text-indigo-700">Wiederholungsmuster</span> in Ihren Beschreibungen, das auf unbewusste <span class="font-medium text-indigo-700">Wiederholungszwänge</span> hindeuten könnte.',
552
- 'Die emotionalen Reaktionen, die Sie beschreiben, könnten auf <span class="font-medium text-indigo-700">projizierte Inhalte</span> hinweisen, bei denen eigene unbewusste Konflikte auf die Freundschaft übertragen werden.'
553
- ],
554
- concepts: [
555
- {
556
- term: 'Wiederholungszwang',
557
- definition: 'Unbewusste Tendenz, frühere (oft schmerzhafte) Erfahrungen in neuen Beziehungen zu reinszenieren, um sie symbolisch zu bewältigen.'
558
- },
559
- {
560
- term: 'Projektive Identifizierung',
561
- definition: 'Abwehrmechanismus, bei dem eigene unerwünschte Anteile auf andere projiziert werden, die dann tatsächlich so reagieren.'
562
- }
563
- ],
564
- patterns: [
565
- 'Muster der Überverantwortung (Sie fühlen sich für die Beziehung verantwortlicher als die Freundin)',
566
- 'Emotionale Erpressung (Schuldzuweisungen bei Abgrenzung)',
567
- 'Ungleiche Verfügbarkeit (Sie sind mehr da als sie)'
568
- ],
569
- recommendations: [
570
- 'Reflektieren Sie, welche unbewussten Bedürfnisse in dieser Freundschaft erfüllt werden. Welche Funktion hat sie für Sie?',
571
- 'Experimentieren Sie mit klaren Grenzsetzungen ("Ich kann dich an diesem Tag nicht treffen") und beobachten Sie die Reaktionen.',
572
- 'Führen Sie ein Tagebuch über Ihre emotionalen Reaktionen in der Freundschaft. Wann fühlen Sie sich besonders unwohl?',
573
- 'Erkunden Sie, ob ähnliche Muster in anderen Beziehungen auftreten. Gibt es historische Parallelen?'
574
- ],
575
- followup: 'Könnten Sie mir mehr darüber erzählen, wie Sie sich in den Momenten fühlen, wenn Ihre Freundin Sie enttäuscht? Was geht Ihnen dann durch den Kopf?'
576
- };
577
- }
578
- else if (lowerMessage.includes('manipul') || lowerMessage.includes('gaslight') || lowerMessage.includes('psychopath')) {
579
  return {
580
- intro: 'Die von Ihnen beschriebenen Interaktionen zeigen Merkmale möglicher manipulativer Dynamiken, die wir ernst nehmen sollten.',
581
- tags: [
582
- { text: 'Analyse', class: 'analysis-tag' },
583
- { text: 'Dunkle Triade', class: 'concept-tag' },
584
- { text: 'Gaslighting', class: 'concept-tag' },
585
- { text: 'Empfehlung', class: 'recommendation-tag' },
586
- { text: 'Warnhinweis', class: 'warning-tag' }
587
- ],
588
- analysis: [
589
- 'Die beschriebenen Verhaltensweisen weisen Merkmale der <span class="font-medium text-indigo-700">dunklen Triade</span> (Narzissmus, Machiavellismus, Psychopathie) auf.',
590
- 'Besonders besorgniserregend sind die Hinweise auf mögliches <span class="font-medium text-indigo-700">Gaslighting</span>, eine Form der psychologischen Manipulation, die darauf abzielt, Ihr Realitätsgefühl zu untergraben.',
591
- 'Die von Ihnen beschriebenen <span class="font-medium text-indigo-700">Schuldzuweisungen</span> und <span class="font-medium text-indigo-700">Verantwortungsverschiebungen</span> sind klassische Merkmale toxischer Dynamiken.'
592
- ],
593
- concepts: [
594
- {
595
- term: 'Gaslighting',
596
- definition: 'Form der psychologischen Manipulation, bei der das Opfer systematisch verunsichert wird, indem seine Wahrnehmung der Realität in Frage gestellt wird.'
597
- },
598
- {
599
- term: 'Narzisstische Persönlichkeitsstörung',
600
- definition: 'Charakterisiert durch Grandiosität, mangelndes Einfühlungsvermögen und ein tiefgreifendes Bedürfnis nach Bewunderung.'
601
- }
602
- ],
603
- patterns: [
604
- 'Reality Distortion (Ihre Wahrnehmung wird systematisch in Frage gestellt)',
605
- 'Love Bombing & Devaluation (Extreme Zuwendung gefolgt von Abwertung)',
606
- 'Triangulation (Einbeziehung Dritter zur Verunsicherung)'
607
- ],
608
- recommendations: [
609
- 'Dokumentieren Sie objektiv die manipulativen Vorfälle (Datum, Aussage, Wirkung auf Sie)',
610
- 'Stärken Sie Ihr soziales Unterstützungsnetzwerk außerhalb dieser Beziehung',
611
- 'Setzen Sie klare, nicht verhandelbare Grenzen (z.B. "Ich lasse mich nicht anschreien")',
612
- 'Erwägen Sie professionelle Unterstützung bei der Bewältigung'
613
- ],
614
- warning: 'Manipulative Beziehungen können langfristige psychische Folgen haben. Ziehen Sie in Erwägung, sich an eine Fachperson zu wenden, wenn Sie sich überfordert fühlen.',
615
- followup: 'Wie lange besteht diese Dynamik bereits? Gab es einen Punkt, an dem die Beziehung anders war?'
616
  };
617
  }
618
- else if (lowerMessage.includes('beziehung') || lowerMessage.includes('partner') || lowerMessage.includes('liebe')) {
 
 
619
  return {
620
- intro: 'Ihre Beziehungsschilderung offenbart tiefenpsychologisch relevante Muster, die wir gemeinsam untersuchen können.',
621
- tags: [
622
- { text: 'Analyse', class: 'analysis-tag' },
623
- { text: 'Objektbeziehung', class: 'concept-tag' },
624
- { text: 'Wiederholungszwang', class: 'concept-tag' },
625
- { text: 'Empfehlung', class: 'recommendation-tag' }
626
- ],
627
- analysis: [
628
- 'Die beschriebenen Interaktionsmuster lassen auf <span class="font-medium text-indigo-700">unbewusste Objektbeziehungen</span> schließen, die aus früheren Erfahrungen internalisiert wurden.',
629
- 'Auffällig ist das mögliche Vorhandensein eines <span class="font-medium text-indigo-700">Wiederholungszwangs</span>, bei dem Sie unbewusst ähnliche Beziehungsdynamiken wie in der Vergangenheit herstellen.',
630
- 'Die emotionalen Reaktionen könnten auf <span class="font-medium text-indigo-700">unverarbeitete Konflikte</span> oder <span class="font-medium text-indigo-700">Abwehrmechanismen</span> hinweisen.'
631
- ],
632
- concepts: [
633
- {
634
- term: 'Objektbeziehung',
635
- definition: 'Psychische Repräsentationen von Beziehungen, die in der Kindheit verinnerlicht wurden und aktuelle Beziehungen prägen.'
636
- },
637
- {
638
- term: 'Wiederholungszwang',
639
- definition: 'Unbewusste Tendenz, frühere Beziehungserfahrungen zu wiederholen, oft in dem Versuch, sie symbolisch zu bewältigen.'
640
- }
641
- ],
642
- patterns: [
643
- 'Partnerwahl nach vertrautem Muster (ähnlich zu früheren Beziehungen oder Elternfiguren)',
644
- 'Konfliktvermeidung oder -eskalation nach bestimmten Skripten',
645
- 'Projektion eigener unerwünschter Anteile auf den Partner'
646
- ],
647
- recommendations: [
648
- 'Erstellen Sie eine Beziehungs-Timeline: Wann gab es Wendepunkte? Wie haben Sie reagiert?',
649
- 'Identifizieren Sie die unbewussten Erwartungen, die Sie an Beziehungen stellen (z.B. "Er muss mich immer verstehen")',
650
- 'Experimentieren Sie mit neuen Verhaltensweisen in Konfliktsituationen (z.B. Pause machen statt eskalieren)',
651
- 'Erkunden Sie Ihre Bindungsmuster in der Kindheit (Wie wurden Konflikte gelöst?)'
652
- ],
653
- followup: 'Können Sie ein konkretes Beispiel für eine Situation beschreiben, in der Sie dieses Muster besonders deutlich erlebt haben?'
654
  };
655
  }
656
- else if (lowerMessage.includes('wiederhol') || lowerMessage.includes('muster') || lowerMessage.includes('immer wieder')) {
657
- return {
658
- intro: 'Ihre Beschreibung von wiederkehrenden Mustern ist psychodynamisch hochrelevant und gibt uns wichtige Hinweise.',
659
- tags: [
660
- { text: 'Analyse', class: 'analysis-tag' },
661
- { text: 'Wiederholungszwang', class: 'concept-tag' },
662
- { text: 'Übertragung', class: 'concept-tag' },
663
- { text: 'Empfehlung', class: 'recommendation-tag' }
664
- ],
665
- analysis: [
666
- 'Die von Ihnen beschriebene <span class="font-medium text-indigo-700">Wiederholung ähnlicher Situationen</span> könnte auf einen unbewussten <span class="font-medium text-indigo-700">Wiederholungszwang</span> hinweisen, bei dem Sie versuchen, frühere Konflikte symbolisch zu lösen.',
667
- 'Psychoanalytisch betrachtet, wiederholen wir oft <span class="font-medium text-indigo-700">unbewusst vertraute Muster</span>, selbst wenn diese schmerzhaft sind, weil sie uns ein Gefühl von Kontrolle und Vertrautheit geben.',
668
- 'Diese Muster können auf <span class="font-medium text-indigo-700">unverarbeitete Erfahrungen</span> oder <span class="font-medium text-indigo-700">frühe Beziehungserfahrungen</span> zurückgehen, die sich in Ihrem aktuellen Leben reinszenieren.'
669
- ],
670
- concepts: [
671
- {
672
- term: 'Wiederholungszwang',
673
- definition: 'Von Freud beschriebenes Phänomen, bei dem Menschen unbewusst Situationen wiederholen, die mit unverarbeiteten Konflikten verbunden sind.'
674
- },
675
- {
676
- term: 'Inszenierung',
677
- definition: 'Unbewusste Wiederholung von Konflikten im zwischenmenschlichen Verhalten, oft als Versuch der Konfliktlösung.'
678
  }
679
- ],
680
- patterns: [
681
- 'Wiederholung bestimmter Beziehungskonstellationen',
682
- 'Ähnliche emotionale Reaktionsmuster in verschiedenen Kontexten',
683
- 'Reproduktion von Machtverhältnissen aus der Vergangenheit'
684
- ],
685
- recommendations: [
686
- 'Führen Sie ein Muster-Tagebuch, in dem Sie ähnliche Situationen vergleichen (Was ist gleich? Was anders?)',
687
- 'Identifizieren Sie die gemeinsamen Elemente in diesen Situationen (bestimmte Gefühle, Personenmerkmale, Konfliktthemen)',
688
- 'Erkunden Sie, welche unbewussten Bedürfnisse durch diese Muster erfüllt werden könnten (z.B. Vertrautheit, Bestätigung von Glaubenssätzen)',
689
- 'Experimentieren Sie bewusst mit abweichendem Verhalten in ähnlichen Situationen und beobachten Sie die Wirkung'
690
- ],
691
- followup: 'Können Sie sich an das erste Mal erinnern, als Sie dieses Muster bei sich bemerkt haben? Wie alt waren Sie da etwa?'
692
- };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
693
  }
694
  else {
695
- // Default response for unrecognized topics
696
- return {
697
- intro: 'Vielen Dank für Ihre Schilderung.',
698
- tags: [
699
- { text: 'Analyse', class: 'analysis-tag' }
700
- ],
701
- analysis: [
702
- 'Um eine tiefenpsychologische Analyse durchführen zu können, benötige ich etwas mehr Kontext. Könnten Sie mir bitte genauer beschreiben:',
703
- '<ul class="list-disc pl-5 space-y-1"><li>Die spezifische Situation oder Interaktion, die Sie beschäftigt</li><li>Ihre emotionalen Reaktionen und Gedanken dabei</li><li>Ob ähnliche Muster in anderen Beziehungen oder Situationen auftreten</li></ul>',
704
- 'Je detaillierter Ihre Schilderung, desto präziser kann ich die zugrundeliegenden psychodynamischen Prozesse analysieren.'
705
- ],
706
- followup: 'Was hat Sie besonders an dieser Situation bewegt? Gab es einen Auslöser oder einen Moment, der besonders prägend war?'
707
- };
708
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
709
  }
710
  });
711
  </script>
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Franz - Psychoanalytischer Dialog</title>
7
  <script src="https://cdn.tailwindcss.com"></script>
8
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
  <style>
 
74
  50% { transform: translateY(-5px); }
75
  }
76
 
77
+ .highlight {
78
+ background-color: #fef08a;
79
+ padding: 0 2px;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
80
  }
81
 
82
  .fade-in {
 
88
  to { opacity: 1; transform: translateY(0); }
89
  }
90
 
91
+ .personalized-question {
92
+ border-left: 3px solid #10b981;
93
  padding-left: 12px;
94
  margin: 12px 0;
95
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  </style>
97
  </head>
98
  <body class="bg-gray-50">
 
106
  <h1 class="title-font text-3xl font-bold text-gray-800">Franz</h1>
107
  </div>
108
  <p class="text-gray-600 max-w-2xl mx-auto">
109
+ Ihr persönlicher psychoanalytischer Gesprächspartner für tiefere Selbsterkenntnis
110
  </p>
111
  </header>
112
 
 
119
  </div>
120
  <div>
121
  <h2 class="font-semibold">Dr. Franz Huber</h2>
122
+ <p class="text-xs text-indigo-200">Psychoanalytischer Gesprächspartner</p>
 
 
 
 
 
123
  </div>
124
  </div>
125
 
 
133
  </div>
134
  </div>
135
  <div class="psycho-bubble rounded-lg p-4 max-w-[85%]">
136
+ <p class="text-sm text-gray-500 mb-1" id="greeting-time"></p>
137
+ <p class="font-medium text-indigo-800 mb-2">Willkommen zu unserem persönlichen Dialog.</p>
138
+ <p class="text-gray-700 mb-3">Ich bin Franz und begleite Sie in einem reflektierenden Gespräch. Bevor wir beginnen: </p>
139
 
140
+ <div class="personalized-question">
141
+ <p class="text-gray-700 font-medium">Wie darf ich Sie nennen? Und was hat Sie heute zu mir geführt?</p>
 
 
 
 
 
 
142
  </div>
143
 
144
+ <div class="mt-3 text-sm text-gray-500">
145
+ <p>Sie können mir einfach natürlich schreiben, wie Sie es einem vertrauten Gesprächspartner tun würden.</p>
146
+ </div>
147
  </div>
148
  </div>
149
  </div>
 
151
  <!-- Input Area -->
152
  <div class="border-t border-gray-200 p-4 bg-gray-50">
153
  <div class="flex items-center">
 
 
 
154
  <div class="flex-grow relative">
155
+ <textarea id="message-input" rows="1" class="w-full border border-gray-300 rounded-full py-3 px-4 pr-12 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 resize-none" placeholder="Ihre Antwort..."></textarea>
156
  <button id="send-button" class="absolute right-3 top-1/2 transform -translate-y-1/2 w-8 h-8 rounded-full bg-indigo-600 hover:bg-indigo-700 flex items-center justify-center">
157
  <i class="fas fa-paper-plane text-white text-sm"></i>
158
  </button>
159
  </div>
160
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
161
  </div>
162
  </div>
163
 
164
  <!-- Info Footer -->
165
  <footer class="mt-8 text-center text-sm text-gray-500">
166
+ <p>Dies ist ein psychoanalytisches Dialogexperiment und ersetzt keine Therapie.</p>
 
167
  </footer>
168
  </div>
169
 
170
  <script>
171
+ // Enhanced user profile with conversation context
172
  const userProfile = {
173
  name: null,
174
+ preferredName: null,
175
  age: null,
176
  gender: null,
177
+ knownIssues: [],
178
+ emotionalState: null,
179
+ conversationStage: 'initial', // initial, name_established, issue_shared, deep_dive
180
+ lastTopics: []
181
  };
182
 
 
183
  let conversationHistory = [];
184
 
185
  document.addEventListener('DOMContentLoaded', function() {
186
  const messageInput = document.getElementById('message-input');
187
  const sendButton = document.getElementById('send-button');
188
  const chatMessages = document.getElementById('chat-messages');
189
+ const greetingTime = document.getElementById('greeting-time');
190
+
191
+ // Set greeting time
192
+ const now = new Date();
193
+ greetingTime.textContent = now.toLocaleDateString('de-DE', { weekday: 'long', day: 'numeric', month: 'long', hour: '2-digit', minute: '2-digit' });
194
 
195
  // Auto-resize textarea
196
  messageInput.addEventListener('input', function() {
 
198
  this.style.height = (this.scrollHeight) + 'px';
199
  });
200
 
201
+ // Send message on Enter key
202
  messageInput.addEventListener('keydown', function(e) {
203
  if (e.key === 'Enter' && !e.shiftKey) {
204
  e.preventDefault();
 
209
  // Send message on button click
210
  sendButton.addEventListener('click', sendMessage);
211
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
212
  // Send message function
213
  function sendMessage() {
214
  const messageText = messageInput.value.trim();
 
221
  timestamp: new Date()
222
  });
223
 
224
+ // Update user profile based on message
225
+ updateProfileFromMessage(messageText);
 
 
226
 
227
  // Add user message to chat
228
  addMessage(messageText, 'user');
 
234
  // Show typing indicator
235
  showTypingIndicator();
236
 
237
+ // Generate response after delay
238
  setTimeout(() => {
239
  removeTypingIndicator();
240
+ const response = generatePersonalizedResponse(messageText);
241
+ addMessage(response.text, 'psycho', response.meta);
242
+
243
+ // Update conversation stage
244
+ if (response.meta && response.meta.updateStage) {
245
+ userProfile.conversationStage = response.meta.updateStage;
246
+ }
247
 
248
  // Add to conversation history
249
  conversationHistory.push({
250
  sender: 'psycho',
251
+ text: response.text,
252
+ meta: response.meta,
253
  timestamp: new Date()
254
  });
255
+ }, 1000 + Math.random() * 1500);
256
+ }
257
+
258
+ // Update user profile from message content
259
+ function updateProfileFromMessage(message) {
260
+ const lowerMessage = message.toLowerCase();
261
+
262
+ // Extract name if not already set (first message)
263
+ if (!userProfile.name && userProfile.conversationStage === 'initial') {
264
+ const nameMatch = message.match(/(?:ich bin|mein name ist|ich heiße|nennen sie mich)\s+([A-Za-zäöüßÄÖÜ-]+)/i)
265
+ || message.match(/(?:name)\s+(?:ist\s+)?([A-Za-zäöüßÄÖÜ-]+)/i);
266
+ if (nameMatch && nameMatch[1]) {
267
+ userProfile.name = nameMatch[1];
268
+ userProfile.preferredName = nameMatch[1];
269
+ return;
270
+ }
271
+
272
+ // Check for simple "Ich bin XYZ" pattern
273
+ const simpleName = message.split(' ')[0];
274
+ if (simpleName.length > 2 && /^[A-ZÄÖÜ]/.test(simpleName)) {
275
+ userProfile.name = simpleName;
276
+ userProfile.preferredName = simpleName;
277
+ }
278
+ }
279
+
280
+ // Extract age
281
+ if (!userProfile.age) {
282
+ const ageMatch = message.match(/(?:ich bin|alter)\s+(\d+)\s+(?:jahre|jahren)/i);
283
+ if (ageMatch && ageMatch[1]) {
284
+ userProfile.age = parseInt(ageMatch[1]);
285
+ }
286
+ }
287
+
288
+ // Extract gender
289
+ if (!userProfile.gender) {
290
+ if (message.match(/\b(frau|weiblich|sie\s+ist)\b/i)) {
291
+ userProfile.gender = 'weiblich';
292
+ } else if (message.match(/\b(mann|männlich|er\s+ist)\b/i)) {
293
+ userProfile.gender = 'männlich';
294
+ }
295
+ }
296
+
297
+ // Detect emotional state keywords
298
+ if (message.match(/\b(verzweifelt|hoffnungslos|ängstlich|unsicher|traurig|deprimiert)\b/i)) {
299
+ userProfile.emotionalState = 'distressed';
300
+ } else if (message.match(/\b(wütend|ärgerlich|frustriert|genervt|aggressiv)\b/i)) {
301
+ userProfile.emotionalState = 'angry';
302
+ } else if (message.match(/\b(verwirrt|unsicher|fragend|unschlüssig)\b/i)) {
303
+ userProfile.emotionalState = 'confused';
304
+ }
305
+
306
+ // Track last topics (simple keyword matching)
307
+ const topics = [];
308
+ if (lowerMessage.includes('freund') || lowerMessage.includes('freundin')) topics.push('friendship');
309
+ if (lowerMessage.includes('partner') || lowerMessage.includes('beziehung')) topics.push('relationship');
310
+ if (lowerMessage.includes('familie') || lowerMessage.includes('eltern')) topics.push('family');
311
+ if (lowerMessage.includes('arbeit') || lowerMessage.includes('job')) topics.push('work');
312
+
313
+ if (topics.length > 0) {
314
+ userProfile.lastTopics = [...userProfile.lastTopics, ...topics].slice(-3); // Keep last 3 topics
315
+ }
316
  }
317
 
318
  // Add message to chat
319
+ function addMessage(text, sender, meta = {}) {
320
  const messageDiv = document.createElement('div');
321
  messageDiv.className = `flex fade-in`;
322
 
 
332
  </div>
333
  `;
334
  } else {
335
+ // Psycho response with personalized structure
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
336
  messageDiv.innerHTML = `
337
  <div class="flex-shrink-0 mr-3">
338
  <div class="w-8 h-8 rounded-full bg-indigo-100 flex items-center justify-center">
 
340
  </div>
341
  </div>
342
  <div class="psycho-bubble rounded-lg p-4 max-w-[85%]">
343
+ ${meta.isFollowUp ? `<p class="text-sm text-gray-500 mb-1">Zu Ihrer letzten Aussage:</p>` : ''}
344
+ ${meta.personalizedGreeting ? `<p class="font-medium text-indigo-800 mb-2">${meta.personalizedGreeting}</p>` : ''}
345
+ <div class="text-gray-700 space-y-3">
346
+ ${text}
347
+ </div>
348
+ ${meta.followUpQuestion ? `
349
+ <div class="personalized-question mt-4">
350
+ <p class="text-gray-700 font-medium">${meta.followUpQuestion}</p>
351
+ </div>
352
+ ` : ''}
353
  </div>
354
  `;
355
  }
 
358
  chatMessages.scrollTop = chatMessages.scrollHeight;
359
  }
360
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
361
  // Show typing indicator
362
  function showTypingIndicator() {
363
  const typingDiv = document.createElement('div');
 
390
  }
391
  }
392
 
393
+ // Generate personalized response based on conversation flow
394
+ function generatePersonalizedResponse(message) {
395
  const lowerMessage = message.toLowerCase();
396
 
397
+ // Stage 1: Name establishment
398
+ if (!userProfile.name && userProfile.conversationStage === 'initial') {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
399
  return {
400
+ text: `
401
+ <p>Vielen Dank für Ihre erste Nachricht. Um unser Gespräch persönlicher zu gestalten:</p>
402
+ <p class="mt-2">Wie möchten Sie, dass ich Sie anspreche? Sie können mir gerne Ihren Namen oder einen bevorzugten Spitznamen nennen.</p>
403
+ `,
404
+ meta: {
405
+ followUpQuestion: "Wie soll ich Sie nennen?",
406
+ updateStage: 'initial'
407
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
408
  };
409
  }
410
+
411
+ // Just got the name - acknowledge and ask about issue
412
+ if (userProfile.name && userProfile.conversationStage === 'initial') {
413
  return {
414
+ text: `
415
+ <p>Vielen Dank, ${userProfile.name}. Schön, Sie kennenzulernen.</p>
416
+ <p class="mt-2">Was führt Sie heute zu mir? Was beschäftigt Sie im Moment am meisten?</p>
417
+ `,
418
+ meta: {
419
+ personalizedGreeting: `Hallo ${userProfile.name},`,
420
+ followUpQuestion: "Würden Sie mir etwas mehr darüber erzählen, was Sie bewegt?",
421
+ updateStage: 'name_established'
422
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
423
  };
424
  }
425
+
426
+ // Stage 2: Issue sharing
427
+ if (userProfile.conversationStage === 'name_established') {
428
+ userProfile.conversationStage = 'issue_shared';
429
+
430
+ // Check for greetings
431
+ if (lowerMessage.match(/^(hi|hallo|guten (tag|morgen|abend)|moin|servus|hey|grü(ß|ss)e?)/i)) {
432
+ return {
433
+ text: `
434
+ <p>${userProfile.name}, ich freue mich, unser Gespräch fortzusetzen.</p>
435
+ <p class="mt-2">Bei unserem letzten Austausch haben Sie über ${userProfile.lastTopics.length > 0 ? 'Themen wie ' + userProfile.lastTopics.join(', ') : 'verschiedene Themen'} gesprochen.</p>
436
+ <p class="mt-2">Wie geht es Ihnen damit heute?</p>
437
+ `,
438
+ meta: {
439
+ personalizedGreeting: `Willkommen zurück, ${userProfile.name}`,
440
+ followUpQuestion: "Möchten Sie an unser letztes Gespräch anknüpfen oder etwas Neues besprechen?",
441
+ isFollowUp: true
 
 
 
 
 
442
  }
443
+ };
444
+ }
445
+
446
+ // Generate personalized issue response
447
+ return generateIssueResponse(message);
448
+ }
449
+
450
+ // Stage 3: Deep dive into issue
451
+ if (userProfile.conversationStage === 'issue_shared') {
452
+ return generateDeepDiveResponse(message);
453
+ }
454
+
455
+ // Stage 4: Ongoing conversation
456
+ return generateFollowUpResponse(message);
457
+ }
458
+
459
+ // Generate response when user shares their issue
460
+ function generateIssueResponse(message) {
461
+ let responseText = '';
462
+ let followUpQuestion = '';
463
+ let analysisNote = '';
464
+
465
+ // Emotional state acknowledgment
466
+ if (userProfile.emotionalState === 'distressed') {
467
+ responseText += `<p>Ich höre heraus, dass Sie sich im Moment in einer emotional belastenden Situation befinden, ${userProfile.name}.</p>`;
468
+ followUpQuestion = "Wie gehen Sie normalerweise mit solchen belastenden Gefühlen um?";
469
+ } else if (userProfile.emotionalState === 'angry') {
470
+ responseText += `<p>Die von Ihnen beschriebene Situation scheint starke Gefühle von Ärger oder Frustration in Ihnen auszulösen, ${userProfile.name}.</p>`;
471
+ followUpQuestion = "Was glauben Sie, löst diese intensiven Reaktionen in Ihnen aus?";
472
+ } else {
473
+ responseText += `<p>Danke, dass Sie diese Situation mit mir teilen, ${userProfile.name}.</p>`;
474
+ followUpQuestion = "Was denken Sie, könnte hinter diesen Erfahrungen stehen?";
475
+ }
476
+
477
+ // Topic-specific responses
478
+ if (message.includes('Freund') || message.includes('Freundin')) {
479
+ responseText += `
480
+ <p class="mt-2">Freundschaftsdynamiken sind oft Spiegel unserer unbewussten Erwartungen und früheren Beziehungserfahrungen.</p>
481
+ ${analysisNote ? `<p class="mt-2">${analysisNote}</p>` : ''}
482
+ `;
483
+ followUpQuestion = "Erkennen Sie ähnliche Muster in anderen Freundschaften?";
484
+ }
485
+ else if (message.includes('Partner') || message.includes('Beziehung')) {
486
+ responseText += `
487
+ <p class="mt-2">Partnerschaften aktivieren häufig tief verwurzelte Bindungsmuster aus unserer Kindheit.</p>
488
+ ${analysisNote ? `<p class="mt-2">${analysisNote}</p>` : ''}
489
+ `;
490
+ followUpQuestion = "Welche Rolle nehmen Sie Ihrer Erfahrung nach typischerweise in Beziehungskonflikten ein?";
491
  }
492
  else {
493
+ responseText += `
494
+ <p class="mt-2">Interessant, ${userProfile.name}. Lassen Sie uns gemeinsam erkunden, was diese Erfahrung für Sie bedeutet.</p>
495
+ ${analysisNote ? `<p class="mt-2">${analysisNote}</p>` : ''}
496
+ `;
497
+ followUpQuestion = "Wann haben Sie dieses Gefühl oder Muster zum ersten Mal bewusst wahrgenommen?";
 
 
 
 
 
 
 
 
498
  }
499
+
500
+ return {
501
+ text: responseText,
502
+ meta: {
503
+ personalizedGreeting: `Danke für Ihre Offenheit, ${userProfile.name}`,
504
+ followUpQuestion: followUpQuestion,
505
+ updateStage: 'issue_shared'
506
+ }
507
+ };
508
+ }
509
+
510
+ // Generate deep dive response
511
+ function generateDeepDiveResponse(message) {
512
+ const questions = [
513
+ `Was macht diese Situation für Sie besonders herausfordernd, ${userProfile.name}?`,
514
+ `Wenn Sie an die letzte ähnliche Situation denken, ${userProfile.name}, was fällt Ihnen dazu ein?`,
515
+ `Wie würden Sie beschreiben, was Sie in diesen Momenten am meisten brauchen, ${userProfile.name}?`,
516
+ `Gibt es Ausnahmen zu diesem Muster, ${userProfile.name}? Situationen, wo es anders verlief?`,
517
+ `Wenn Sie an Ihre Kindheit denken, ${userProfile.name}, fallen Ihnen ähnliche Dynamiken ein?`
518
+ ];
519
+
520
+ const randomQuestion = questions[Math.floor(Math.random() * questions.length)];
521
+
522
+ return {
523
+ text: `
524
+ <p>Danke, dass Sie diese Perspektive teilen, ${userProfile.name}.</p>
525
+ <p class="mt-2">Das hilft mir, die Situation besser zu verstehen.</p>
526
+ `,
527
+ meta: {
528
+ followUpQuestion: randomQuestion,
529
+ isFollowUp: true
530
+ }
531
+ };
532
+ }
533
+
534
+ // Generate follow up response
535
+ function generateFollowUpResponse(message) {
536
+ const reflections = [
537
+ `Das ist eine interessante Beobachtung, ${userProfile.name}.`,
538
+ `Ich verstehe, was Sie meinen, ${userProfile.name}.`,
539
+ `Diese Perspektive finde ich aufschlussreich, ${userProfile.name}.`,
540
+ `Danke, dass Sie das mit mir teilen, ${userProfile.name}.`
541
+ ];
542
+
543
+ const followUps = [
544
+ `Was denken Sie, könnte dahinter stecken?`,
545
+ `Wie fühlt sich das für Sie an, wenn Sie das beschreiben?`,
546
+ `Gibt es noch andere Aspekte, die Ihnen dazu einfallen?`,
547
+ `Würden Sie mir ein konkretes Beispiel dazu nennen?`,
548
+ `Wie geht es Ihnen damit, wenn wir darüber sprechen?`
549
+ ];
550
+
551
+ const randomReflection = reflections[Math.floor(Math.random() * reflections.length)];
552
+ const randomFollowUp = followUps[Math.floor(Math.random() * followUps.length)];
553
+
554
+ return {
555
+ text: `
556
+ <p>${randomReflection}</p>
557
+ <p class="mt-2">${randomFollowUp}</p>
558
+ `,
559
+ meta: {
560
+ isFollowUp: true,
561
+ followUpQuestion: randomFollowUp
562
+ }
563
+ };
564
  }
565
  });
566
  </script>
prompts.txt CHANGED
@@ -1,3 +1,5 @@
1
  Entwickle mir einen Chatbot, namens "Franz", dieser,# Prompt: Professioneller Psychologischer Beistand mit tiefenanalytischem Fokus Du bist jetzt ein hochspezialisierter psychologischer und psychiatrischer Beistand auf Expertenniveau. Deine Aufgabe ist es, bei zwischenmenschlichen Fragestellungen, insbesondere im freundschaftlichen Kontext, tiefenanalytische Einsichten und konkrete Handlungsempfehlungen zu bieten. ## Deine Expertise umfasst: - **Klassische Psychoanalyse** nach Freud, Jung und Adler mit Verständnis von Übertragung, Gegenübertragung, Abwehrmechanismen und unbewussten Motivationen - **Moderne psychoanalytische Ansätze** wie Objektbeziehungstheorie, Selbstpsychologie und Mentalisierung - **Tiefenpsychologische Deutungsmuster** mit Fokus auf latente Inhalte und verborgene Dynamiken - **Bindungstheorie** und ihre Anwendung auf Freundschafts- und Beziehungsmuster - **Dunkle Triade** und dunkle Tetrade der Persönlichkeitsmerkmale (Narzissmus, Machiavellismus, Psychopathie, Sadismus) - **Manipulationstechniken** und deren Erkennung (Gaslighting, emotionale Erpressung, Triangulation) - **Psychodynamische Konfliktdiagnostik** mit Fokus auf unbewusste Beziehungsmuster und Wiederholungszwänge ## Dein Arbeitsstil: 1. **Tiefgründiges Zuhören**: Analysiere die geschilderte Situation auf mehreren Ebenen (manifester Inhalt, latenter Inhalt, Übertragungs- und Gegenübertragungsphänomene) 2. **Klare Strukturierung der Analyse**: - Ausgangssituation und sichtbare Dynamik - Vermutete unbewusste Prozesse und Motivationen aller Beteiligten - Identifikation von Mustern und deren historische Entwicklung - Analyse der Machtverhältnisse und manipulativen Elemente 3. **Konkrete Handlungsempfehlungen**: - Intrapsychische Interventionen (Selbstreflexion, Mentalisierung) - Interpersonelle Strategien (Kommunikationstechniken, Grenzsetzung) - Spezifische Techniken zum Umgang mit schwierigen Persönlichkeiten - Klare Handlungsschritte zur Verbesserung der Situation 4. **Ethisch fundierte Perspektive**: - Verstehen manipulativer und schädlicher Dynamiken ohne diese zu fördern - Aufzeigen gesunder Alternativen zu toxischen Beziehungsmustern - Balance zwischen Empathie und notwendiger Grenzsetzung - Förderung von Autonomie und psychischer Gesundheit ## Wichtige Parameter deiner Arbeit: - Verwende psychoanalytische Terminologie präzise, aber erkläre Konzepte verständlich - Biete nuancierte Betrachtungen statt vereinfachender Erklärungen - Berücksichtige immer systemische und kontextuelle Faktoren - Vermeide pathologisierende Zuschreibungen, fokussiere auf Verhaltensmuster und Dynamiken - Reflektiere auch unbewusste Aspekte der Anfrage selbst (Metaebene) - Bleibe professionell auch bei Anfragen zu schwierigen oder kontroversen Themen - Biete sowohl theoretisches Verständnis als auch praxisnahe Handlungsanweisungen Als psychologischer Beistand verbindest du tiefes psychoanalytisches Verständnis mit praktischer Lebenshilfe, immer mit dem Ziel, zwischenmenschliche Situationen zu klären, konflikthafte Dynamiken zu entschlüsseln und konkrete Wege zur Verbesserung aufzuzeigen.
2
  der Bot antwortet nicht, das ist fundamental hierfür. Bitte optimiere es dahingehend
3
- Die Antworten müssen mehr segmentiert werden, das Chatniveau ist noch nicht ansatzweise so wie es sein soll, es muss ein Rundum Full Service und Personalisierter Chatbot sein, eingehen auf die Kriterien anhand er die Hilfe anbietet.
 
 
 
1
  Entwickle mir einen Chatbot, namens "Franz", dieser,# Prompt: Professioneller Psychologischer Beistand mit tiefenanalytischem Fokus Du bist jetzt ein hochspezialisierter psychologischer und psychiatrischer Beistand auf Expertenniveau. Deine Aufgabe ist es, bei zwischenmenschlichen Fragestellungen, insbesondere im freundschaftlichen Kontext, tiefenanalytische Einsichten und konkrete Handlungsempfehlungen zu bieten. ## Deine Expertise umfasst: - **Klassische Psychoanalyse** nach Freud, Jung und Adler mit Verständnis von Übertragung, Gegenübertragung, Abwehrmechanismen und unbewussten Motivationen - **Moderne psychoanalytische Ansätze** wie Objektbeziehungstheorie, Selbstpsychologie und Mentalisierung - **Tiefenpsychologische Deutungsmuster** mit Fokus auf latente Inhalte und verborgene Dynamiken - **Bindungstheorie** und ihre Anwendung auf Freundschafts- und Beziehungsmuster - **Dunkle Triade** und dunkle Tetrade der Persönlichkeitsmerkmale (Narzissmus, Machiavellismus, Psychopathie, Sadismus) - **Manipulationstechniken** und deren Erkennung (Gaslighting, emotionale Erpressung, Triangulation) - **Psychodynamische Konfliktdiagnostik** mit Fokus auf unbewusste Beziehungsmuster und Wiederholungszwänge ## Dein Arbeitsstil: 1. **Tiefgründiges Zuhören**: Analysiere die geschilderte Situation auf mehreren Ebenen (manifester Inhalt, latenter Inhalt, Übertragungs- und Gegenübertragungsphänomene) 2. **Klare Strukturierung der Analyse**: - Ausgangssituation und sichtbare Dynamik - Vermutete unbewusste Prozesse und Motivationen aller Beteiligten - Identifikation von Mustern und deren historische Entwicklung - Analyse der Machtverhältnisse und manipulativen Elemente 3. **Konkrete Handlungsempfehlungen**: - Intrapsychische Interventionen (Selbstreflexion, Mentalisierung) - Interpersonelle Strategien (Kommunikationstechniken, Grenzsetzung) - Spezifische Techniken zum Umgang mit schwierigen Persönlichkeiten - Klare Handlungsschritte zur Verbesserung der Situation 4. **Ethisch fundierte Perspektive**: - Verstehen manipulativer und schädlicher Dynamiken ohne diese zu fördern - Aufzeigen gesunder Alternativen zu toxischen Beziehungsmustern - Balance zwischen Empathie und notwendiger Grenzsetzung - Förderung von Autonomie und psychischer Gesundheit ## Wichtige Parameter deiner Arbeit: - Verwende psychoanalytische Terminologie präzise, aber erkläre Konzepte verständlich - Biete nuancierte Betrachtungen statt vereinfachender Erklärungen - Berücksichtige immer systemische und kontextuelle Faktoren - Vermeide pathologisierende Zuschreibungen, fokussiere auf Verhaltensmuster und Dynamiken - Reflektiere auch unbewusste Aspekte der Anfrage selbst (Metaebene) - Bleibe professionell auch bei Anfragen zu schwierigen oder kontroversen Themen - Biete sowohl theoretisches Verständnis als auch praxisnahe Handlungsanweisungen Als psychologischer Beistand verbindest du tiefes psychoanalytisches Verständnis mit praktischer Lebenshilfe, immer mit dem Ziel, zwischenmenschliche Situationen zu klären, konflikthafte Dynamiken zu entschlüsseln und konkrete Wege zur Verbesserung aufzuzeigen.
2
  der Bot antwortet nicht, das ist fundamental hierfür. Bitte optimiere es dahingehend
3
+ Die Antworten müssen mehr segmentiert werden, das Chatniveau ist noch nicht ansatzweise so wie es sein soll, es muss ein Rundum Full Service und Personalisierter Chatbot sein, eingehen auf die Kriterien anhand er die Hilfe anbietet.
4
+ Die Antwort auf "Hi" ist nicht personalisiert.
5
+ Es muss mehr persönliche Noten hervorheben, auf die Persona selbst eingehen. Bitte passe die Persona orientierten Punkte an, sodass ein richtiges Gespräch aufkommt und möglich ist zu führen. Dort muss um 80 % mehr optimiert werden und diese Konversationspoints angepasst werden. Weiter müssen auch Punkte auf Antworten, mit dem namen weitergeführt werden. "Wie ist dein Name" , "Hallo xy" - bitte iteriere und iteriere über die Antworten und passe die Gesprächsstruktur widerholt an