self-smoke Check 5: Bild-Weiche v2 taeglich aktiv durchspielen
Der Pfad (Bild an coder -> Vision beschreibt -> Coder antwortet) brach am 15.07. zweimal still: erst als nie verdrahteter Patch in der Hermes-Quelle, dann am gepoolten Keep-Alive-Socket nach Modell-Swap (:9010). 256x256-Rot als Testbild - Winzbilder liefern VL-Halluzinationen (Kapuzinerkresse). Nebeneffekt: waermt coder+vision morgens vor. Vorschlag der P2-Session. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -102,6 +102,33 @@ else
|
|||||||
say "SKIP · Repo-Wächter (git fetch fehlgeschlagen)"
|
say "SKIP · Repo-Wächter (git fetch fehlgeschlagen)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# ── 5) Bild-Weiche v2: Bild an coder → Vision beschreibt, Coder antwortet ──────
|
||||||
|
# Dieser Pfad brach am 15.07. ZWEIMAL still (toter Hermes-Patch; gepoolter Socket
|
||||||
|
# nach Modell-Swap) — deshalb täglich aktiv durchspielen. Nebeneffekt: wärmt
|
||||||
|
# coder+vision am Morgen vor. 256x256-Testbild (Winzbilder = VL-Halluzinationen).
|
||||||
|
BILD_JSON=$(python3 - <<'PYIN'
|
||||||
|
import struct, zlib, base64, json
|
||||||
|
w=h=256
|
||||||
|
raw=b"".join(b"\x00"+b"\xff\x00\x00"*w for _ in range(h))
|
||||||
|
def chunk(t,d):
|
||||||
|
c=t+d; return struct.pack(">I",len(d))+c+struct.pack(">I",zlib.crc32(c))
|
||||||
|
png=b"\x89PNG\r\n\x1a\n"+chunk(b"IHDR",struct.pack(">IIBBBBB",w,h,8,2,0,0,0))+chunk(b"IDAT",zlib.compress(raw))+chunk(b"IEND",b"")
|
||||||
|
url="data:image/png;base64,"+base64.b64encode(png).decode()
|
||||||
|
print(json.dumps({"model":"coder","stream":False,"max_tokens":40,"messages":[{"role":"user","content":[{"type":"image_url","image_url":{"url":url}},{"type":"text","text":"Welche Farbe hat das angehaengte Bild? Antworte nur mit der Farbe."}]}]}))
|
||||||
|
PYIN
|
||||||
|
)
|
||||||
|
BW_HDR=$(mktemp); BW_OUT=$(mktemp)
|
||||||
|
if curl -sf -m 420 -D "$BW_HDR" -X POST "$MC_URL/v1/chat/completions" \
|
||||||
|
-H "Content-Type: application/json" -d "$BILD_JSON" -o "$BW_OUT" 2>/dev/null \
|
||||||
|
&& grep -qi "bleibt beim Coder" "$BW_HDR" \
|
||||||
|
&& grep -qi "rot" "$BW_OUT"; then
|
||||||
|
say "PASS · Bild-Weiche v2 (Bild an coder → beschrieben → 'rot')"
|
||||||
|
else
|
||||||
|
say "FAIL · Bild-Weiche v2: $(grep -i 'x-mc-route-reason' "$BW_HDR" 2>/dev/null | head -1) Antwort: $(head -c 80 "$BW_OUT" 2>/dev/null)"
|
||||||
|
FAILED+=("Bild-Weiche v2 (Bild an coder — Umleitung statt Beschreibung oder falsche Antwort)")
|
||||||
|
fi
|
||||||
|
rm -f "$BW_HDR" "$BW_OUT"
|
||||||
|
|
||||||
# ── Meldung nur bei Rot ──────────────────────────────────────────────────────
|
# ── Meldung nur bei Rot ──────────────────────────────────────────────────────
|
||||||
if [ "${#FAILED[@]}" -eq 0 ]; then
|
if [ "${#FAILED[@]}" -eq 0 ]; then
|
||||||
say "Alle Selbst-Tests grün ($(date '+%F %H:%M'))."
|
say "Alle Selbst-Tests grün ($(date '+%F %H:%M'))."
|
||||||
|
|||||||
Reference in New Issue
Block a user