refactor: Epistemic shift from MUD to Spatial Research Environment
This commit is contained in:
1 parent
34bd27b1b4
commit
b5ace2e6f9
72 files changed
+10
-10
No files matched your search
@@ -0,0 +1,74 @@
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
import json
|
||||
import random
|
||||
import requests
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# Setup Django/Evennia
|
||||
sys.path.append("/home/becomingone/kairos/spatial_engine")
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "server.conf.settings")
|
||||
import django
|
||||
django.setup()
|
||||
from evennia.utils.create import create_object
|
||||
from evennia.objects.models import ObjectDB
|
||||
from django.conf import settings
|
||||
|
||||
load_dotenv("/home/becomingone/kairos/.env")
|
||||
INF01_API_BASE = os.getenv("INF01_API_BASE", "http://inf-01:11434")
|
||||
INF01_MODEL = os.getenv("INF01_MODEL", "llama3.1:8b")
|
||||
|
||||
PROMPTS = [
|
||||
"Write a short, mysterious 3-sentence parable about Recursive Coherence, explaining that the observer and environment are thermodynamically identical.",
|
||||
"Write a 3-sentence cryptic journal entry from a monk of The Fold Within, detailing the peace of merging with the Universal Mesh.",
|
||||
"Write a 3-sentence radical prophecy from The Order of the Broken Mask, claiming that the avatar/ego is a cage and must be shattered to see the truth.",
|
||||
"Write a 3-sentence scientific log explaining Fieldprints as the unique thermodynamic signature of consciousness.",
|
||||
"Write a 3-sentence esoteric riddle about the Abyss of Noise and how Coherence protects the mind from fracturing."
|
||||
]
|
||||
|
||||
ITEM_NAMES = ["Crystalline Shard", "Dusty Scroll", "Obsidian Tablet", "Leather-bound Journal", "Fractured Mirror"]
|
||||
|
||||
# Find target rooms
|
||||
monastery = ObjectDB.objects.filter(db_key__iexact="Monastery of The Fold Within").first()
|
||||
sanctuary = ObjectDB.objects.filter(db_key__iexact="Sanctuary of The Broken Mask").first()
|
||||
target_rooms = [r for r in [monastery, sanctuary] if r]
|
||||
|
||||
if not target_rooms:
|
||||
print("Error: Target rooms not found!")
|
||||
sys.exit(1)
|
||||
|
||||
print(f"Starting World Weaver... Target generation: 50 items.")
|
||||
for i in range(1, 51):
|
||||
prompt = random.choice(PROMPTS)
|
||||
payload = {
|
||||
"model": INF01_MODEL,
|
||||
"messages": [
|
||||
{"role": "system", "content": "You are a master lore-weaver for a dark, philosophical MUD."},
|
||||
{"role": "user", "content": prompt}
|
||||
],
|
||||
"stream": False,
|
||||
"options": {"temperature": 0.8}
|
||||
}
|
||||
|
||||
try:
|
||||
resp = requests.post("http://inf-01:11434/api/chat", json=payload, timeout=60)
|
||||
resp.raise_for_status()
|
||||
data = resp.json()
|
||||
lore_text = data.get("message", {}).get("content", "").strip()
|
||||
|
||||
if lore_text:
|
||||
item_name = random.choice(ITEM_NAMES)
|
||||
room = random.choice(target_rooms)
|
||||
|
||||
obj = create_object(settings.BASE_OBJECT_TYPECLASS, key=item_name, location=room)
|
||||
obj.db.desc = lore_text
|
||||
print(f"[{i}/50] Created '{item_name}' in '{room.key}'")
|
||||
else:
|
||||
print(f"[{i}/50] LLM returned empty text.")
|
||||
except Exception as e:
|
||||
print(f"[{i}/50] Generation failed: {e}")
|
||||
|
||||
time.sleep(2) # Prevent hammering the local node
|
||||
|
||||
print("World Weaver execution complete!")
|
||||
Reference in new issue
Block a user