# -*- coding: utf-8 -*-
"""最终质检"""
import base64, json, os, requests
CFG = json.load(open('/data/www/files/LhyjdesignPro/config.json'))
KEY, BASE = CFG['api_key'], CFG['base_url']
D = '/data/www/files/pandaReadArt/convert'


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


CROP = os.path.join(D, '00_海报本体_裁切.jpg')
HD = os.path.join(D, '01_高清图_A4_300dpi.jpg')
RED = os.path.join(D, '02_AI重绘高清版.jpg')
LIN = os.path.join(D, '03_线条图.jpg')

print('===== ① 裁切是否干净（对比原截图）')
print(vis("图1是原始手机截图，图2是裁切后的海报。严格简短回答：\n"
          "1. 图2是否已完全去掉手机界面（状态栏/导航按键）与桌面/画架背景？是/否+说明残留位置。\n"
          "2. 图2海报的四条边（红色飘带边框）是否完整、无明显缺边？是/否+说明。\n"
          "3. 图2是否清晰、无模糊马赛克？是/否。",
          ['/root/.hermes/webui/attachments/d7fb35486610/screenshot-1789268930955.jpeg', CROP]))

print('\n===== ② 高清图质量')
print(vis("严格简短回答：1. 该图是否清晰锐利、细节（人物五官、文字、飘带边缘）可辨？是/否+一句。\n"
          "2. 有无明显放大造成的模糊、块状或过度锐化的白边？无/有-说明。\n"
          "3. 标题文字「长征胜利90周年」是否清晰可读？是/否。", [HD]))

print('\n===== ③ AI重绘版')
print(vis("图1是原海报，图2是重绘版。严格简短回答：\n"
          "1. 是否出现文字/字母/数字/乱码/水印？有则读出，无则写「无」。\n"
          "2. 红旗白色圆徽内是否为锤子＋镰刀？是/否-描述。\n"
          "3. 山顶纪念碑表面是否干净无字迹？是/否。\n"
          "4. 构图元素是否齐全（4名小红军、红旗、石拱桥、黄路、纪念碑、飘带边框、左下黄星、卷云、白鸽）？逐个是/否。",
          [CROP, RED]))

print('\n===== ④ 线条图')
print(vis("图1是原海报，图2是线条图。严格简短回答：\n"
          "1. 标题文字读作什么？原样读出。\n"
          "2. 标题外是否还有其他文字/字母/数字/水印？有则读出，无则写「无」。\n"
          "3. 是否为纯黑白线条、无灰阶、无颜色、色块封闭便于涂色？是/否+一句。\n"
          "4. 构图元素是否齐全（4名小红军、红旗、石拱桥、黄路、纪念碑、飘带边框、左下五角星、卷云、白鸽）？逐个是/否。\n"
          "5. 红旗圆徽内是否有清晰的锤子镰刀线条？是/否。\n"
          "6. 标题是否与画面元素重叠、或被裁切？无/有-说明。",
          [CROP, LIN]))
