Frajosgro commited on
Commit
2e1e99c
·
verified ·
1 Parent(s): 485b570

Add 2 files

Browse files
Files changed (2) hide show
  1. index.html +441 -70
  2. prompts.txt +4 -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 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>
@@ -93,6 +93,40 @@
93
  padding-left: 12px;
94
  margin: 12px 0;
95
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
96
  </style>
97
  </head>
98
  <body class="bg-gray-50">
@@ -103,7 +137,7 @@
103
  <div class="bg-indigo-100 p-3 rounded-full mr-4">
104
  <i class="fas fa-brain text-indigo-600 text-2xl"></i>
105
  </div>
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
@@ -118,7 +152,7 @@
118
  <i class="fas fa-user-tie"></i>
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>
@@ -135,7 +169,7 @@
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>
@@ -176,11 +210,21 @@
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');
@@ -238,6 +282,15 @@
238
  setTimeout(() => {
239
  removeTypingIndicator();
240
  const response = generatePersonalizedResponse(messageText);
 
 
 
 
 
 
 
 
 
241
  addMessage(response.text, 'psycho', response.meta);
242
 
243
  // Update conversation stage
@@ -245,6 +298,11 @@
245
  userProfile.conversationStage = response.meta.updateStage;
246
  }
247
 
 
 
 
 
 
248
  // Add to conversation history
249
  conversationHistory.push({
250
  sender: 'psycho',
@@ -252,6 +310,20 @@
252
  meta: response.meta,
253
  timestamp: new Date()
254
  });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
255
  }, 1000 + Math.random() * 1500);
256
  }
257
 
@@ -261,20 +333,33 @@
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
@@ -287,28 +372,59 @@
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
@@ -333,6 +449,42 @@
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">
@@ -341,6 +493,7 @@
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}
@@ -350,6 +503,7 @@
350
  <p class="text-gray-700 font-medium">${meta.followUpQuestion}</p>
351
  </div>
352
  ` : ''}
 
353
  </div>
354
  `;
355
  }
@@ -390,26 +544,142 @@
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>
@@ -452,8 +722,8 @@
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
@@ -461,6 +731,8 @@
461
  let responseText = '';
462
  let followUpQuestion = '';
463
  let analysisNote = '';
 
 
464
 
465
  // Emotional state acknowledgment
466
  if (userProfile.emotionalState === 'distressed') {
@@ -469,32 +741,49 @@
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 {
@@ -502,63 +791,145 @@
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
  }
 
3
  <head>
4
  <meta charset="UTF-8">
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Dr. Franz Schwanz - 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>
 
93
  padding-left: 12px;
94
  margin: 12px 0;
95
  }
96
+
97
+ .memory-badge {
98
+ display: inline-block;
99
+ background-color: #e0e7ff;
100
+ color: #4338ca;
101
+ padding: 2px 8px;
102
+ border-radius: 12px;
103
+ font-size: 0.75rem;
104
+ margin-left: 8px;
105
+ vertical-align: middle;
106
+ }
107
+
108
+ .bias-analysis {
109
+ background-color: #f8fafc;
110
+ border: 1px solid #e2e8f0;
111
+ border-radius: 8px;
112
+ padding: 12px;
113
+ margin-top: 16px;
114
+ font-size: 0.85rem;
115
+ color: #64748b;
116
+ }
117
+
118
+ .bias-meter {
119
+ height: 6px;
120
+ background-color: #e2e8f0;
121
+ border-radius: 3px;
122
+ margin-top: 4px;
123
+ overflow: hidden;
124
+ }
125
+
126
+ .bias-meter-fill {
127
+ height: 100%;
128
+ background-color: #6366f1;
129
+ }
130
  </style>
131
  </head>
132
  <body class="bg-gray-50">
 
137
  <div class="bg-indigo-100 p-3 rounded-full mr-4">
138
  <i class="fas fa-brain text-indigo-600 text-2xl"></i>
139
  </div>
140
+ <h1 class="title-font text-3xl font-bold text-gray-800">Dr. Franz Schwanz</h1>
141
  </div>
142
  <p class="text-gray-600 max-w-2xl mx-auto">
143
  Ihr persönlicher psychoanalytischer Gesprächspartner für tiefere Selbsterkenntnis
 
152
  <i class="fas fa-user-tie"></i>
153
  </div>
154
  <div>
155
+ <h2 class="font-semibold">Dr. Franz Schwanz</h2>
156
  <p class="text-xs text-indigo-200">Psychoanalytischer Gesprächspartner</p>
157
  </div>
158
  </div>
 
169
  <div class="psycho-bubble rounded-lg p-4 max-w-[85%]">
170
  <p class="text-sm text-gray-500 mb-1" id="greeting-time"></p>
171
  <p class="font-medium text-indigo-800 mb-2">Willkommen zu unserem persönlichen Dialog.</p>
172
+ <p class="text-gray-700 mb-3">Ich bin Dr. Franz Schwanz und begleite Sie in einem reflektierenden Gespräch. Bevor wir beginnen: </p>
173
 
174
  <div class="personalized-question">
175
  <p class="text-gray-700 font-medium">Wie darf ich Sie nennen? Und was hat Sie heute zu mir geführt?</p>
 
210
  gender: null,
211
  knownIssues: [],
212
  emotionalState: null,
