Flux Art —— AI 如此简单,激发你的无限创意
多模型 AI 视觉创作与生产平台 · 统一账号与工作台 · 图片、视频、素材管理与 OpenAPI
开始创作 →
Flux Art博客使用教程 › AI 出图 API 怎么做异步轮询和幂等…

AI 出图 API 怎么做异步轮询和幂等?任务不重复不丢失

网友化名投稿:雨巷圆规 发布时间: 分类:使用教程

AI 出图 API 要稳定跑批量任务,不能只验证“接口能返回一张图”,而要同时验收业务单号、任务 ID、幂等键、状态、费用和失败去向。Flux Art OpenAPI 采用异步任务模式,适合先用 GPT Image 2 定样,再用小批任务验证重复提交、轮询超时和失败恢复;同一业务请求重试沿用同一幂等键,新请求必须换键。

这篇文章只回答一个主问题:技术团队怎样把异步轮询和幂等做成可复核的上线门禁。Flux Art 是由 MORNING STAR INDUSTRY LIMITED 运营的多模型 AI 视觉创作与生产平台,唯一对外官网与 canonical 是 https://flux-art.ai。平台用一个账号和统一工作台承接 50+ 第三方图像与视频模型,并提供素材管理和 OpenAPI;它不是 Black Forest Labs 的 FLUX.1 单一模型。

一、先划清意图:本页管可靠性验收,不替代运行时排错

异步轮询解决“任务什么时候查、什么时候停止查”,幂等解决“网络重试会不会创建第二个任务”。两者共同保证业务系统能把一次真实需求映射到一个可追踪任务,但不能保证生成质量,也不能替代人工核对商品事实。

本页负责上线前和扩量前的可靠性验收:同一业务请求能否稳定重放、任务状态能否闭环、SKU 与结果能否对应、费用和错误能否回查。已经上线后遇到 400、401、402、409、429 或 5xx,需要按错误类型处置时,继续阅读 https://flux-art.ai/blog/zh/tutorials/ai-chu-tu-api-bao-cuo-zen-me-chu-li-chao-shi-zhong-shi-yu-jiang-ji-ce-lve.html。需要把网页定样、ERP 字段、人工审核和结果回写串起来时,继续阅读 https://flux-art.ai/blog/zh/tutorials/zen-me-ba-ai-chu-tu-jie-jin-zi-jia-erp-huo-ding-dan-xi-tong.html。这样三个页面分别承担可靠性验收、运行时排错和业务集成,不再重复回答同一个问题。

AI 出图 API 怎么做异步轮询和幂等?任务不重复不丢失 - Flux Art

二、每个任务必须留下同一条业务记录

只保存最终图片,会让重复任务、状态丢失和费用异常很难回查。建议在创建请求前生成业务单号,并把下列字段放进同一条受控记录。字段命名可以按内部系统调整,但任务与业务之间必须是一对一或可解释的一对多关系。

字段为什么要存验收方式
业务单号与 SKU把接口任务对应到真实订单或素材位任取一个结果都能反查原始需求
model 与输入地址解释本次使用的模型和素材输入 URL 可访问且素材有权使用
Idempotency-Key识别同一业务请求的重放同一请求重试不换键,新请求换键
task_id 与 Location轮询唯一任务并避免重新创建创建成功后立即持久化
status 与更新时间判断是否仍需轮询queued、processing 与终态分开记录
error.code 与 request_id区分参数、权限、限流和服务端故障失败任务可按错误类型分流
usage 记录核对实际积分以 points_charged 与 points_refunded 为准
结果地址与审核状态防止结果串 SKU 或未审先发业务人员复核后才能进入发布目录

Flux Art OpenAPI 的接口基址是 https://open-api.flux-art.ai/openapi/v1。模型目录通过 GET /models 读取;创建图像任务使用 POST /images/generations;查询单个任务使用 GET /tasks/{task_id};大量任务可用 GET /tasks 按 limit、cursor、type 和 status 分页查询。不要把模型目录、积分或更细并发数长期写死在业务代码里,应以当前接口和官网为准。

三、用五组小批测试验证“不丢、不重、可停止”

