WalkXR-AI / agent_utils / emotion_log.py
emotion_log.py
Raw
import json
from pathlib import Path
from agent_utils.llm_interface import call_llm

LOG_PATH = Path("logs/emotion_log.jsonl")
LOG_PATH.parent.mkdir(parents=True, exist_ok=True)

def log_emotion(entry: dict):
    with open(LOG_PATH, "a") as f:
        f.write(json.dumps(entry) + "\n")

def extract_latent_emotion(text: str) -> str:
    prompt = f"""
You're a psychologist AI. Read the following message and infer any deeper, unspoken emotional states.

Message: "{text}"

Return one emotion word only (e.g., 'insecure', 'hopeful', 'ashamed').
    """
    response = call_llm(prompt).strip().splitlines()[0]
    return response

def save_emotion_log(log_data: list, path: str = "logs/emotion_summary.json"):
    with open(path, "w") as f:
        json.dump(log_data, f, indent=2)