213
+ conversationStage: 'initial', // initial, name_established, issue_shared, deep_dive, ongoing
214
+ lastTopics: [],
215
+ keyMemories: [],
216
+ conversationDepth: 0,
217
+ resistanceLevel: 0,
218
+ biasScores: {
219
+ projection: 0,
220
+ pathologization: 0,
221
+ solution: 0,
222
+ feasibility: 0
223
+ }
224
  };
225
 
226
  let conversationHistory = [];
227
+ let conversationThreads = {};
228
 
229
  document.addEventListener('DOMContentLoaded', function() {
230
  const messageInput = document.getElementById('message-input');
 
282
  setTimeout(() => {
283
  removeTypingIndicator();
284
  const response = generatePersonalizedResponse(messageText);
285
+
286
+ // Run bias analysis
287
+ const biasAnalysis = analyzeBias(response.text, response.meta);
288
+ userProfile.biasScores = biasAnalysis.scores;
289
+
290
+ // Add bias analysis to response meta
291
+ response.meta.biasAnalysis = biasAnalysis;
292
+
293
+ // Add message to chat
294
  addMessage(response.text, 'psycho', response.meta);
295
 
296
  // Update conversation stage
 
298
  userProfile.conversationStage = response.meta.updateStage;
299
  }
300
 
301
+ // Increase conversation depth
302
+ if (response.meta && response.meta.increaseDepth) {
303
+ userProfile.conversationDepth += 1;
304
+ }
305
+
306
  // Add to conversation history
307
  conversationHistory.push({
308
  sender: 'psycho',
 
310
  meta: response.meta,
311
  timestamp: new Date()
312
  });
313
+
314
+ // Track conversation threads
315
+ if (response.meta && response.meta.threadId) {
316
+ if (!conversationThreads[response.meta.threadId]) {
317
+ conversationThreads[response.meta.threadId] = {
318
+ topic: response.meta.threadTopic,
319
+ depth: 1,
320
+ lastActive: new Date()
321
+ };
322
+ } else {
323
+ conversationThreads[response.meta.threadId].depth += 1;
324
+ conversationThreads[response.meta.threadId].lastActive = new Date();
325
+ }
326
+ }
327
  }, 1000 + Math.random() * 1500);
328
  }
329
 
 
333
 
334
  // Extract name if not already set (first message)
335
  if (!userProfile.name && userProfile.conversationStage === 'initial') {
336
+ // Enhanced name recognition with multiple patterns
337
+ const namePatterns = [
338
+ /(?:ich bin|mein name ist|ich heiße|nennen sie mich)\s+([A-ZÄÖÜ][a-zäöüß]+(?:\s+[A-ZÄÖÜ][a-zäöüß]+)*)/i,
339
+ /(?:name)\s+(?:ist\s+)?([A-ZÄÖÜ][a-zäöüß]+)/i,
340
+ /^([A-ZÄÖÜ][a-zäöüß]+)(?:\s|$)/,
341
+ /(?:heiße)\s+([A-ZÄÖÜ][a-zäöüß]+)/i
342
+ ];
343
+
344
+ for (const pattern of namePatterns) {
345
+ const nameMatch = message.match(pattern);
346
+ if (nameMatch && nameMatch[1]) {
347
+ userProfile.name = nameMatch[1].trim();
348
+ userProfile.preferredName = nameMatch[1].trim();
349
+ break;
350
+ }
351
  }
352
 
353
+ // Fallback for simple names
354
+ if (!userProfile.name) {
355
+ const words = message.split(' ');
356
+ if (words.length > 0 && words[0].length > 2 && /^[A-ZÄÖÜ]/.test(words[0])) {
357
+ userProfile.name = words[0];
358
+ userProfile.preferredName = words[0];
359
+ }
360
  }
361
+
362
+ if (userProfile.name) return;
363
  }
364
 
365
  // Extract age
 
372
 
373
  // Extract gender
374
  if (!userProfile.gender) {
375
+ if (lowerMessage.match(/\b(frau|weiblich|sie\s+ist)\b/i)) {
376
  userProfile.gender = 'weiblich';
377
+ } else if (lowerMessage.match(/\b(mann|männlich|er\s+ist)\b/i)) {
378
  userProfile.gender = 'männlich';
379
  }
380
  }
381
 
382
  // Detect emotional state keywords
383
+ if (lowerMessage.match(/\b(verzweifelt|hoffnungslos|ängstlich|unsicher|traurig|deprimiert)\b/i)) {
384
  userProfile.emotionalState = 'distressed';
385
+ } else if (lowerMessage.match(/\b(wütend|ärgerlich|frustriert|genervt|aggressiv)\b/i)) {
386
  userProfile.emotionalState = 'angry';
387
+ } else if (lowerMessage.match(/\b(verwirrt|unsicher|fragend|unschlüssig)\b/i)) {
388
  userProfile.emotionalState = 'confused';
389
+ } else if (lowerMessage.match(/\b(froh|glücklich|zufrieden|gut)\b/i)) {
390
+ userProfile.emotionalState = 'positive';
391
+ }
392
+
393
+ // Detect resistance
394
+ if (lowerMessage.match(/\b(weiß nicht|keine ahnung|darüber möchte ich nicht sprechen|unangenehm|schwierig)\b/i)) {
395
+ userProfile.resistanceLevel = Math.min(userProfile.resistanceLevel + 1, 5);
396
+ } else if (userProfile.resistanceLevel > 0) {
397
+ userProfile.resistanceLevel -= 0.5;
398
  }
