kitchen: bridge-whisper remaining pitchwell tree

This commit is contained in:
bridge-whisper 2026-09-07 01:17:41 +02:00
parent 0145c5977d
commit 79aa5c9339

45
kitchen/bin/rh-chat.sh Executable file
View file

@ -0,0 +1,45 @@
#!/usr/bin/env bash
# rabbithole chat helper — talkative defaults (temperature 1.05)
set -euo pipefail
MODEL="${1:?model}"
SYSTEM_FILE="${2:?system file or -}"
USER_MSG="${3:?user message}"
OUT="${4:?out path}"
TEMP="${TEMP:-1.05}"
TOP_P="${TOP_P:-0.95}"
NUM_PREDICT="${NUM_PREDICT:-900}"
BASE="${OLLAMA_HOST:-http://127.0.0.1:11436}"
if [[ "$SYSTEM_FILE" == "-" ]]; then
SYS=$(cat)
else
SYS=$(cat "$SYSTEM_FILE")
fi
python3 - "$MODEL" "$SYS" "$USER_MSG" "$OUT" "$TEMP" "$TOP_P" "$NUM_PREDICT" "$BASE" <<'PY'
import json, sys, urllib.request
model, system, user, out, temp, top_p, num_predict, base = sys.argv[1:9]
body = {
"model": model,
"stream": False,
"options": {
"temperature": float(temp),
"top_p": float(top_p),
"num_predict": int(num_predict),
},
"messages": [
{"role": "system", "content": system},
{"role": "user", "content": user},
],
}
req = urllib.request.Request(
base.rstrip("/") + "/api/chat",
data=json.dumps(body).encode(),
headers={"Content-Type": "application/json"},
method="POST",
)
with urllib.request.urlopen(req, timeout=300) as r:
text = (json.load(r).get("message") or {}).get("content") or ""
open(out, "w").write(text.strip() + "\n")
print("ok", out, "chars", len(text), "temp", temp)
PY