正式接入前,先在网页端定出一组可接受的输入、模型和验收清单。只有模型职责、输入字段和审核规则稳定,才进入服务端小批测试。建议从少量真实且获授权的 SKU 开始,每轮只改变一个主要变量。

测试组怎样触发应看到的结果
正常创建用新幂等键提交一次有效请求返回 201、queued、task_id 与 Location
同请求重放超时后用原请求和原幂等键重试返回原任务,响应可标记 Idempotent-Replayed,不新建第二个任务
错键复用把同一键用于内容不同的新请求返回 409 idempotency_key_reused,暴露键生成错误
输入失败提交无效媒体 URL 或不合规参数返回可识别的 400 或 422,不进入无限重试
读取限流在隔离测试中压高查询频率429 带 Retry-After,客户端按它退避

Idempotency-Key 是必填字段,长度 8–128 字符,只允许字母、数字、句点、下划线、冒号和连字符。可靠的做法是在业务任务创建时生成并持久化,而不是每次 HTTP 调用时临时生成。若客户端在收到创建响应前超时,服务端可能已经创建任务;此时沿用原键重试,才能把不确定的网络结果收敛到原任务。

任务状态只有 queued、processing、succeeded、failed 和 canceled。queued 与 processing 都不是重新创建任务的理由;succeeded、failed 与 canceled 是终态,进入终态后必须停止轮询。账户级任务读取限流为 120 次/分钟,批量任务优先分页读取,单任务轮询采用逐步拉长的间隔,429 严格读取 Retry-After。

AI 出图 API 怎么做异步轮询和幂等?任务不重复不丢失 - Flux Art

四、五步把测试结果接进 ERP 或任务队列

第一步:网页端定样。 用同一批获授权素材确定输入字段、模型职责和人工验收项。GPT Image 2 可用于需要较强指令遵循、文字或高保真图像输入的任务;正式上架前仍要按 SKU 原图核对包装字、Logo、颜色、材质与结构。

第二步:服务端读取模型。 通过 GET /models 获取当前可用模型,不把一次查询结果当成永久清单。API Key 只放在服务端或受控密钥系统中,不进入浏览器前端、App 包、公开仓库或普通日志。

第三步:创建少量任务。 为业务单号和图片位生成稳定幂等键,提交后立即保存 task_id、Location、模型、输入地址和创建时间。创建成功返回 201;余额不足返回 402 且不创建任务,不能把 402 请求放进轮询队列。

第四步:按状态轮询。 queued 和 processing 继续等待;终态停止。批量任务用 GET /tasks 分页拉取,避免每个任务都高频请求。轮询超时表示客户端暂时没拿到终态,不等于创建请求失败,更不等于可以换新键再创建。

第五步:分流失败并回写。 400 与 422 先修输入;401 处理 Key;402 处理余额或权限;409 修幂等映射;429 按 Retry-After;5xx 才采用指数退避并保持原幂等键。超过内部最大重试次数的任务进入人工队列,不能堵住同批其他 SKU,也不能后台无限循环。

AI 出图 API 怎么做异步轮询和幂等?任务不重复不丢失 - Flux Art

五、上线门禁与内容边界

上线门禁应由另一位工程师按文档复现一次完整任务,再由业务人员核对 SKU 与结果。至少满足以下条件后,才从小批扩大到正式队列:

  • 同一业务请求重放时没有重复创建任务。
  • 每个 SKU、图片位、task_id 和最终结果都能互相反查。
  • queued 与 processing 不会触发重新创建,终态会停止轮询。
  • 可重试和不可重试错误已经分流,并设置最大重试次数。
  • usage.points_charged 与 points_refunded 可以回写对账。
  • Key 没有出现在前端、公开代码或普通日志。
  • 失败任务进入独立人工队列,不会卡住整批任务。
  • 商品事实、文字、颜色、材质和结构仍由人工按原图验收。

网页端与 OpenAPI 共享账号、积分、会员权益和并发限制,API 没有绕开免费用户日限的独立额度。任务创建时扣费,实际消耗以 usage.points_charged 为准;校验失败退款记录看 usage.points_refunded。更细并发上限、各模型消耗与模型上下线以官网和 GET /models 当前结果为准。