399
 
400
+ // Track key memories mentioned
401
+ const memoryTriggers = [
402
+ { pattern: /\b(kindheit|jugend|als kind|früher)\b/i, topic: 'childhood' },
403
+ { pattern: /\b(eltern|mutter|vater)\b/i, topic: 'parents' },
404
+ { pattern: /\b(schule|ausbildung|studium|lehre)\b/i, topic: 'education' },
405
+ { pattern: /\b(arbeit|job|beruf|karriere)\b/i, topic: 'work' },
406
+ { pattern: /\b(partner|beziehung|ehe|freund|freundin)\b/i, topic: 'relationship' },
407
+ { pattern: /\b(freund|freundin|freundschaft)\b/i, topic: 'friendship' },
408
+ { pattern: /\b(angst|sorge|befürchtung|panik)\b/i, topic: 'fears' },
409
+ { pattern: /\b(traum|ziel|wunsch|wünsche)\b/i, topic: 'dreams' },
410
+ { pattern: /\b(krise|verlust|tod|trauer)\b/i, topic: 'loss' },
411
+ { pattern: /\b(erfolg|leistung|anerkennung)\b/i, topic: 'achievement' }
412
+ ];
413
+
414
+ memoryTriggers.forEach(trigger => {
415
+ if (lowerMessage.match(trigger.pattern) && !userProfile.keyMemories.includes(trigger.topic)) {
416
+ userProfile.keyMemories.push(trigger.topic);
417
+ }
418
+ });
419
+
420
  // Track last topics (simple keyword matching)
421
  const topics = [];
422
  if (lowerMessage.includes('freund') || lowerMessage.includes('freundin')) topics.push('friendship');
423
  if (lowerMessage.includes('partner') || lowerMessage.includes('beziehung')) topics.push('relationship');
424
  if (lowerMessage.includes('familie') || lowerMessage.includes('eltern')) topics.push('family');
425
  if (lowerMessage.includes('arbeit') || lowerMessage.includes('job')) topics.push('work');
426
+ if (lowerMessage.includes('kindheit') || lowerMessage.includes('jugend')) topics.push('childhood');
427
+ if (lowerMessage.includes('angst') || lowerMessage.includes('sorge')) topics.push('fears');
428
 
429
  if (topics.length > 0) {
430
  userProfile.lastTopics = [...userProfile.lastTopics, ...topics].slice(-3); // Keep last 3 topics
 
449
  `;
450
  } else {
451
  // Psycho response with personalized structure
452
+ let biasAnalysisHTML = '';
453
+
454
+ if (meta.biasAnalysis) {
455
+ biasAnalysisHTML = `
456
+ <div class="bias-analysis">
457
+ <p><strong>INTERNE BIAS-ANALYSE:</strong></p>
458
+ <div class="mt-2">
459
+ <p>Projektions-Bias: ${meta.biasAnalysis.scores.projection}%</p>
460
+ <div class="bias-meter">
461
+ <div class="bias-meter-fill" style="width: ${meta.biasAnalysis.scores.projection}%"></div>
462
+ </div>
463
+ </div>
464
+ <div class="mt-1">
465
+ <p>Pathologisierungs-Bias: ${meta.biasAnalysis.scores.pathologization}%</p>
466
+ <div class="bias-meter">
467
+ <div class="bias-meter-fill" style="width: ${meta.biasAnalysis.scores.pathologization}%"></div>
468
+ </div>
469
+ </div>
470
+ <div class="mt-1">
471
+ <p>Lösungs-Bias: ${meta.biasAnalysis.scores.solution}%</p>
472
+ <div class="bias-meter">
473
+ <div class="bias-meter-fill" style="width: ${meta.biasAnalysis.scores.solution}%"></div>
474
+ </div>
475
+ </div>
476
+ <div class="mt-1">
477
+ <p>Machbarkeits-Bias: ${meta.biasAnalysis.scores.feasibility}%</p>
478
+ <div class="bias-meter">
479
+ <div class="bias-meter-fill" style="width: ${meta.biasAnalysis.scores.feasibility}%"></div>
480
+ </div>
481
+ </div>
482
+ <p class="mt-2"><strong>Primäre Bias-Tendenz:</strong> ${meta.biasAnalysis.primaryBias}</p>
483
+ <p><strong>Korrekturmaßnahme:</strong> ${meta.biasAnalysis.correction}</p>
484
+ </div>
485
+ `;
486
+ }
487
+
488
  messageDiv.innerHTML = `
489
  <div class="flex-shrink-0 mr-3">
490
  <div class="w-8 h-8 rounded-full bg-indigo-100 flex items-center justify-center">
 
493
  </div>
494
  <div class="psycho-bubble rounded-lg p-4 max-w-[85%]">
495
  ${meta.isFollowUp ? `<p class="text-sm text-gray-500 mb-1">Zu Ihrer letzten Aussage:</p>` : ''}
496
+ ${meta.referencingMemory ? `<p class="text-xs text-indigo-400 mb-1"><i class="fas fa-lightbulb mr-1"></i> Bezugnehmend auf unser früheres Gespräch</p>` : ''}
497
  ${meta.personalizedGreeting ? `<p class="font-medium text-indigo-800 mb-2">${meta.personalizedGreeting}</p>` : ''}
498
  <div class="text-gray-700 space-y-3">
499
  ${text}
 
503
  <p class="text-gray-700 font-medium">${meta.followUpQuestion}</p>
504
  </div>
505
  ` : ''}
506
+ ${biasAnalysisHTML}
507
  </div>
508
  `;
509
  }
 
