import base64, sys; sys.path.insert(0,"/app")
import litellm
from app.config import settings
from app.database import SessionLocal
from app.services import storage_service
from app.services.ai_service import _proxy_model, get_model_for_task
from sqlalchemy import text as sa_text

db = SessionLocal()
row = db.execute(sa_text("""SELECT id, image_path FROM questions
                            WHERE image_path LIKE '%.jpeg' LIMIT 1""")).first()
print("q", row)
data = storage_service.s3_object(row[1]) or storage_service.load(row[1])
print("bytes:", len(data) if data else None)
model, key = get_model_for_task(db, "extraction")
print("model:", model, "proxied:", _proxy_model(model))
b64 = base64.b64encode(data).decode()
kwargs = {"model": _proxy_model(model), "temperature": 0,
          "messages": [{"role": "user", "content": [
              {"type": "text", "text": "Reply with exactly one word describing this image."},
              {"type": "image_url", "image_url": {"url": f"data:image/jpeg;base64,{b64}"}}]}]}
if key or settings.LITELLM_API_KEY: kwargs["api_key"] = key or settings.LITELLM_API_KEY
if settings.LITELLM_API_BASE: kwargs["api_base"] = settings.LITELLM_API_BASE
try:
    r = litellm.completion(**kwargs)
    print("OK ->", r.choices[0].message.content[:200])
except Exception as ex:
    print("FAIL:", type(ex).__name__, str(ex)[:400])
