// Vision retry for reasoning models: cap reasoning so the 200-token budget leaves room for the answer. import { client, attempt, save, summarizeResponse, tinyPngBase64 } from "./lib"; const png = tinyPngBase64(); const cases: [string, any][] = [["gpt-5.5", { effort: "none" }], ["gpt-5.6-sol", { effort: "none" }], ["gpt-6-astra", { effort: "low" }], ["o4-mini", { effort: "low" }]]; const out: any[] = []; for (const [model, reasoning] of cases) { out.push(await attempt(`vision-retry:${model}:${reasoning.effort}`, async () => { const r: any = await client.responses.create({ model, max_output_tokens: 200, reasoning, input: [{ role: "user", content: [ { type: "input_text", text: "Attached is a tiny 2x2 pixel PNG. Name the colours you see, one short sentence." }, { type: "input_image", image_url: `data:image/png;base64,${png}`, detail: "high" }] }] } as any); return summarizeResponse(r); })); } save("07b-vision-retry", out);