#!/usr/bin/env python3.12
"""social_hotspots_2.jpg 追加候选（避开「屏幕/办公桌」场景以防模型补人）"""
import sys, os
sys.path.insert(0, '/data/news/scripts')
from PIL import Image
import image_relevance_guard as G

DST = '/data/news/images/0929/social_hotspots_2.jpg'
TITLE = '微软 CEO 纳德拉如何使用智能体：动手操控、追问、继续推理，而非盲目信任'
SUM = '纳德拉披露用Excel智能体做因果推理，强调要追问而非盲目信任。'
NOP = '无真人，不出现人脸、人影、人体、手部与人体局部'

PROMPTS = [
    f'配图：人工智能智能体的因果推理概念，由界面元素与电子表格网格构成的抽象科技图形，'
    f'深蓝色调，新闻配图风格，写实，横向构图，16:9，高清，{NOP}',
    f'配图：数据表格与推理链路可视化，柱状与折线图表元素组合的抽象科技背景，'
    f'新闻配图风格，写实，横向构图，16:9，高清，{NOP}',
]
for ci, pr in enumerate(PROMPTS, 4):
    try:
        tmp = f'/tmp/regen0929_social_hotspots_2.jpg_{ci}.jpg'
        open(tmp, 'wb').write(G.gen_image(pr))
        G.strip_watermark(Image.open(tmp).convert('RGB')).save(DST, 'JPEG', quality=92)
        o = Image.open(DST)
        ok, why, desc = G.parse_relevance(G.relevance_ask(DST, TITLE, SUM))
        print(f'候选{ci} {o.size} {os.path.getsize(DST)//1024}KB 判定={ok} {why} | {desc[:110]}', flush=True)
        if ok:
            print(f'✅ 候选{ci} 通过 → {DST}', flush=True); break
    except Exception as e:
        print(f'候选{ci} 异常: {str(e)[:90]}', flush=True)
else:
    print('⚠️ 追加候选仍未达「是」，回退候选1（部分+同主题，按 §5 可用）', flush=True)
o = Image.open(DST); print(f'最终: {o.format} {o.size} {os.path.getsize(DST)//1024}KB')
