# -*- coding: utf-8 -*- """真实 API 全链路验证:JP JPTM001 黑色 × 1(oss 真上传)。""" import json import sys from pathlib import Path BASE = Path(__file__).resolve().parent.parent sys.path.insert(0, str(BASE)) import yaml from graph.product_batch import run_product_batch config = yaml.safe_load(open(BASE / "dist_v2" / "config.yaml", encoding="utf-8")) config["seed_provider"] = "openai" config["llm_screen"]["provider"] = "openai" config["compose"]["backend"] = "openai" config["product"]["backend"] = "openai" config["oss"]["enabled"] = True config["seed_shot"]["count"] = 1 print("使用配置: llm_model =", config["llm_screen"].get("model"), "| img_model =", config["compose"].get("model")) out = run_product_batch("JP", config, BASE, BASE / "dist_v2", [{"spu": "JPTM001", "skus": "JPTM001-BL01"}], 1, log_q=None) print("\n=== 结果 ===") prods = out.get("product") or [] print("产品数:", len(prods)) for r in prods: print(f" {r.get('spu_code')} | {r.get('sku_code')} | design={bool(r.get('design_path'))} " f"| composite={bool(r.get('composite_path'))} | en_title={bool(r.get('en_title'))} " f"| ja_title={bool(r.get('ja_title'))} | oss_code={r.get('oss_code')}") print(" URLs:", {k: v[:60] for k, v in r.items() if k.endswith("_url")}) print("errors:", [e.get("message", "")[:100] for e in out.get("errors") or []])