import os
import base64
import requests
import json
import time

api_key = "a1a09aad41aa43abbe23122fa1996544"
base_url = "https://api.clarifai.com/v2/ext/openai/v1/chat/completions"

model_id = "https://clarifai.com/deepseek-ai/deepseek-ocr/models/DeepSeek-OCR/versions/c52cf7da9b1c4095b07e2a1ccb842811"

prompt = """Trích xuất văn bản tiếng Myanmar từ hình ảnh. BẮT BUỘC:
1. Giữ nguyên văn tuyệt đối (literal transcription).
2. Gộp dòng thành các đoạn văn trọn vẹn, cách nhau 1 dòng trống.
3. Không nhầm ဖ/ဘ, ျ/ြ, ထ/ဌ, ပ/ဘ. Không bỏ sót စ်.
4. Không tự ý viết tắt.
5. Không đổi chính tả.
6. Giữ nguyên dấu phẩy.
7. Bỏ header/footer.
Chỉ trả về văn bản trích xuất, không thêm lời giải thích."""

def encode_image(image_path):
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')

results = []

start_page = 83

for i in range(1, 11):
    img_path = f"/opt/openclaw/.openclaw/workspace/tmp_91_100_images/page-{i:02d}.jpg"
    print(f"Processing {img_path} (Page {start_page + i - 1})...")
    
    base64_image = encode_image(img_path)
    
    headers = {
      "Authorization": f"Bearer {api_key}",
      "Content-Type": "application/json"
    }
    
    payload = {
      "model": model_id,
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "type": "text",
              "text": prompt
            },
            {
              "type": "image_url",
              "image_url": {
                "url": f"data:image/jpeg;base64,{base64_image}"
              }
            }
          ]
        }
      ],
      "max_tokens": 4000
    }
    
    response = requests.post(base_url, headers=headers, json=payload)
    if response.status_code == 200:
        res_json = response.json()
        text = res_json['choices'][0]['message']['content'].strip()
        results.append(f"Trang {start_page + i - 1}\n\n{text}")
    else:
        print(f"Error on page {i}: {response.text}")
        results.append(f"Trang {start_page + i - 1}\n\n[Lỗi trích xuất]")

with open("/opt/openclaw/.openclaw/workspace/extracted_91_100.txt", "w", encoding="utf-8") as f:
    f.write("\n\n".join(results))

print("Done. Saved to /opt/openclaw/.openclaw/workspace/extracted_91_100.txt")
