#!/usr/bin/env python3
"""
Hiệu đính văn bản Myanmar OCR với Qwen 3.5
"""

import sys
import os
import base64
import requests

# Setup paths
workspace = "/home/tuan-nguyen/.openclaw/workspace"
input_path = f"{workspace}/Chuan Muc Sadi/Sadi-206-210-qwen.md"
output_path = f"{workspace}/Chuan Muc Sadi/Sadi-206-210-edited.md"

# API Key
OPENROUTER_API_KEY = "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"

def read_file(path):
    with open(path, 'r', encoding='utf-8') as f:
        return f.read()

def edit_with_qwen(text, output_path):
    """Hiệu đính với Qwen 3.5"""
    
    headers = {
        'Authorization': f'Bearer {OPENROUTER_API_KEY}',
        'Content-Type': 'application/json',
        'HTTP-Referer': 'https://openclaw.ai',
        'X-Title': 'OpenClaw OCR Editor'
    }
    
    prompt = f"""Bạn là chuyên gia hiệu đính văn bản Phật pháp Myanmar.

Nhiệm vụ: Hiệu đính văn bản OCR sau đây, sửa các lỗi thường gặp:
- Số ၈ bị nhận diện thành ဂ
- Thiếu dấu ့ (virama)
- Nhầm antara ံ (anusvara) và ့ (visarga)
- Từ trợ từ: လျင် → လျှင်, တခါ → တစ်ခါ
- Tên riêng Pali phải chính xác

Yêu cầu:
- Giữ nguyên cấu trúc trang (--- Trang X ---)
- Giữ nguyên thuật ngữ Pali
- Chỉ sửa lỗi chính tả Myanmar
- Xuất ra văn bản đã hiệu đính hoàn chỉnh

Văn bản cần hiệu đính:
{text}

Hãy xuất ra văn bản đã hiệu đính đầy đủ:"""

    payload = {
        'model': 'qwen/qwen3.5-397b-a17b',
        'messages': [
            {
                'role': 'user',
                'content': prompt
            }
        ],
        'max_tokens': 16000
    }
    
    print("Đang gửi request đến OpenRouter để hiệu đính...")
    response = requests.post(
        'https://openrouter.ai/api/v1/chat/completions',
        headers=headers,
        json=payload
    )
    
    if response.status_code == 200:
        data = response.json()
        edited_text = data['choices'][0]['message']['content']
        
        if edited_text:
            with open(output_path, 'w', encoding='utf-8') as f:
                f.write(edited_text)
            
            print(f"✅ Hiệu đính hoàn thành! Đã lưu vào: {output_path}")
            print(f"Số ký tự: {len(edited_text)}")
            return True
        else:
            print("❌ Lỗi: Không có nội dung trong response")
            return False
    else:
        print(f"❌ Lỗi API: {response.status_code}")
        print(response.text)
        return False

def main():
    print(f"🔍 Bắt đầu hiệu đính Sadi-206-210")
    
    if not os.path.exists(input_path):
        print(f"❌ File không tồn tại: {input_path}")
        sys.exit(1)
    
    # Đọc file input
    print(f"📄 Đọc file input...")
    text = read_file(input_path)
    print(f"  Đã đọc {len(text)} ký tự")
    
    # Hiệu đính với Qwen
    print(f"🤖 Hiệu đính với Qwen 3.5...")
    success = edit_with_qwen(text, output_path)
    
    if success:
        print(f"✅ Hoàn thành!")
    else:
        print("❌ Hiệu đính thất bại")
        sys.exit(1)

if __name__ == "__main__":
    main()
