| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- """中转接口诊断脚本。
- 在能联通中转的机器上运行:
- python3 test_api.py
- 它会:① 列出中转支持的模型;② 用你的模型试生成一张图,打印真实状态码和返回。
- 把输出贴给我,我就能精确改代码。
- """
- import json
- import ssl
- import urllib.request
- import urllib.error
- import config
- # ====== 改成你的配置 ======
- BASE_URL = config.get("ANIM_STUDIO_BASE_URL", "https://x.long.bid/v1")
- API_KEY = config.get("ANIM_STUDIO_API_KEY", "")
- MODEL = config.get("ANIM_STUDIO_IMAGE_MODEL", "gpt-image-2")
- SIZE = "1024x1024"
- # =========================
- if not API_KEY:
- raise SystemExit("缺少 ANIM_STUDIO_API_KEY;请配置环境变量或 local_config.json")
- try:
- import certifi
- CTX = ssl.create_default_context(cafile=certifi.where())
- except Exception:
- CTX = ssl.create_default_context()
- H = {"Authorization": "Bearer " + API_KEY, "Content-Type": "application/json"}
- def call(method, path, payload=None, timeout=60):
- data = json.dumps(payload).encode() if payload is not None else None
- req = urllib.request.Request(BASE_URL.rstrip("/") + path, data=data, headers=H, method=method)
- try:
- with urllib.request.urlopen(req, timeout=timeout, context=CTX) as r:
- return r.status, r.read().decode("utf-8", "ignore")
- except urllib.error.HTTPError as e:
- return e.code, e.read().decode("utf-8", "ignore")
- except Exception as e:
- return "ERR", repr(e)
- print("① 列出模型 GET /models")
- s, b = call("GET", "/models")
- print(" 状态:", s)
- print(" 返回(前1500):", b[:1500])
- print()
- print(f"② 试生成图片 POST /images/generations (model={MODEL})")
- payload = {"model": MODEL, "prompt": "a cute blue jelly creature, transparent background",
- "n": 1, "size": SIZE}
- if "gpt-image" in MODEL.lower() and MODEL.lower() != "gpt-image-2":
- payload["background"] = "transparent"
- payload["output_format"] = "png"
- s, b = call("POST", "/images/generations", payload)
- print(" 状态:", s)
- print(" 返回(前1500):", b[:1500])
|