empagi / Vicdan
Umutsistemi01's picture
Create Vicdan
ff50fcc verified
Raw
History Blame Contribute Delete
3.26 kB
# empathy_layer.py
"""
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)"""
# Bu kısım geliştirilebilir (text-classification modeli eklenebilir)
emotions = {
"üzgün": 0.3,
"kızgın": 0.2,
"mutlu": 0.1,
"korku": 0.15,
"umutlu": 0.25,
"yalnız": 0.4
}
# Gerçekçi bir simülasyon
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
"""
# Burada gerçek LLM çağrısı yapılacak
# Şimdilik simüle ediyoruz
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"])
# ====================== ÖRNEK KULLANIM ======================
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')}")