61 lines
2.6 KiB
Bash
Executable File
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
|