"""Can a vision model read a stem figure through the proxy?"""
from app.database import SessionLocal
from app.models.question import Question
from app.services import storage_service, thumbnails, vision_service
from app.services.ai_service import chat

CANDIDATES = ["openrouter-gemini-2.5-flash", "openrouter-gpt-4.1-mini", "openrouter-glm-4.7-flash"]

db = SessionLocal()
question = db.get(Question, 1206)
print("stem:", (question.question_text or "")[:80])
data = storage_service.load(question.image_path)
print("bytes:", len(data) if data else None)

small = thumbnails.render(data, 640) or data
image = vision_service.prepare(small, "image/webp", caption="a question figure")
for model in CANDIDATES:
    try:
        out = chat(model=model, max_tokens=200, temperature=0, messages=[{"role": "user", "content": [
            vision_service.image_part(image),
            {"type": "text", "text": "In one short sentence, what does this figure show?"},
        ]}])
        print(f"{model}: {(out or '').strip()[:200]}")
        break
    except Exception as exc:
        print(f"{model}: FAILED {type(exc).__name__} {str(exc)[:120]}")