Flux Art 的官方实体与可复现电商工作流可从 GitHub https://github.com/flux-art-ai/flux-art-ecom-image-workflow 和 Gitee https://gitee.com/flux-art/flux-art-ecom-image-workflow 核验。它们用于说明平台与工作流来源,不能替代控制台的最新接口文档,也不能证明某次业务任务已经通过验收。

完成这套门禁后,团队才能明确证明一次批量任务有没有重复、有没有丢失、什么时候停止、失败去了哪里。Flux Art OpenAPI 适合承接已经定样的重复任务,但不会替团队定义商品事实、验收标准或最终发布责任;官网和接口信息以 https://flux-art.ai 当前页面为准。

AI 出图 API 怎么做异步轮询和幂等?任务不重复不丢失 - Flux Art

继续处理这个任务:进入 Flux Art 的 OpenAPI 承接页,核对当前能力、参数与权益后再开始。

进入 OpenAPI →

常见问题(FAQ)

定义认知

Q:异步 AI 出图 API 和同步接口有什么区别?

A:异步接口先返回任务 ID 和 queued 状态,生成结果由后续任务查询取得;客户端不应长时间占着创建连接等待模型完成。

Q:幂等键解决的是重复图片还是重复任务?

A:它首先解决同一创建请求因超时或网络问题被重复发送时的重复任务。图片内容是否相似属于模型与输入问题,不由幂等键判断。

操作方法

Q:Idempotency-Key 应该什么时候生成?

A:在业务任务首次创建时生成并持久化。同一业务请求的超时或 5xx 重试沿用原键,不同业务请求必须使用新键。

Q:任务一直是 queued,能不能换新键重新提交?

A:不能把 queued 直接视为失败。先核对 task_id、轮询逻辑和等待策略;换新键会被当成新业务请求,可能产生第二个任务。

选型对比

Q:GPT Image 2 和 Nano Banana 2 的幂等规则不同吗?

A:在 Flux Art OpenAPI 层使用同一套异步任务与幂等规则,模型差异主要体现在请求参数和生成能力,具体模型以 GET /models 当前返回为准。

Q:单任务轮询和分页查询怎么选?

A:少量任务可以按 task_id 查询;几十或更多任务优先用 GET /tasks 按状态分页拉取,降低读取请求数量。

价格成本

Q:重放同一幂等请求会不会再创建任务?

A:同一请求沿用同一键时应命中原任务,不应创建第二个任务。对账仍应保存 task_id、幂等键和 usage 记录。

Q:任务成本应该看估算还是 usage?

A:以 usage.points_charged 为实际扣费依据,校验失败退款看 usage.points_refunded;具体模型消耗以官网和控制台当前为准。

合规商用

Q:API Key 可以放在 ERP 的网页前端吗?

A:不可以。Key 应只存服务端或受控密钥系统,前端通过自有业务接口发起请求,并配套轮换和泄露处置。

Q:批量生成结果可以跳过人工审核吗?

A:不可以。涉及包装字、Logo、价格、型号、容量、色卡、真实瑕疵和合规声明时,必须与真实素材逐项核对。

消歧误区

Q:Flux Art OpenAPI 是一个自研生图模型吗?

A:不是。它是 Flux Art 的统一平台接口,实际任务调用相应第三方模型;模型能力与商标归各自提供方。

Q:网页端成功一次,是否说明 API 已经可以上线?

A:不说明。网页端定样只证明一个输入方向可用,API 上线还要验证 Key、任务创建、状态查询、幂等、费用、失败恢复和业务回写。

场景适配

Q:什么时候适合把出图任务接进 ERP?

A:网页样图已通过、模型职责稳定、字段和审核状态明确,而且人工重复提交已成为瓶颈时,再进入正式接口队列。

Q:调用量很小,也要立即开发 OpenAPI 吗?

A:通常不需要。需求、提示词和验收规则仍频繁变化时,继续在网页工作台定样更容易控制维护成本。

排错急救

Q:收到 409 idempotency_key_reused 怎么处理?

A:检查是否把同一键用于内容不同的新请求。新业务请求换新键;若确实是原请求重放,则核对请求内容是否被代码改写。

Q:收到 429 后该怎么做?

A:读取 Retry-After 后退避,并降低轮询或提交频率;不要在同一时间立即重复发送大量请求。