#!/usr/bin/env python3
"""
OCR Sadi-176-180 với Gemini 2.5 Pro - Test trang 1 trước
"""

import base64
import os
import requests
from PIL import Image
import io
import time

API_KEY = os.environ.get("GEMINI_API_KEY")
WORKDIR = "/opt/openclaw/.openclaw/workspace/Chuan Muc Sadi"
GEMINI_URL = f"https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-pro:generateContent?key={API_KEY}"

print("📖 Đang xử lý trang 1/5...")

img_path = f"{WORKDIR}/sadi_page-1.png"

# Resize ảnh nhỏ hơn để test
with Image.open(img_path) as img:
    ratio = 1000 / img.width
    new_height = int(img.height * ratio)
    img_resized = img.resize((1000, new_height), Image.LANCZOS)
    
    buffer = io.BytesIO()
    img_resized.save(buffer, format="PNG", optimize=True, compress_level=6)
    img_data = base64.b64encode(buffer.getvalue()).decode("utf-8")
    print(f"   Kích thước ảnh sau resize: {len(img_data)} bytes")

prompt = """Extract all Myanmar text from this page EXACTLY as written. This is a literal transcription - do NOT clean or modify anything. Output ONLY Myanmar text."""

payload = {
    "contents": [{
        "parts": [
            {"text": prompt},
            {"inline_data": {"mime_type": "image/png", "data": img_data}}
        ]
    }],
    "generationConfig": {
        "temperature": 0.1,
        "maxOutputTokens": 4096
    }
}

print("   Đang gửi request đến Gemini API...")
start = time.time()

try:
    response = requests.post(GEMINI_URL, headers={"Content-Type": "application/json"}, json=payload, timeout=120)
    elapsed = time.time() - start
    print(f"   Response time: {elapsed:.1f}s, Status: {response.status_code}")
    
    if response.status_code == 200:
        result = response.json()
        text = result["candidates"][0]["content"]["parts"][0]["text"]
        print(f"\n✅ Kết quả trang 1 ({len(text)} ký tự):\n")
        print(text[:500])
        print("\n...")
    else:
        print(f"❌ Error: {response.text[:500]}")
except Exception as e:
    print(f"❌ Exception: {e}")