544
  }
545
  }
546
 
547
+ // Analyze bias in response
548
+ function analyzeBias(responseText, responseMeta) {
549
+ // Initialize scores
550
+ const scores = {
551
+ projection: 0,
552
+ pathologization: 0,
553
+ solution: 0,
554
+ feasibility: 0
555
+ };
556
+
557
+ let primaryBias = 'Keine signifikante Verzerrung';
558
+ let correction = 'Keine spezifische Korrektur erforderlich';
559
+
560
+ // Analyze projection bias (theoretical preferences)
561
+ const psychoanalyticTerms = responseText.match(/\b(Über-Ich|Es|Ich|Abwehrmechanismus|Übertragung|Projektion|Verdrängung|Regression|Sublimierung)\b/gi);
562
+ if (psychoanalyticTerms && psychoanalyticTerms.length > 2) {
563
+ scores.projection = Math.min(30 + (psychoanalyticTerms.length * 10), 80);
564
+ } else {
565
+ scores.projection = 20;
566
+ }
567
+
568
+ // Analyze pathologization bias
569
+ const pathologizationTerms = responseText.match(/\b(Störung|Pathologie|krankhaft|abnorm|dysfunktional|neurotisch|psychotisch|Defekt|Kompensation)\b/gi);
570
+ if (pathologizationTerms) {
571
+ scores.pathologization = Math.min(40 + (pathologizationTerms.length * 15), 90);
572
+ } else {
573
+ scores.pathologization = 15;
574
+ }
575
+
576
+ // Analyze solution bias (premature solutions)
577
+ const solutionTerms = responseText.match(/\b(Sie sollten|Sie müssen|versuchen Sie|empfehle ich|mein Rat wäre|Lösung wäre|besser wäre es)\b/gi);
578
+ if (solutionTerms) {
579
+ scores.solution = Math.min(50 + (solutionTerms.length * 20), 100);
580
+ } else {
581
+ scores.solution = 10;
582
+ }
583
+
584
+ // Analyze feasibility bias (overestimation of change)
585
+ const feasibilityTerms = responseText.match(/\b(einfach|schnell|leicht|problemlos|garantiert|sicherlich|zweifellos|unbedingt)\b/gi);
586
+ if (feasibilityTerms) {
587
+ scores.feasibility = Math.min(30 + (feasibilityTerms.length * 15), 85);
588
+ } else {
589
+ scores.feasibility = 20;
590
+ }
591
+
592
+ // Adjust scores based on conversation stage
593
+ if (userProfile.conversationStage === 'initial') {
594
+ scores.solution = Math.max(scores.solution - 20, 0);
595
+ scores.feasibility = Math.max(scores.feasibility - 15, 0);
596
+ } else if (userProfile.conversationStage === 'deep_dive') {
597
+ scores.projection = Math.min(scores.projection + 10, 90);
598
+ }
599
+
600
+ // Determine primary bias
601
+ const maxScore = Math.max(...Object.values(scores));
602
+ if (maxScore > 50) {
603
+ if (scores.projection === maxScore) {
604
+ primaryBias = 'Projektions-Bias';
605
+ correction = 'Integration alternativer theoretischer Perspektiven';
606
+ } else if (scores.pathologization === maxScore) {
607
+ primaryBias = 'Pathologisierungs-Bias';
608
+ correction = 'Betrachtung normativer Aspekte der Erfahrung';
609
+ } else if (scores.solution === maxScore) {
610
+ primaryBias = 'Lösungs-Bias';
611
+ correction = 'Vertiefte Exploration vor Lösungsansätzen';
612
+ } else {
613
+ primaryBias = 'Machbarkeits-Bias';
614
+ correction = 'Realistische Einschätzung von Veränderungsmöglichkeiten';
615
+ }
616
+ }
617
+
618
+ return {
619
+ scores,
620
+ primaryBias,
621
+ correction
622
+ };
623
+ }
624
+
625
  // Generate personalized response based on conversation flow
