# -*- coding: utf-8 -*-
import base64,json,sys,urllib.request
API="https://api.deepseek.com/v1/chat/completions"; MODEL="deepseek-v4-flash-vision-exp"
KEY="sk-2af0093dfbac45359276d8aa85d83618"
def ask(img,q):
    b64=base64.b64encode(open(img,"rb").read()).decode()
    p={"model":MODEL,"temperature":0,"max_tokens":2000,"messages":[{"role":"user","content":[
      {"type":"image_url","image_url":{"url":"data:image/jpeg;base64,"+b64}},{"type":"text","text":q}]}]}
    r=urllib.request.Request(API,data=json.dumps(p).encode(),headers={"Authorization":"Bearer "+KEY,"Content-Type":"application/json"})
    d=json.loads(urllib.request.urlopen(r,timeout=300).read())
    return d["choices"][0]["message"]["content"]
Q_SEAL=("这是一枚盖在合同上的红色圆形印章的局部照片。请：\n"
 "1) 沿圆弧逐字读出印章上的全部汉字（包括公司全名），从左到右按正常阅读顺序写出；\n"
 "2) 读出印章边缘/下方的数字编码（如 110100737462 这类）；\n"
 "3) 说明印章是否有五角星、是公章还是合同专用章；\n"
 "4) 如果字迹被手写笔迹遮挡，请给出你最有把握的判读和最接近的候选词。\n"
 "只回答这四点，不要客套。")
Q_ADD=("这是一份合同末尾的手写补充条款（标题写着'补条'），部分字迹被红色印章遮挡。\n"
 "请逐条逐字转录第 1 到第 7 项的全部内容，保持数字和单位完全一致（如 cm、m、元/㎡）。\n"
 "凡是被印章遮挡或看不清的字，用〔?〕标注，不要猜测编造。\n"
 "最后单独列出：你读到的所有数字。只输出转录结果。")
for img,q,tag in [("zoom/p1_seal.jpg",Q_SEAL,"第1页印章"),
                  ("zoom/p4_seal1.jpg",Q_SEAL,"第4页印章A"),
                  ("zoom/p4_seal2.jpg",Q_SEAL,"第4页印章B"),
                  ("zoom/p4_add.jpg",Q_ADD,"补条")]:
    print("="*30, tag)
    try: print(ask(img,q))
    except Exception as e: print("ERR",e)
