SPB Git forge

spb/doc-api

Public
2commits 1branches 0releases
15.7 MBsize
maindefault branch
13 days agolast push
Python 88.3% TypeScript 7.6% Shell 4.1%
1.7 KB · 26 lines python
Raw Blame History
1#!/usr/bin/env python32"""Image generation tool. By default only exercises the validation path (invalid size -> 400) to avoid image costs;3set RUN_IMAGE_TESTS=true to actually generate a 1024x1024 low-quality image (gpt-image-1-mini) and save it to tmp-live/.4STATUS: LIVE_VERIFIED 2026-09-18 for the error path (400 image_generation_user_error / invalid_value); generation UNVERIFIED.5Run: .venv/bin/python examples/openai/tools/image-generation/image_generation.py6"""7import base64, os, sys8from pathlib import Path9ROOT = Path(__file__).resolve().parents[4]; sys.path.insert(0, str(ROOT))10from scripts.live import load_env, log_request; load_env()11from openai import OpenAI, BadRequestError12client = OpenAI(); MODEL = "gpt-5.4-nano"1314if os.environ.get("RUN_IMAGE_TESTS", "false").lower() in ("1", "true", "yes"):15    r = client.responses.create(model=MODEL, input="A tiny red dot on white.", max_output_tokens=64,16                                tools=[{"type": "image_generation", "model": "gpt-image-1-mini", "size": "1024x1024", "quality": "low", "output_format": "png"}])17    log_request("openai", "POST", "/v1/responses", 200, 0.01, "image_generation.py generate (RUN_IMAGE_TESTS)")18    img = next(i for i in r.output if i.type == "image_generation_call")19    out = ROOT / "tmp-live" / "image_generation_tool.png"; out.write_bytes(base64.b64decode(img.result)); print("saved", out, img.revised_prompt)20else:21    try:22        client.responses.create(model=MODEL, input="Draw a red dot.", tools=[{"type": "image_generation", "size": "1x1"}], max_output_tokens=16)23    except BadRequestError as e:24        log_request("openai", "POST", "/v1/responses", 400, 0, "image_generation.py invalid size")25        print("expected 400:", e.body)26