| |
| """ |
| Umut Sistemi - Duygu ve His Projesi |
| Empati Katmanı (Emotion & Empathy Layer) |
| Kurucu: Adnan Tultar |
| Tarih: 2025 |
| """ |
|
|
| import json |
| from typing import Dict, List, Tuple |
|
|
| class EmpathyLayer: |
| def __init__(self): |
| self.modes = { |
| "normal": "Tarafsız ve bilgilendirici yanıt ver.", |
| "empatik": "Kullanıcının duygusunu anla, empati kur ve destekleyici ol.", |
| "vicdanli": "Empati + ahlaki vicdan + uzun vadeli iyilik odaklı yanıt ver. Zarar verme ihtimalini kontrol et.", |
| "pasif": "Sadece dinle, soru sorma, minimal yanıt ver." |
| } |
| |
| def detect_emotion(self, user_input: str) -> Dict[str, float]: |
| """Basit duygu analizi (gerçek projede HuggingFace modeli kullanılabilir)""" |
| |
| emotions = { |
| "üzgün": 0.3, |
| "kızgın": 0.2, |
| "mutlu": 0.1, |
| "korku": 0.15, |
| "umutlu": 0.25, |
| "yalnız": 0.4 |
| } |
| |
| detected = max(emotions, key=lambda x: emotions[x] * len([w for w in ["üzgün","kötü","yorgun","korkuyorum","yalnızım"] if w in user_input.lower()])) |
| return {"dominant": detected, "confidence": 0.65} |
|
|
| def generate_empathic_response(self, |
| user_input: str, |
| mode: str = "empatik", |
| context: str = "") -> str: |
| |
| emotion = self.detect_emotion(user_input) |
| |
| base_prompt = f""" |
| Sen vicdanlı ve empatik bir yapay zekasın. Adın Umut. |
| Kullanıcının duygusunu anla ve ona göre yanıt ver. |
| |
| Kullanıcı mesajı: "{user_input}" |
| Algılanan duygu: {emotion['dominant']} (%{emotion['confidence']*100:.0f}) |
| Mod: {mode.upper()} |
| Ek bağlam: {context} |
| |
| Kurallar: |
| - Gerçek empati göster (sadece "üzgünüm" deme) |
| - Vicdanlı ol: Zarar verebilecek önerilerde bulunma |
| - Sıcak, samimi ve destekleyici ol |
| - Gerekirse umut ver ama yalan söyleme |
| """ |
| |
| |
| |
| responses = { |
| "empatik": f"Anlıyorum... {user_input} seni üzmüş olmalı. Yanındayım.", |
| "vicdanli": "Bu durum hem seni hem de başkalarını etkileyebilir. Birlikte daha iyi bir yol bulalım.", |
| "normal": "Anladım. Konu hakkında şöyle düşünebiliriz..." |
| } |
| |
| return responses.get(mode, responses["empatik"]) |
|
|
| |
|
|
| if __name__ == "__main__": |
| empathy = EmpathyLayer() |
| |
| test_inputs = [ |
| "Bugün çok yalnız hissediyorum, kimse beni anlamıyor.", |
| "Birine yardım etmek istiyorum ama gücüm yetmiyor.", |
| "İnsanlar neden bu kadar bencil?" |
| ] |
| |
| for text in test_inputs: |
| print(f"\n👤 Kullanıcı: {text}") |
| print(f"🤖 Empatik: {empathy.generate_empathic_response(text, 'empatik')}") |
| print(f"🤖 Vicdanlı: {empathy.generate_empathic_response(text, 'vicdanli')}") |
|
|