# -*- 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'
SRC = '/root/.hermes/webui/attachments/d7fb35486610/screenshot-1789268930955.jpeg'

im = Image.open(SRC).convert('RGB')
# 原图左边缘区域（含右侧正常海报内容作为对照）
r1 = im.crop((0, 200, 160, 640)).resize((160 * 3, 440 * 3), Image.LANCZOS)
p1 = os.path.join(D, '_leftedge.jpg')
r1.save(p1, quality=95)
# 原图右边缘（作为"完整边框应有的样子"对照）
r2 = im.crop((989, 200, 1149, 640)).resize((160 * 3, 440 * 3), Image.LANCZOS)
p2 = os.path.join(D, '_rightedge.jpg')
r2.save(p2, quality=95)


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": 450}, timeout=220).json()
    return r.get('choices', [{}])[0].get('message', {}).get('content', 'ERR').strip()


print('图1=原图左边缘（放大3倍） 图2=原图右边缘（放大3倍，完整边框的对照）')
print(vis("严格简短回答：\n1. 图1最左端显示的是什么？是否为手机导航按键/黑色UI遮挡？是/否-描述。\n"
          "2. 图1中红色飘带边框是否完整可见，还是被从左切断（只见右半部分）？完整/被切断。\n"
          "3. 对比图2的完整边框，估计图1左侧大约缺失了多宽的边框（占这160px条带的比例，如10%/20%）？\n"
          "4. 图1左下角的黄色五角星是否完整？是/否。", [p1, p2]))
