#!/usr/bin/env bash # Vision: a 1x1 red PNG as a base64 image block (~7 visual tokens) + a text question. # STATUS: LIVE_VERIFIED 2026-09-18 (claude-haiku-4-5-20251001): "Red", input_tokens 21 (~$0.00004). # Run: bash examples/anthropic/vision/image_base64.sh set -eo pipefail cd "$(dirname "$0")/../../.." && source scripts/lib.sh OUTF="$(mktemp)"; trap 'rm -f "$OUTF"' EXIT # `ant` sets ANT_STATUS; calling it inside $(...) would lose it, so write the body to a file instead. call() { ant "$@" > "$OUTF"; OUT="$(cat "$OUTF")"; } MODEL="${ANTHROPIC_MODEL:-claude-haiku-4-5-20251001}" PNG="iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAADElEQVR4nGP4z8AAAAMBAQDJ/pLvAAAAAElFTkSuQmCC" call POST /v1/messages -d "$(jq -n --arg m "$MODEL" --arg d "$PNG" '{model:$m, max_tokens:10, messages:[{role:"user", content:[ {type:"image", source:{type:"base64", media_type:"image/png", data:$d}}, {type:"text", text:"What color is this pixel? One word."}]}]}')" echo "HTTP $ANT_STATUS: $(echo "$OUT" | jq -c '{text: .content[0].text, usage: {input_tokens: .usage.input_tokens, output_tokens: .usage.output_tokens}}')" log_request anthropic POST /v1/messages "$ANT_STATUS" 0.00004 "example vision/image_base64.sh $MODEL"