为什么没有任务 ID
- 图片接口保持与上游官方一致的同步行为,中间不加任务队列,避免额外延迟和行为差异。
- 老张API默认不保存 prompt 和生成结果,没有可以事后凭 ID 取回的数据,见数据与日志说明。
- 把 timeout 设够、保持长连接,绝大多数图片请求都能在一次调用内返回。
推荐做法
1
把 timeout 设到安全上限
客户端和中间代理的超时都设到 360 秒,4K 或多张参考图设到 600 秒。设置方法和逐层排查见请求超时怎么办。
2
关掉 SDK 的自动重试
超时后的自动重试会再生成一次、再扣一次费。把 OpenAI SDK 的
max_retries 设为 0,由业务代码决定是否重试。3
在自己的后端记录每个任务
为每次请求生成业务 ID,把 prompt、参数、返回结果或错误写进自己的数据库。前端断线时,后端仍然持有完整记录。
在后端包一层异步队列
前端不能长时间等待时,可以这样拆分:- 前端提交任务,后端写入数据库并返回业务 ID;
- 后端 worker 用同步方式调用老张API,把结果写回数据库;
- 前端凭业务 ID 轮询自己的后端,或通过 WebSocket 接收结果。
pip install openai 并设置环境变量 LAOZHANG_API_KEY。save_image 同时处理 Base64 和 URL 两种返回,各模型的返回格式见对应接入文档。
业务 ID 由你自己生成、存在你自己的数据库里,老张API只负责同步生成这一步。