56 lines
1.6 KiB
Python
56 lines
1.6 KiB
Python
import requests
|
|
import time
|
|
|
|
# ---- CONFIG ----
|
|
OLLAMA_HOST = "http://100.103.117.14:11434" # Tailscale IP
|
|
MODEL_NAME = "neural-chat"
|
|
NUM_EXCHANGES = 10 # number of exchanges
|
|
|
|
# Names / personalities
|
|
AI1_NAME = "Alice"
|
|
AI2_NAME = "Bob"
|
|
AI1_PERSONALITY = "Alice is cheerful, curious, and friendly."
|
|
AI2_PERSONALITY = "Bob is witty, thoughtful, and calm."
|
|
|
|
# ---- HELPER FUNCTION ----
|
|
def generate_response(prompt, model="neural-chat", url="http://100.103.117.14:11434/api/generate"):
|
|
# Add instruction for short answers
|
|
payload = {
|
|
"model": model,
|
|
"prompt": prompt,
|
|
"stream": False
|
|
}
|
|
try:
|
|
response = requests.post(url, json=payload, timeout=120)
|
|
response.raise_for_status()
|
|
data = response.json()
|
|
return data.get("response", "").strip()
|
|
except Exception as e:
|
|
print(f"LLM error: {e}")
|
|
return None
|
|
|
|
# ---- INITIAL PROMPT ----
|
|
conversation_history = f"{AI1_NAME}: Hello, my name is {AI1_NAME}. {AI1_PERSONALITY}\n" \
|
|
f"{AI2_NAME}: Hi, I'm {AI2_NAME}. {AI2_PERSONALITY}\n"
|
|
|
|
print("=== Conversation Start ===")
|
|
for i in range(NUM_EXCHANGES):
|
|
# AI1 speaks
|
|
ai1_prompt = conversation_history + f"{AI1_NAME}:"
|
|
ai1_msg = generate_response(ai1_prompt)
|
|
ai1_msg = ai1_msg.strip()
|
|
print(f"{AI1_NAME}: {ai1_msg}")
|
|
conversation_history += f"{AI1_NAME}: {ai1_msg}\n"
|
|
|
|
|
|
|
|
# AI2 speaks
|
|
ai2_prompt = conversation_history + f"{AI2_NAME}:"
|
|
ai2_msg = generate_response(ai2_prompt)
|
|
ai2_msg = ai2_msg.strip()
|
|
print(f"{AI2_NAME}: {ai2_msg}")
|
|
conversation_history += f"{AI2_NAME}: {ai2_msg}\n"
|
|
|
|
|
|
print("=== Conversation End ===")
|