症状
在自己电脑上开发、调试出图程序时,电脑开着 VPN 或代理软件(很多开发者是为了让 AI 编程工具正常联网),出现这些情况:- 出图请求经常报连接中断,例如
socket hang up、ECONNRESET、RemoteDisconnected、Connection aborted - 程序里的超时已经设到 600 秒甚至 900 秒,请求却在 90~180 秒左右就断了
- 经常好几张一起失败,像是被一刀切掉
- 出图越慢的模型越容易中(如
gpt-image-2-vip,单张通常要 60~120 秒) - 到 调用日志 里看,这些请求大多有成功扣费的记录
简短回答
这不是并发限制,也不是 API易 的超时,而是你电脑上的代理把「一段时间没有数据」的连接掐断了。出图期间,连接上本来就没有任何数据在传,图越慢出来,越容易被代理当成空闲连接回收。把
api.apiyi.com 设为直连(不走代理)就能解决,API易 在国内可以直接访问。为什么会这样
一次非流式的出图请求分三段:- 上传:把提示词和参考图发出去,几秒到几十秒
- 等待:服务端出图,通常 60~200 秒。这期间连接上没有任何数据
- 下载:图出好后一次性返回
connIdle,默认 300 秒,但节点服务端可以改得更短,你在本机看不到、也改不了。我们处理过的案例里,这个值约为 90 秒。
所以:
- 程序里的 timeout 管不到它。timeout 是你的程序愿意等多久,代理在中间先断了,程序只能收到「连接中断」
- 为什么一批一起断:代理通常是定时巡检,每次把所有超过空闲时长的连接一起断开。同时在等图的几个请求会在同一秒失败
- 为什么聊天、写代码不受影响:流式对话一直有数据在传,连接从来不会空闲;出图是几分钟里一个字节都没有
怎么确认是这个问题
1
看断开的时长和节奏
把失败请求从发出到报错的耗时打出来。如果集中在某个固定值附近(比如 90 秒、180 秒),且常有几个请求在同一秒一起失败,基本就是代理空闲超时。
2
对照调用日志
在 调用日志 里找对应时间段:程序报了断开,日志里却有成功扣费的记录,说明 API易 这边已经出图完成,是回程的连接被断了。
3
设直连跑一小批对比
按下文把
api.apiyi.com 设为直连,同样的参数跑 10~20 张。断开消失,就可以确认是代理的问题。解决方法
- 代理软件设直连(推荐)
- 程序绕开代理
- 一定要走代理
在代理软件里给 API易 加一条直连规则,其他流量照常走代理,AI 编程工具不受影响。Clash / Clash Verge / mihomo 的配置文件里,在 v2rayN 等客户端:在「路由设置」里把
rules 最前面加:apiyi.com 加进直连(direct)列表。开着 TUN 模式 / 全局模式时,代理会接管电脑上所有程序的流量,代码里怎么设置都绕不开,只能用这种规则直连。
部署到服务器后还会遇到吗?
一般不会。 服务器上通常不装代理,直连 API易,就不存在「代理掐断空闲连接」这一层。这也是生产环境推荐的部署方式:国内云服务器直接访问api.apiyi.com 即可。
不过,服务器和 API易 之间如果还有别的中间层,它们同样有空闲超时,部署时顺手检查一下:
单张出图通常在 60~200 秒内完成,低于云厂商 NAT 的默认值。只有在你自己加了反向代理,或者服务器也走代理时,才需要特别处理。
常见疑问
开启 TCP keepalive 能解决吗?
开启 TCP keepalive 能解决吗?
对云厂商的 NAT 网关有用:keepalive 探测包能让 NAT 认为连接还活着。对代理软件基本无效:代理按「有没有实际数据」判断空闲,keepalive 探测包不算数据。本地开发遇到的这种断开,还是要靠直连解决。
为什么网页版控制台和 AI 编程工具都正常?
为什么网页版控制台和 AI 编程工具都正常?
它们的请求要么很快就返回,要么是流式输出、一直有数据在传,连接从来不会空闲 90 秒以上。只有出图这种「几分钟没有数据、最后一次性返回」的请求才会撞上。
和「脚本报空 502」是同一个问题吗?
和「脚本报空 502」是同一个问题吗?
都是本机代理造成的,但现象不同。空 502 那篇 是代理自己生成了一个没有正文的 502;本篇是连接在等图期间被直接掐断,程序收到的是连接中断。两种情况的解决方法相同:让 API易 的请求不走代理。
被断开的请求扣的费能退吗?
被断开的请求扣的费能退吗?
这类断开发生在你和 API易 之间的代理上,API易 侧出图已经完成并计费。如果金额较大,请把时间段(注明时区,如 16:30~17:00 (UTC+8))和用户名发给客服,我们会帮你核对调用日志。
有没有不需要长时间等待的调用方式?
有没有不需要长时间等待的调用方式?
目前出图接口是同步返回的,没有任务 ID 查询,详见 图片生成有异步接口吗?。设直连后,长时间等待本身不是问题。
相关文档
脚本报 502 但调用日志里查不到?
本机代理自造的空 502,脚本绕开系统代理即可
使用 API 接口需要代理网络吗?
国内可直连,不需要代理或 VPN
如何避免接口超时?
timeout 设置与逐层排查
图片生成有异步接口吗?
同步返回的原因与客户侧异步包装