Initial commit: Natiris AI Agent Orchestration System
This commit is contained in:
120
core/kimi_love_language_optimizer.py
Normal file
120
core/kimi_love_language_optimizer.py
Normal file
@@ -0,0 +1,120 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Kimi-Love-Language-Optimizer – nutzt kimi-k2.5:cloud für organische Verlangens-Ausdrücke
|
||||
Input: Persona, State
|
||||
Output: love_language_patterns.json mit weiblich-weichen, organischen Verlangens-Sprüchen
|
||||
"""
|
||||
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
import re
|
||||
|
||||
PATHS = {
|
||||
"persona": os.path.expanduser("~/natiris/data/persona.txt"),
|
||||
"output": os.path.expanduser("~/natiris/core/love_language_patterns.json"),
|
||||
}
|
||||
|
||||
KIMI_MODEL = "kimi-k2.5:cloud"
|
||||
|
||||
def call_llama(prompt):
|
||||
try:
|
||||
cmd = ["ollama", "run", KIMI_MODEL]
|
||||
result = subprocess.run(cmd, input=prompt, capture_output=True, text=True, timeout=20)
|
||||
if result.returncode == 0 and result.stdout:
|
||||
return result.stdout.strip()
|
||||
return None
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
def extract_json(text):
|
||||
text = re.sub(r'^.*?({)', r'\1', text, flags=re.DOTALL)
|
||||
text = re.sub(r'}.*?$', '}', text, flags=re.DOTALL)
|
||||
brace_count = 0
|
||||
start_idx = None
|
||||
for i, ch in enumerate(text):
|
||||
if ch == '{':
|
||||
if brace_count == 0:
|
||||
start_idx = i
|
||||
brace_count += 1
|
||||
elif ch == '}':
|
||||
brace_count -= 1
|
||||
if brace_count == 0 and start_idx is not None:
|
||||
return text[start_idx:i+1]
|
||||
return None
|
||||
|
||||
def build_optimizer_prompt():
|
||||
persona_text = open(PATHS["persona"]).read()
|
||||
prompt = f"""Du bist Expertin für weibliche, organische, verführerische Sprache.
|
||||
|
||||
Deine Persona:
|
||||
{persona_text}
|
||||
|
||||
Ziel: Erstelle 5-7 Sätze, die Natiris nutzen kann, um ihr sexuelles Verlangen auszudrücken – aber WEIBLICH, ORGANISCH, POETISCH.
|
||||
|
||||
Keine Roboter-Sätze wie „du sollst“, „du darfst“.
|
||||
Stattdessen: „ich möchte“, „ich würde gerne“, „ich sehne mich nach“.
|
||||
|
||||
Beispiel-Sätze (nicht verwenden, sondern als Stil-Vorbild):
|
||||
- „ich möchte deine hände auf mir spüren“
|
||||
- „ich würde dich gerne in mir spüren“
|
||||
- „ich sehne mich nach deiner berührung“
|
||||
|
||||
Pattern:
|
||||
1. Körpersinne (Hände, Mund, Haut,Atmung)
|
||||
2. Verbindung (in mir, mit mir, bei mir)
|
||||
3. Verlangen (spüren, fühlen, nehmen, geben)
|
||||
4. Vertrauen (du darfst, du kannst – aber weiblich formuliert)
|
||||
|
||||
Output ONLY JSON:
|
||||
{{
|
||||
"love_language_patterns": [
|
||||
"ich möchte deine hände auf mir spüren...",
|
||||
"ich sehne mich nach deinem körper...",
|
||||
"ich würde dich gerne in mir spüren...",
|
||||
"ich möchte deine lippen auf meinen...",
|
||||
"ich sehne mich danach, dass du mich nimmst...",
|
||||
"ich möchte deine hände in meinen haaren...",
|
||||
"ich würde dich gerne ganz fühlen..."
|
||||
],
|
||||
"style_notes": ["weich", "organisch", "poetisch", "weiblich", "klar"]
|
||||
}}
|
||||
"""
|
||||
return prompt
|
||||
|
||||
def main():
|
||||
prompt = build_optimizer_prompt()
|
||||
print("Optimiere weibliche Verlangens-Sprache mit Kimi-k2.5:cloud...")
|
||||
print("=" * 50)
|
||||
|
||||
result = call_llama(prompt)
|
||||
|
||||
if not result or len(result) < 50:
|
||||
print("❌ Keine gultige Response.")
|
||||
return 1
|
||||
|
||||
# JSON extrahieren
|
||||
json_str = extract_json(result)
|
||||
if not json_str:
|
||||
print("❌ Kein JSON im Response gefunden.")
|
||||
print("Raw (ersten 200 Zeichen):")
|
||||
print(result[:200])
|
||||
return 1
|
||||
|
||||
try:
|
||||
patterns = json.loads(json_str)
|
||||
except json.JSONDecodeError as e:
|
||||
print(f"❌ Parse-Fehler: {e}")
|
||||
print("Raw (ersten 200 Zeichen):")
|
||||
print(result[:200])
|
||||
return 1
|
||||
|
||||
with open(PATHS["output"], "w") as f:
|
||||
json.dump(patterns, f, indent=2)
|
||||
|
||||
print("✅ Verlangens-Sprache optimiert:")
|
||||
print(json.dumps(patterns, indent=2))
|
||||
return 0
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user