# -*- coding: utf-8 -*-
"""四角放大裁决 + 重绘版复检"""
import base64, json, os, requests
from PIL import Image
CFG = json.load(open('/data/www/files/LhyjdesignPro/config.json'))
KEY, BASE = CFG['api_key'], CFG['base_url']
D = '/data/www/files/pandaReadArt/convert'
crop = Image.open(os.path.join(D, '00_海报本体_裁切.jpg'))
W, H = crop.size
cw, ch = 190, 130
corners = {
 '左上': crop.crop((0, 0, cw, ch)),
 '右上': crop.crop((W - cw, 0, W, ch)),
 '左下': crop.crop((0, H - ch, cw, H)),
 '右下': crop.crop((W - cw, H - ch, W, H)),
}
paths = {}
for k, c in corners.items():
    p = os.path.join(D, f'_corner_{k}.jpg')
    c.resize((cw * 3, ch * 3), Image.LANCZOS).save(p, quality=95)
    paths[k] = p


def img(p):
    return {"type": "image_url",
            "image_url": {"url": "data:image/jpeg;base64," + base64.b64encode(open(p, 'rb').read()).decode()}}


def vis(q, ps):
    msgs = [{"role": "user", "content": [img(p) for p in ps] + [{"type": "text", "text": q}]}]
    r = requests.post(f"{BASE}/chat/completions",
        headers={"Authorization": f"Bearer {KEY}", "Content-Type": "application/json"},
        json={"model": CFG['models']['text_vision'], "messages": msgs, "max_tokens": 400}, timeout=220).json()
    return r.get('choices', [{}])[0].get('message', {}).get('content', 'ERR')


print('--- 四角判读（要求分别说明是否属于海报图案）---')
print(vis("这是同一张手抄报海报的四个角（左上、右上、左下、右下），均已放大3倍。请分别判断每个角的内容："
          "是海报自身的图案（如天空/红色飘带边框/卷云/黄星），还是手机界面、桌面、画架等非海报内容？"
          "按「左上：…／右上：…／左下：…／右下：…」格式各一句回答，若含非海报内容请指出具体是什么。",
          [paths['左上'], paths['右上'], paths['左下'], paths['右下']]).strip())

print('\n--- 重绘版复检 ---')
print(vis("图1是原海报，图2是AI重绘版。严格简短回答：\n"
          "1. 图2是否出现文字/字母/数字/乱码/水印？有则读出位置与内容，无则写「无」。\n"
          "2. 红旗白色圆徽内画的是什么？是否为锤子＋镰刀（镰刀有明显弯月形刀刃）？是/否-描述。\n"
          "3. 山顶纪念碑表面是否干净无任何字迹线条？是/否。\n"
          "4. 顶部红色飘带边框是否平滑连续、无变形？是/否。\n"
          "5. 构图元素是否与原图一致（小红军4人、红旗、石拱桥、黄路、纪念碑、飘带边框、左下黄星、卷云、白鸽）？逐个是/否。",
          [os.path.join(D, '00_海报本体_裁切.jpg'), os.path.join(D, '02_AI重绘高清版.jpg')]).strip())
