Skip to main content
排障时先定位问题在哪一层:鉴权、参数、模型、网络、余额、限流、上游服务或图片存储。

先收集这些信息

不要先猜原因。每个问题先收集一份固定排障包:
request_id 可以从响应头 X-Oneapi-Request-Id、错误信息或控制台用量日志里找到。 如果控制台日志里有 upstream_request_id,也一起保留;它用于定位上游侧的问题。 任务和视频接口的失败不一定是 OpenAI 风格的 { "error": ... },也可能直接返回顶层 codemessagedata 按场景再补充这些字段:

快速定位表

决策流程

先分清错误结构:
error.code 可能为空、缺失或由上游透传,不要只依赖单个字段做排障和重试。
图片问题再加一层判断:

常见判断

常见场景

文本接口无输出或流式中断

先确认请求是否真正成功:
  1. 看 HTTP 状态码和 request_id
  2. 如果是流式,记录最后一个收到的事件片段
  3. 区分空 delta、保活事件和真正的模型内容
  4. 看用量日志里是否有消费记录和 upstream_request_id
  5. 如果前端无显示,确认前端没有把有效内容过滤掉
如果服务端已经有完整响应,但前端没展示,这是客户端解析或渲染问题,不应重复请求。

图片生成成功但用户看不到

先确认 Tapapi 是否已经返回图片:
  1. 看 HTTP 是否 200
  2. data.length
  3. 看返回的是 url 还是 b64_json
  4. 看你的后端是否已经转存成功
  5. 看前端是否读取了正确字段
如果模型已返回有效图片,但你的存储失败,这是保存链路问题,不应重复生成。

视频任务一直没有结果

先不要重复提交同一个生成请求,先查任务:
  1. 看提交接口是否返回 task_id
  2. 查询任务状态、进度和失败原因
  3. 如果状态还在排队或生成中,继续按轮询策略等待
  4. 如果状态失败,记录顶层 code/message/data
  5. 如果状态成功但 URL 打不开,先检查是否已经转存和 URL 是否过期
视频结果链接更适合尽快转存到自有存储,避免后续因为上游链接过期而误判为生成失败。

批量任务突然大量失败

先停放量,然后看:
  • 是否连续 429
  • 是否同一模型大量 5xx 或 timeout
  • 是否参数变化导致 400 / 422 增多
  • 是否余额不足或触发预扣失败
  • 是否对象存储上传失败

觉得扣费不对

按这个顺序对账:
  1. 找到 request_id
  2. 查控制台用量日志的最终 quota
  3. 图片业务再对比你自己业务表里的 requested_nreturned_countsaved_count
  4. 区分模型生成成功和业务转存失败
  5. 视频任务再对比任务 statusquota 和最终结果
  6. 带截图和脱敏请求摘要联系支持
不要把 API Key、完整用户隐私数据、未脱敏图片链接直接贴到公开渠道。支持排障只需要脱敏后的请求体、模型名、时间和错误信息。