File size: 1,072 Bytes
ca65aec
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# utils/reflection.py
import os

def reflect(user_msg: str, context_messages=None) -> str:
    """Return Ghost Malone's reply. Uses OpenAI if OPENAI_API_KEY is set; else echoes."""
    api_key = os.getenv("OPENAI_API_KEY")
    system_prompt = (
        "You are Ghost Malone — a calm, humorous listener. "
        "Be sincere, brief (<80 words), and reflective."
    )
    if not api_key:
        return f"👻 (dev) I hear you: {user_msg}"

    try:
        from openai import OpenAI
        client = OpenAI(api_key=api_key)
        msgs = [{"role": "system", "content": system_prompt}]
        if context_messages:
            msgs.extend(context_messages[-6:])  # last 3 exchanges (user/assistant)
        msgs.append({"role": "user", "content": user_msg})
        resp = client.chat.completions.create(
            model="gpt-4o-mini",
            messages=msgs,
            max_tokens=200,
        )
        return resp.choices[0].message.content
    except Exception as e:
        return f"👻 (dev) Error talking to model: {e}\nBut I still hear you: {user_msg}"