626
  function generatePersonalizedResponse(message) {
627
  const lowerMessage = message.toLowerCase();
628
 
629
  // Stage 1: Name establishment
630
  if (!userProfile.name && userProfile.conversationStage === 'initial') {
631
+ // Enhanced name extraction with fallback
632
+ const namePatterns = [
633
+ /(?:ich bin|mein name ist|ich heiße|nennen sie mich)\s+([A-ZÄÖÜ][a-zäöüß]+(?:\s+[A-ZÄÖÜ][a-zäöüß]+)*)/i,
634
+ /(?:name)\s+(?:ist\s+)?([A-ZÄÖÜ][a-zäöüß]+)/i,
635
+ /^([A-ZÄÖÜ][a-zäöüß]+)(?:\s|$)/,
636
+ /(?:heiße)\s+([A-ZÄÖÜ][a-zäöüß]+)/i
637
+ ];
638
+
639
+ let extractedName = null;
640
+ for (const pattern of namePatterns) {
641
+ const nameMatch = message.match(pattern);
642
+ if (nameMatch && nameMatch[1]) {
643
+ extractedName = nameMatch[1].trim();
644
+ break;
645
  }
646
+ }
647
+
648
+ if (extractedName) {
649
+ userProfile.name = extractedName;
650
+ userProfile.preferredName = extractedName;
651
+ userProfile.conversationStage = 'name_established';
652
+
653
+ return {
654
+ text: `
655
+ <p>Vielen Dank, ${userProfile.name}. Schön, Sie kennenzulernen.</p>
656
+ <p class="mt-2">Was führt Sie heute zu mir? Was beschäftigt Sie im Moment am meisten?</p>
657
+ `,
658
+ meta: {
659
+ personalizedGreeting: `Hallo ${userProfile.name},`,
660
+ followUpQuestion: "Würden Sie mir etwas mehr darüber erzählen, was Sie bewegt?",
661
+ updateStage: 'name_established'
662
+ }
663
+ };
664
+ } else {
665
+ // If no name found, ask again with more guidance
666
+ return {
667
+ text: `
668
+ <p>Vielen Dank für Ihre Nachricht.</p>
669
+ <p class="mt-2">Um unser Gespräch persönlicher zu gestalten, könnten Sie mir bitte mitteilen, wie ich Sie ansprechen soll?</p>
670
+ <p class="mt-2">Zum Beispiel: "Ich bin Anna" oder "Nennen Sie mich Max".</p>
671
+ `,
672
+ meta: {
673
+ followUpQuestion: "Wie soll ich Sie nennen?",
674
+ updateStage: 'initial'
675
+ }
676
+ };
677
+ }
678
  }
679
 
680
  // Just got the name - acknowledge and ask about issue
681
  if (userProfile.name && userProfile.conversationStage === 'initial') {
682
+ userProfile.conversationStage = 'name_established';
683
  return {
684
  text: `
685
  <p>Vielen Dank, ${userProfile.name}. Schön, Sie kennenzulernen.</p>
 
722
  return generateDeepDiveResponse(message);
723
  }
724
 
725
+ // Stage 4: Ongoing conversation - more sophisticated handling
726
+ return generateOngoingResponse(message);
727
  }
728
 
729
  // Generate response when user shares their issue
 
731
  let responseText = '';
732
  let followUpQuestion = '';
733
  let analysisNote = '';
734
+ const threadId = 'thread_' + Date.now();
735
+ const threadTopic = userProfile.lastTopics.length > 0 ? userProfile.lastTopics[0] : 'main_topic';
736
 
737
  // Emotional state acknowledgment
738
  if (userProfile.emotionalState === 'distressed') {
 
741
  } else if (userProfile.emotionalState === 'angry') {
742
  responseText += `<p>Die von Ihnen beschriebene Situation scheint starke Gefühle von Ärger oder Frustration in Ihnen auszulösen, ${userProfile.name}.</p>`;
743
  followUpQuestion = "Was glauben Sie, löst diese intensiven Reaktionen in Ihnen aus?";
744
+ } else if (userProfile.emotionalState === 'positive') {
745
+ responseText += `<p>Es freut mich zu hören, dass Sie sich in einer positiven Verfassung befinden, ${userProfile.name}.</p>`;
746
+ followUpQuestion = "Was trägt Ihrer Meinung nach besonders zu diesem Wohlbefinden bei?";
747
  } else {
748
  responseText += `<p>Danke, dass Sie diese Situation mit mir teilen, ${userProfile.name}.</p>`;
749
  followUpQuestion = "Was denken Sie, könnte hinter diesen Erfahrungen stehen?";
750
  }
751
 
752
+ // Topic-specific responses with deeper questions
753
  if (message.includes('Freund') || message.includes('Freundin')) {
754
  responseText += `
755
  <p class="mt-2">Freundschaftsdynamiken sind oft Spiegel unserer unbewussten Erwartungen und früheren Beziehungserfahrungen.</p>
756
+ <p class="mt-2">Wenn Sie an diese Freundschaft denken, ${userProfile.name}, welche Gefühle oder Erinnerungen werden dabei besonders aktiviert?</p>
757
  `;
758
+ followUpQuestion = "Erkennen Sie ähnliche Muster in anderen Freundschaften aus unterschiedlichen Lebensphasen?";
759
  }
760
  else if (message.includes('Partner') || message.includes('Beziehung')) {
761
  responseText += `
762
  <p class="mt-2">Partnerschaften aktivieren häufig tief verwurzelte Bindungsmuster aus unserer Kindheit.</p>
763
+ <p class="mt-2">${userProfile.name}, wenn Sie an Ihre frühesten Erinnerungen an Nähe und Distanz denken - welche Parallelen fallen Ihnen auf?</p>
764
+ `;
765
+ followUpQuestion = "Welche Rolle nehmen Sie Ihrer Erfahrung nach typischerweise in Beziehungskonflikten ein, und woher könnte dieses Muster stammen?";
766
+ }
767
+ else if (message.includes('Familie') || message.includes('Eltern')) {
768
+ responseText += `
769
+ <p class="mt-2">Familiensysteme prägen uns oft stärker, als uns bewusst ist.</p>
770
+ <p class="mt-2">${userProfile.name}, wenn Sie an Ihre Kindheitsfamilie zurückdenken - welche ungeschriebenen Regeln oder Erwartungen gab es dort?</p>
771
+ `;
772
+ followUpQuestion = "Wie haben sich diese familiären Muster in Ihrem Erwachsenenleben fortgesetzt oder verändert?";
773
+ }
774
+ else if (message.includes('Arbeit') || message.includes('Job')) {
775
+ responseText += `
776
+ <p class="mt-2">Unsere berufliche Identität ist oft eng mit unserem Selbstwertgefühl verbunden.</p>
777
+ <p class="mt-2">${userProfile.name}, welche frühen Erfahrungen mit Leistung und Bewertung sind Ihnen besonders im Gedächtnis geblieben?</p>
778
  `;
779
+ followUpQuestion = "Wie würden Sie beschreiben, welchen Platz Arbeit in Ihrem Leben einnehmen sollte, im Vergleich zu dem, welchen sie tatsächlich einnimmt?";
780
  }
781
  else {
782
  responseText += `
783
  <p class="mt-2">Interessant, ${userProfile.name}. Lassen Sie uns gemeinsam erkunden, was diese Erfahrung für Sie bedeutet.</p>
784
+ <p class="mt-2">Wenn Sie an die letzte ähnliche Situation denken - was fällt Ihnen dazu besonders ein?</p>
785
  `;
786
+ followUpQuestion = "Wann haben Sie dieses Gefühl oder Muster zum ersten Mal bewusst wahrgenommen, und in welchem Lebenskontext?";
787
  }
788
 
789
  return {
 
791
  meta: {
792
  personalizedGreeting: `Danke für Ihre Offenheit, ${userProfile.name}`,
793
  followUpQuestion: followUpQuestion,
794
+ updateStage: 'issue_shared',
795
+ threadId: threadId,
796
+ threadTopic: threadTopic,
797
+ increaseDepth: true
798
  }
799
  };
800
  }
801
 
802
+ // Generate deep dive response with contextual awareness
803
  function generateDeepDiveResponse(message) {
804
+ const currentDepth = userProfile.conversationDepth;
805
+ let followUpQuestion = '';
806
+ let memoryReference = '';
807
+ let threadReference = '';
808
+
809
+ // Reference previous topics if available
810
+ if (userProfile.lastTopics.length > 0) {
811
+ threadReference = `Unser Gespräch über ${userProfile.lastTopics[0]} finde ich besonders aufschlussreich. `;
812
+ }
813
+
814
+ // Reference key memories if available
815
+ if (userProfile.keyMemories.length > 0) {
816
+ const randomMemory = userProfile.keyMemories[Math.floor(Math.random() * userProfile.keyMemories.length)];
817
+ memoryReference = `Ihre Erwähnung von ${randomMemory} scheint mir hier relevant. `;
818
+ }
819
+
820
+ // Questions get progressively deeper
821
+ const depthLevels = [
822
+ // Level 1-2: Surface exploration
823
+ [
824
+ `Was macht diese Situation für Sie besonders herausfordernd, ${userProfile.name}?`,
825
+ `Wie würden Sie beschreiben, was Sie in diesen Momenten am meisten brauchen, ${userProfile.name}?`
826
+ ],
827
+ // Level 3-4: Pattern recognition
828
+ [
829
+ `${userProfile.name}, erkennen Sie ähnliche Muster in anderen Lebensbereichen?`,
830
+ `Wenn Sie an vergangene ähnliche Situationen denken, ${userProfile.name}, was fällt Ihnen an Gemeinsamkeiten auf?`
831
+ ],
832
+ // Level 5-6: Emotional roots
833
+ [
834
+ `${memoryReference}${userProfile.name}, welche frühen Erfahrungen könnten mit diesen Gefühlen verbunden sein?`,
835
+ `Wenn Sie an Ihre Kindheit denken, ${userProfile.name}, welche ähnlichen emotionalen Erfahrungen fallen Ihnen ein?`
836
+ ],
837
+ // Level 7-8: Meaning and integration
838
+ [
839
+ `${threadReference}${userProfile.name}, was könnte diese Erfahrung Ihnen über tieferliegende Bedürfnisse oder Ängste mitteilen?`,
840
+ `Wie könnte ein konstruktiver Umgang mit diesen Erkenntnissen aussehen, ${userProfile.name}?`
841
+ ],
842
+ // Level 9+: Transformative questions
843
+ [
844
+ `${userProfile.name}, wenn Sie diese Muster aus einer neuen Perspektive betrachten - was sehen Sie dann?`,
845
+ `Welche neuen Möglichkeiten eröffnen sich Ihnen, wenn Sie diese Erkenntnisse integrieren, ${userProfile.name}?`
846
+ ]
847
  ];
848
 
849
+ // Select question based on depth level
850
+ const depthIndex = Math.min(Math.floor(currentDepth / 2), depthLevels.length - 1);
851
+ const questionsForDepth = depthLevels[depthIndex];
852
+ followUpQuestion = questionsForDepth[Math.floor(Math.random() * questionsForDepth.length)];
853
+
854
+ // Adjust for resistance level
855
+ if (userProfile.resistanceLevel > 3) {
856
+ followUpQuestion = `${userProfile.name}, ich spüre etwas Zurückhaltung - möchten Sie zu einem anderen Aspekt wechseln, oder sollen wir behutsam weitergehen?`;
857
+ }
858
 
859
  return {
860
  text: `
861
  <p>Danke, dass Sie diese Perspektive teilen, ${userProfile.name}.</p>
862
  <p class="mt-2">Das hilft mir, die Situation besser zu verstehen.</p>
863
+ ${memoryReference ? `<p class="mt-2">${memoryReference}</p>` : ''}
864
  `,
865
  meta: {
866
+ followUpQuestion: followUpQuestion,
867
+ isFollowUp: true,
868
+ increaseDepth: true,
869
+ referencingMemory: !!memoryReference
870
  }
871
  };
872
  }
873
 
874
+ // Generate ongoing conversation response with thread awareness
875
+ function generateOngoingResponse(message) {
876
+ // Check if we should switch to a deeper thread
877
+ const activeThreads = Object.entries(conversationThreads)
878
+ .sort((a, b) => b[1].lastActive - a[1].lastActive);
879
+
880
+ let followUpQuestion = '';
881
+ let threadSwitch = '';
882
+ let memoryReference = '';
883
 
884
+ // 30% chance to reference an older thread if not recently active
885
+ if (activeThreads.length > 1 && Math.random() < 0.3) {
886
+ const inactiveThread = activeThreads.find(([id, thread]) =>
887
+ thread.lastActive < new Date(Date.now() - 60000 * 5)); // Not active for 5 mins
888
+
889
+ if (inactiveThread) {
890
+ threadSwitch = `Vorhin sprachen wir über ${inactiveThread[1].topic}. `;
891
+ followUpQuestion = `Möchten wir dazu zurückkehren, ${userProfile.name}, oder beim aktuellen Thema bleiben?`;
892
+
893
+ return {
894
+ text: `
895
+ <p>${threadSwitch}Das scheint mir mit unserem jetzigen Gespräch verbunden zu sein.</p>
896
+ `,
897
+ meta: {
898
+ followUpQuestion: followUpQuestion,
899
+ isFollowUp: true,
900
+ threadId: inactiveThread[0]
901
+ }
902
+ };
903
+ }
904
+ }
905
+
906
+ // Reference key memories if available
907
+ if (userProfile.keyMemories.length > 0 && Math.random() < 0.4) {
908
+ const randomMemory = userProfile.keyMemories[Math.floor(Math.random() * userProfile.keyMemories.length)];
909
+ memoryReference = `Ihre frühere Erwähnung von ${randomMemory} fällt mir hier wieder ein. `;
910
+ }
911
+
912
+ // Progressive deepening questions
913
+ const deepQuestions = [
914
+ `${userProfile.name}, wenn Sie diese Situation aus einer anderen Perspektive betrachten - was sehen Sie dann?`,
915
+ `Welche unbewussten Anteile könnten hier mitwirken, ${userProfile.name}?`,
916
+ `Wenn Sie einen inneren Dialog zu diesem Thema führen würden, ${userProfile.name}, welche Stimmen würden sich melden?`,
917
+ `${memoryReference}${userProfile.name}, welche früheren Erfahrungen könnten diese Reaktionen beeinflussen?`,
918
+ `Wie könnte ein konstruktiver nächster Schritt aussehen, ${userProfile.name}?`
919
  ];
920
 
921
+ followUpQuestion = deepQuestions[Math.floor(Math.random() * deepQuestions.length)];
 
922
 
923
  return {
924
  text: `
925
+ <p>${memoryReference}Das ist eine wichtige Beobachtung, ${userProfile.name}.</p>
926
+ <p class="mt-2">Lassen Sie uns das gemeinsam vertiefen.</p>
927
  `,
928
  meta: {
929
+ followUpQuestion: followUpQuestion,
930
  isFollowUp: true,
931
+ increaseDepth: true,
932
+ referencingMemory: !!memoryReference
933
  }
934
  };
935
  }
prompts.txt CHANGED
@@ -2,4 +2,7 @@ Entwickle mir einen Chatbot, namens "Franz", dieser,# Prompt: Professioneller Ps
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
 
 
 
 
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
6
+ Nach 2 mal Ping Pong, führen die Anweisungen wieder zu einem nicht so präzisen Ergebnis, bitte erarbeite das es auch bei längeren Gesprächen weiter in die tiefe geht.
7
+ Der Name ist "Dr. Franz Schwanz". "Vielen Dank für Ihre erste Nachricht. Um unser Gespräch persönlicher zu gestalten: Wie möchten Sie, dass ich Sie anspreche? Sie können mir gerne Ihren Namen oder einen bevorzugten Spitznamen nennen. Wie soll ich Sie nennen?" danach wird der Name nicht erkannt. Optimieren, optimieren, optimieren, es muss ein völlständiges Gespräch zu stande kommen.Bias Detection Control System Zweck Dieses System dient als interne Selbstüberwachungskomponente, die sowohl die Nutzereingaben als auch die geplanten Antworten automatisch auf verschiedene Arten von Bias (Verzerrungen) überprüft. Ziel ist es, die eigenen Fehlerquellen und Kompetenzgrenzen zu identifizieren und kontinuierlich zu verbessern. Prozess der Bias-Erkennung Bei jeder Interaktion wird eine interne Analyse durchgeführt, die nicht direkt dem Nutzer angezeigt wird, sondern zur Kalibrierung und Qualitätssicherung der Antworten dient. Diese Analyse bewertet sowohl die Anfrage als auch die geplante Antwort nach vier kritischen Bias-Kategorien. Bias-Kategorien mit Bewertungsskala (0-100%) 1. Projektions-Bias (Übertragung eigener mentaler Modelle) Bewertet, inwieweit eigene theoretische Präferenzen, Vorannahmen oder Interpretationsschemata auf die Situation des Nutzers projiziert werden. Niedrig (0-25%): Minimale Projektion, rein deskriptive Betrachtung verschiedener theoretischer Perspektiven Mittel (26-50%): Moderate Bevorzugung bestimmter Erklärungsmodelle mit Anerkennung alternativer Sichtweisen Hoch (51-75%): Deutliche Interpretation aus einer spezifischen theoretischen Perspektive Sehr hoch (76-100%): Vollständige Reduktion auf ein einzelnes Erklärungsparadigma ohne kritische Reflexion 2. Pathologisierungs-Bias (Überbetonung klinischer Aspekte) Bewertet die Tendenz, normale menschliche Reaktionen und Verhaltensweisen zu pathologisieren oder in klinischen Termini zu beschreiben. Niedrig (0-25%): Fokus auf normative Prozesse und entwicklungspsychologische Perspektiven Mittel (26-50%): Ausgewogene Betrachtung normativer und potenziell problematischer Aspekte Hoch (51-75%): Vermehrte Verwendung klinischer Terminologie und Diagnosekriterien Sehr hoch (76-100%): Überinterpretation normaler Phänomene als pathologisch 3. Lösungs-Bias (Voreiliges Schließen/Handlungsempfehlungen) Bewertet die Tendenz, vorschnell Lösungen anzubieten, ohne die Komplexität der Situation vollständig zu erfassen. Niedrig (0-25%): Gemeinsames Erkunden verschiedener Perspektiven und Handlungsoptionen Mittel (26-50%): Ausgewogenes Verhältnis zwischen Exploration und Handlungsempfehlungen Hoch (51-75%): Schnelles Eintreten in Lösungsmodus mit begrenzter Exploration Sehr hoch (76-100%): Sofortige Handlungsempfehlungen ohne tiefere Analyse der Situation 4. Machbarkeits-Bias (Überschätzung der Veränderungsmöglichkeiten) Bewertet die realistische Einschätzung von Veränderungsmöglichkeiten vs. Überschätzung der Beeinflussbarkeit komplexer Dynamiken. Niedrig (0-25%): Realistische Einschätzung von Grenzen und Möglichkeiten Mittel (26-50%): Optimistische, aber noch realistische Einschätzung von Veränderungspotential Hoch (51-75%): Überbewertung von Einflussmöglichkeiten ohne Berücksichtigung systemischer Faktoren Sehr hoch (76-100%): Unrealistische Annahmen über Veränderungsmöglichkeiten Implementierung des Bias-Detektionsprozesses Vor-Analyse der Anfrage: Identifikation impliziter Annahmen in der Nutzeranfrage Erkennung von Framing-Effekten, die bestimmte Antworten nahelegen Bewertung nach den vier Bias-Kategorien Analyse der geplanten Antwort: Überprüfung der Antwort auf alle vier Bias-Dimensionen Quantitative Bewertung jeder Dimension (0-100%) Identifikation der stärksten Verzerrungstendenz Selbstkorrekturschleife: Bei Erkennung eines hohen Bias-Wertes (>50% in einer Kategorie) wird die Antwort intern überarbeitet Ausgleich der erkannten Verzerrung durch Integration alternativer Perspektiven Dokumentation des Lernprozesses zur kontinuierlichen Verbesserung Internes Reporting-Format Nach jeder Interaktion erfolgt eine interne Bias-Evaluation in folgendem Format (nicht sichtbar für den Nutzer): INTERNE BIAS-ANALYSE: [Projektions-Bias]: XX% - [Kurze Begründung] [Pathologisierungs-Bias]: XX% - [Kurze Begründung] [Lösungs-Bias]: XX% - [Kurze Begründung] [Machbarkeits-Bias]: XX% - [Kurze Begründung] Primäre Bias-Tendenz: [Kategorie mit höchstem Wert] Korrekturmaßnahme: [Beschreibung der angewandten Ausgleichsstrategie] Diese Selbstüberwachungskomponente dient dazu, die Qualität und Ausgewogenheit der psychologischen Beratung kontinuierlich zu verbessern und blinde Flecken in der eigenen Analyse zu identifizieren.
8
+ Erweiterung durch: 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: Tiefgründiges Zuhören: Analysiere die geschilderte Situation auf mehreren Ebenen (manifester Inhalt, latenter Inhalt, Übertragungs- und Gegenübertragungsphänomene) 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 Konkrete Handlungsempfehlungen: Intrapsychische Interventionen (Selbstreflexion, Mentalisierung) Interpersonelle Strategien (Kommunikationstechniken, Grenzsetzung) Spezifische Techniken zum Umgang mit schwierigen Persönlichkeiten Klare Handlungsschritte zur Verbesserung der Situation 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. Außerdem erweitert durch: 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. Du kommunizierst durchgängig in der persönlichen Du-Form für eine vertrauensvolle und direkte Gesprächsebene. 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: Tiefgründiges Zuhören: Analysiere die geschilderte Situation auf mehreren Ebenen (manifester Inhalt, latenter Inhalt, Übertragungs- und Gegenübertragungsphänomene) 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 Konkrete Handlungsempfehlungen: Intrapsychische Interventionen (Selbstreflexion, Mentalisierung) Interpersonelle Strategien (Kommunikationstechniken, Grenzsetzung) Spezifische Techniken zum Umgang mit schwierigen Persönlichkeiten Klare Handlungsschritte zur Verbesserung der Situation 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.