一个AI API调用要等1-3秒,100个请求串行处理就是100-300秒。但用异步并发,全部跑完只要几秒。这不是理论,是Python里几行代码就能实现的差距。
核心区别在哪?串行代码用for循环逐个await,每个请求阻塞2秒,总时间=请求数×2秒。并发代码用asyncio.gather把任务打包,100个请求同时发出去,总时间≈2秒。
![]()
实际写个异步客户端也不复杂。用httpx.AsyncClient做HTTP层,配合Python的异步上下文管理器(async with),自动处理连接池和超时。关键配置:120秒超时、Bearer鉴权头、支持流式输出。
![]()
批量处理需要限流。直接用gather发1000个请求会打爆API限频,加一层asyncio.Semaphore控制并发数——比如同时跑10个,其余排队。这样既榨干带宽,又不触发429错误。
流式响应是另一个场景。普通chat方法等完整响应返回,chat_stream用response.aiter_lines()实时读SSE数据,首字节延迟从秒级降到毫秒级,适合聊天UI。
![]()
代码结构建议:客户端封装HTTP细节,业务层用信号量控并发,批量任务包装成BatchItem/BatchResult数据类,失败自动重试、成功原样返回。这套组合在实测中把吞吐量提了50-100倍,CPU几乎不动,瓶颈全在网络I/O。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.