Skip to main content
没有。老张API的图片生成与编辑接口都是同步调用:请求保持连接,生成完成后直接在响应里返回图片,不返回任务 ID,也没有查询结果的接口。需要异步体验时,在自己的后端用业务 ID 包一层任务队列。

为什么没有任务 ID

  • 图片接口保持与上游官方一致的同步行为,中间不加任务队列,避免额外延迟和行为差异。
  • 老张API默认不保存 prompt 和生成结果,没有可以事后凭 ID 取回的数据,见数据与日志说明。
  • 把 timeout 设够、保持长连接,绝大多数图片请求都能在一次调用内返回。

推荐做法

1

把 timeout 设到安全上限

客户端和中间代理的超时都设到 360 秒,4K 或多张参考图设到 600 秒。设置方法和逐层排查见请求超时怎么办。
2

关掉 SDK 的自动重试

超时后的自动重试会再生成一次、再扣一次费。把 OpenAI SDK 的 max_retries 设为 0,由业务代码决定是否重试。
3

在自己的后端记录每个任务

为每次请求生成业务 ID,把 prompt、参数、返回结果或错误写进自己的数据库。前端断线时,后端仍然持有完整记录。

在后端包一层异步队列

前端不能长时间等待时,可以这样拆分:
  1. 前端提交任务,后端写入数据库并返回业务 ID;
  2. 后端 worker 用同步方式调用老张API,把结果写回数据库;
  3. 前端凭业务 ID 轮询自己的后端,或通过 WebSocket 接收结果。
下面是最小示例,用 Python 标准库的线程池代替正式的任务队列,生产环境可换成 Celery、RQ 或云队列:
运行前执行 pip install openai 并设置环境变量 LAOZHANG_API_KEY。save_image 同时处理 Base64 和 URL 两种返回,各模型的返回格式见对应接入文档。 业务 ID 由你自己生成、存在你自己的数据库里,老张API只负责同步生成这一步。

常见问题

超时断开后,图片其实已经生成了,能补救吗?

不能。结果只在那次响应里返回,连接断开就拿不到了,而上游完成生成后仍会扣费。重试前先在调用日志确认上一次请求的状态。

视频生成也是同步的吗?

不是。Wan 2.7、Seedance 等视频模型按异步任务设计:提交后返回任务 ID,再轮询任务状态并下载结果,具体步骤见各视频模型页。

不同图片模型大概要多久?

差异很大,快的几秒,4K、高质量档位或多张参考图可能要几分钟,高峰期更慢。不确定时统一按 360 秒设置,各模型的注意事项见图像生成 API 选型。

相关文档