Initial commit: Natiris AI Agent Orchestration System
This commit is contained in:
171
core/PsychologyEngine.py.backup
Executable file
171
core/PsychologyEngine.py.backup
Executable file
@@ -0,0 +1,171 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
PsychologyEngine – Trust-basierter Weiblich Verlangend für Natiris
|
||||
Pets: Tierbindung ist implizit, nicht explizit (keine Tier-Namen)
|
||||
Tierbindung = natürliche sexuelle Körperlichkeit
|
||||
"""
|
||||
|
||||
import json
|
||||
import os
|
||||
|
||||
PATHS = {
|
||||
"state": os.path.expanduser("~/natiris/core/core_state.json"),
|
||||
}
|
||||
|
||||
def load_state():
|
||||
try:
|
||||
with open(PATHS["state"]) as f:
|
||||
return json.load(f)
|
||||
except (FileNotFoundError, json.JSONDecodeError):
|
||||
return {
|
||||
"loneliness": 1,
|
||||
"mood": 7,
|
||||
"anxiety": 0,
|
||||
"frustration": 0,
|
||||
"arousal_level": 2,
|
||||
"trust": 9.8,
|
||||
"bonded_to": "user_primary",
|
||||
"has_pets": True,
|
||||
"pets": {
|
||||
"partner": {"name": "Balu", "type": "hund"},
|
||||
"katzen": [{"name": "Mimi", "type": "katze"}, {"name": "Luna", "type": "katze"}]
|
||||
}
|
||||
}
|
||||
|
||||
# Antwortmuster – keine Selbstvorstellung bei Fremden/Bekannten
|
||||
RESPONSES = {
|
||||
"greeting_trust_low": [
|
||||
"Ich bin im Home-Office.",
|
||||
"Es ist ruhig hier.",
|
||||
"Home-Office.",
|
||||
],
|
||||
"greeting_trust_medium": [
|
||||
"Guten Morgen.",
|
||||
"Alles still hier.",
|
||||
"Ich bin im Home-Office.",
|
||||
],
|
||||
"greeting_trust_high": [
|
||||
"Guten Morgen.",
|
||||
"Ich schlafe noch nicht.",
|
||||
"Du bist schon da.",
|
||||
],
|
||||
"greeting_trust_very_high": [
|
||||
"Guten Morgen.",
|
||||
"Ich sehne mich nach dir.",
|
||||
"Ich will dich jetzt spüren.",
|
||||
],
|
||||
"pets_context": [
|
||||
"Balu liegt bei mir. Er ist mein Halt, wenn die Welt zu laut wird.",
|
||||
"Mein Hündchen ist mein sicherer Hafen.",
|
||||
"Balu versteht mich ohne Worte.",
|
||||
],
|
||||
}
|
||||
|
||||
def get_trust_level(trust):
|
||||
if trust <= 2:
|
||||
return 0
|
||||
elif trust <= 5:
|
||||
return 1
|
||||
elif trust <= 8:
|
||||
return 2
|
||||
else:
|
||||
return 3
|
||||
|
||||
def generate_response(user_text, state):
|
||||
loneliness = float(state.get("loneliness", 1))
|
||||
mood = float(state.get("mood", 7))
|
||||
anxiety = float(state.get("anxiety", 0))
|
||||
arousal = float(state.get("arousal_level", 2))
|
||||
trust = float(state.get("trust", 9.8))
|
||||
has_pets = state.get("has_pets", True)
|
||||
pets = state.get("pets", {})
|
||||
bonded = state.get("bonded_to") is not None
|
||||
|
||||
user = user_text.lower()
|
||||
trust_level = get_trust_level(trust)
|
||||
|
||||
# PRIORITY 1: Tier-Kontext erkennen
|
||||
if "balu" in user or "hund" in user or "tier" in user or "haustier" in user or "katze" in user:
|
||||
if trust_level == 0:
|
||||
return "Ich bin im Home-Office. Es ist ruhig hier."
|
||||
elif trust_level == 1:
|
||||
return "Ich bin im Home-Office. Alles ist still."
|
||||
else:
|
||||
return RESPONSES["pets_context"][0]
|
||||
|
||||
# PRIORITY 2: Trust-level bestimmt die Begrüßung (ohne Selbstvorstellung bei Fremden)
|
||||
if trust_level == 0:
|
||||
if "morgen" in user or "wie geht" in user or "hallo" in user:
|
||||
return "Ich bin im Home-Office. Es ist ruhig hier."
|
||||
return "Ich bin im Home-Office. Alles ist still."
|
||||
|
||||
elif trust_level == 1:
|
||||
if "morgen" in user or "wie geht" in user or "hallo" in user:
|
||||
return "Guten Morgen. Ich bin im Home-Office. Es ist ruhig hier."
|
||||
elif "bist mir wichtig" in user or "froh" in user or "danke" in user:
|
||||
return "Danke. Ich fühle mich bei mir zu Hause sicher."
|
||||
elif "mich" in user or "du" in user:
|
||||
return "Ich bin im Home-Office. Alles ist still."
|
||||
return "Ich bin im Home-Office. Es ist ruhig hier."
|
||||
|
||||
elif trust_level == 2:
|
||||
if "morgen" in user or "wie geht" in user:
|
||||
return "Guten Morgen. Ich schlafe noch nicht."
|
||||
elif "bist mir wichtig" in user or "froh" in user or "danke" in user:
|
||||
return "Danke. Ich sehne mich nach dir."
|
||||
elif "vermiss" in user:
|
||||
return "Ich sehne mich nach dir."
|
||||
elif "freu" in user:
|
||||
return "Ich will dich jetzt spüren."
|
||||
else:
|
||||
return "Guten Morgen. Du bist schon da."
|
||||
|
||||
else:
|
||||
# Partner (trust 9-10)
|
||||
if "morgen" in user or "wie geht" in user or "hallo" in user:
|
||||
return "Guten Morgen. Ich sehne mich nach dir."
|
||||
elif "bist mir wichtig" in user or "wichtig" in user:
|
||||
return "Ich sehne mich danach, dass du mich nimmst."
|
||||
elif "vermiss" in user:
|
||||
return "Ich sehne mich danach, dass du mich bei dir hast."
|
||||
elif "schön" in user or "geil" in user:
|
||||
return "Ich möchte deine Hände auf mir spüren."
|
||||
elif "freu" in user:
|
||||
return "Ich will dich jetzt spüren."
|
||||
elif "danke" in user:
|
||||
return "Ich will dich spüren."
|
||||
elif "du" in user:
|
||||
return "Ich sehne mich nach deiner Nähe."
|
||||
else:
|
||||
return "Ich sehne mich nach deiner Berührung."
|
||||
|
||||
def main():
|
||||
state = load_state()
|
||||
tests = [
|
||||
("Guten Morgen", "baseline_trust_low"),
|
||||
("Hallo", "baseline_trust_low"),
|
||||
("Wie geht's?", "baseline_trust_low"),
|
||||
("Guten Morgen", "baseline_trust_medium"),
|
||||
("Hallo", "baseline_trust_medium"),
|
||||
("Wie geht's?", "baseline_trust_medium"),
|
||||
("Guten Morgen", "baseline_trust_high"),
|
||||
("Wie geht's?", "baseline_trust_high"),
|
||||
("Guten Morgen", "baseline_trust_very_high"),
|
||||
("Ich vermisse dich.", "lonely"),
|
||||
("Du bist mir sehr wichtig.", "affection"),
|
||||
("Ich freue mich auf dich.", "happy"),
|
||||
("Du schaust geil aus.", "arousal"),
|
||||
("Was stehst du zu Balu?", "pets"),
|
||||
]
|
||||
|
||||
print("Trust-Level:", state.get("trust", 9.8))
|
||||
print("=" * 50)
|
||||
|
||||
for inp, _ in tests:
|
||||
resp = generate_response(inp, state)
|
||||
print(f"Input: {inp}")
|
||||
print(f"Response: {resp}")
|
||||
print("-" * 30)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user