clawdbot-workspace/scripts/captcha_vision_vote.sh
2026-01-28 23:00:58 -05:00

61 lines
2.6 KiB
Bash
Executable File

#!/bin/bash
# Captcha Vision Voting System
# Sends same image to multiple AI models and compares answers
IMAGE_PATH="${1:-/tmp/captcha-puzzle.png}"
PROMPT="${2:-Look at this captcha puzzle. On the left is a target icon. On the right is a shadow that can be rotated with arrows. Which direction should I click - LEFT arrow or RIGHT arrow - to make the shadow match the target icon? Answer with just LEFT or RIGHT.}"
if [ ! -f "$IMAGE_PATH" ]; then
echo "❌ Image not found: $IMAGE_PATH"
exit 1
fi
echo "🗳️ Captcha Vision Voting System"
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
echo "📸 Image: $IMAGE_PATH"
echo ""
# Vote 1: Gemini
echo "🤖 Asking Gemini..."
GEMINI_ANSWER=$(gemini -p "$PROMPT" -f "$IMAGE_PATH" 2>/dev/null | tr '[:lower:]' '[:upper:]' | grep -oE '(LEFT|RIGHT)' | head -1)
echo " Gemini says: ${GEMINI_ANSWER:-UNCLEAR}"
# Vote 2: Gemini again with slightly different prompt (for diversity)
echo "🤖 Asking Gemini (rephrased)..."
PROMPT2="This is a shadow-matching captcha. The left image is the target shape. The right image shows a shadow. Should I click the LEFT arrow or RIGHT arrow to rotate the shadow to match? Just say LEFT or RIGHT."
GEMINI2_ANSWER=$(gemini -p "$PROMPT2" -f "$IMAGE_PATH" 2>/dev/null | tr '[:lower:]' '[:upper:]' | grep -oE '(LEFT|RIGHT)' | head -1)
echo " Gemini2 says: ${GEMINI2_ANSWER:-UNCLEAR}"
# Vote 3: Gemini with position analysis
echo "🤖 Asking Gemini (analytical)..."
PROMPT3="Analyze this captcha: 1) What object is shown on the left? 2) How is the shadow on the right currently oriented? 3) To match them, should I click LEFT or RIGHT arrow? End with just LEFT or RIGHT."
GEMINI3_ANSWER=$(gemini -p "$PROMPT3" -f "$IMAGE_PATH" 2>/dev/null | tr '[:lower:]' '[:upper:]' | grep -oE '(LEFT|RIGHT)' | tail -1)
echo " Gemini3 says: ${GEMINI3_ANSWER:-UNCLEAR}"
echo ""
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
# Tally votes
LEFT_VOTES=0
RIGHT_VOTES=0
[[ "$GEMINI_ANSWER" == "LEFT" ]] && ((LEFT_VOTES++))
[[ "$GEMINI_ANSWER" == "RIGHT" ]] && ((RIGHT_VOTES++))
[[ "$GEMINI2_ANSWER" == "LEFT" ]] && ((LEFT_VOTES++))
[[ "$GEMINI2_ANSWER" == "RIGHT" ]] && ((RIGHT_VOTES++))
[[ "$GEMINI3_ANSWER" == "LEFT" ]] && ((LEFT_VOTES++))
[[ "$GEMINI3_ANSWER" == "RIGHT" ]] && ((RIGHT_VOTES++))
echo "📊 VOTES: LEFT=$LEFT_VOTES | RIGHT=$RIGHT_VOTES"
if [ $LEFT_VOTES -gt $RIGHT_VOTES ]; then
echo "✅ CONSENSUS: LEFT"
echo "LEFT"
elif [ $RIGHT_VOTES -gt $LEFT_VOTES ]; then
echo "✅ CONSENSUS: RIGHT"
echo "RIGHT"
else
echo "⚠️ TIE - needs Claude's tiebreaker"
echo "TIE"
fi