phantom-grid / scripts /_test_witness_api.py
unity4ar's picture
Ship Phantom Grid Docker Space
d2e6f94 verified
Raw
History Blame Contribute Delete
1.33 kB
"""Hit the LIVE /api/witness/.../message endpoint twice with different
questions on the same Harriet Moss witness and confirm we get distinct
English answers."""
import json, sys, time, urllib.request
from pathlib import Path
REPO = Path(__file__).resolve().parent.parent
GAME = "game_20260614_075442_190041"
WIT = "w_false_notice_001_74"
questions = ["what did you see", "where was he", "what was he carrying"]
out = REPO / "runtime" / "tmp" / "witness_api_test.txt"
out.parent.mkdir(parents=True, exist_ok=True)
lines = []
for q in questions:
payload = json.dumps({"message": q}).encode("utf-8")
req = urllib.request.Request(
f"http://127.0.0.1:7860/api/witness/{GAME}/{WIT}/message",
data=payload, headers={"Content-Type": "application/json"}, method="POST",
)
start = time.perf_counter()
try:
with urllib.request.urlopen(req, timeout=120) as resp:
data = json.loads(resp.read().decode("utf-8"))
except urllib.error.HTTPError as e:
lines.append(f"Q: {q} HTTP {e.code}: {e.read().decode('utf-8', errors='replace')}")
continue
elapsed = time.perf_counter() - start
lines.append(f"Q ({elapsed:.2f}s): {q}")
lines.append(f"A: {data.get('answer')}")
lines.append("")
out.write_text("\n".join(lines), encoding="utf-8")
print(f"wrote: {out}")