← back to Dw Photo Capture

scripts/STEVE-PASTE-vision-step3.sh

17 lines

#!/bin/bash
# TK-12090 vision-url memo — verification step 3 (Steve runs this himself).
# Drives ONE real vision call through prod dwphoto and prints which provider served it.
# visualMatch:false => no Gemini visual-match spend. Read-only against a scratch image.
ssh root@45.61.58.125 'PID=$(pm2 pid dwphoto); export VU=$(tr "\0" "\n" </proc/$PID/environ | grep -m1 ^AUTH_USER= | cut -d= -f2-); export VP=$(tr "\0" "\n" </proc/$PID/environ | grep -m1 ^AUTH_PASS= | cut -d= -f2-); python3 -c "
from PIL import Image,ImageDraw
import base64,io,json,urllib.request,os
im=Image.new(\"RGB\",(384,384),(198,178,142)); d=ImageDraw.Draw(im)
[d.line([(0,y),(384,y)],fill=(150,130,96),width=6) for y in range(0,384,24)]
[d.line([(x,0),(x,384)],fill=(170,150,112),width=3) for x in range(0,384,24)]
b=io.BytesIO(); im.save(b,\"JPEG\",quality=88)
c=base64.b64encode((os.environ[\"VU\"]+\":\"+os.environ[\"VP\"]).encode()).decode()
p=json.dumps({\"dataUrl\":\"data:image/jpeg;base64,\"+base64.b64encode(b.getvalue()).decode(),\"visualMatch\":False}).encode()
r=json.loads(urllib.request.urlopen(urllib.request.Request(\"http://127.0.0.1:9912/api/recognize\",data=p,headers={\"Content-Type\":\"application/json\",\"Authorization\":\"Basic \"+c}),timeout=200).read())
print(\"PROVIDER:\",r.get(\"provider\"),\" (expect exo, not gemini)\"); print(\"cost_usd:\",r.get(\"cost_usd\"),\" (expect 0)\"); print(\"ok:\",r.get(\"ok\"))
"'