import requests
import json

base_url = "https://api.clarifai.com/v2/ext/openai/v1/chat/completions"
api_key = "a1a09aad41aa43abbe23122fa1996544"
model = "https://clarifai.com/deepseek-ai/deepseek-ocr/models/DeepSeek-OCR/versions/c52cf7da9b1c4095b07e2a1ccb842811"

with open('urls.txt', 'r') as f:
    urls = [line.split(': ')[1].strip() for line in f.readlines() if line.strip()]

headers = {
    "Authorization": f"Bearer {api_key}",
    "Content-Type": "application/json"
}

prompt = """Trích xuất nguyên văn toàn bộ văn bản (literal transcription). Tuyệt đối KHÔNG tự ý chỉnh sửa lỗi chính tả, KHÔNG thay đổi ký tự cổ, KHÔNG xoá từ lặp, KHÔNG tự ý viết tắt. Hãy gộp các dòng bị ngắt ở cuối dòng thành một đoạn văn hoàn chỉnh theo ngữ nghĩa (không giữ ngắt dòng tuỳ tiện theo sách in)."""

all_text = ""
for i, url in enumerate(urls):
    print(f"Processing Page {i+1} / {len(urls)}...")
    payload = {
        "model": model,
        "messages": [
            {
                "role": "user",
                "content": [
                    {"type": "text", "text": prompt},
                    {"type": "image_url", "image_url": {"url": url}}
                ]
            }
        ]
    }
    try:
        resp = requests.post(base_url, headers=headers, json=payload)
        resp.raise_for_status()
        text = resp.json()['choices'][0]['message']['content']
        all_text += f"\n\n--- Page {i+1} ---\n\n" + text
        print(f"Page {i+1} success.")
    except Exception as e:
        print(f"Error on page {i+1}: {e}")
        try:
            print("Response:", resp.text)
        except:
            pass

with open('extracted_1_3.txt', 'w', encoding='utf-8') as f:
    f.write(all_text.strip())
print("Done! Saved to extracted_1_3.txt")