跳到正文
原文
GitHub 安全公告·本站收录 · 原文发表

Pydantic AI 并发限流模型在流式请求提前结束时会永久占用槽位

Pydantic AI: Concurrency-limited models can keep their slot when a streamed request ends early

AI 导读

Pydantic AI 的 ConcurrencyLimitedModel 及 limit_model_concurrency 存在并发槽位泄漏问题:流式请求可能在与获取槽位不同的任务上释放槽位,被 anyio.CapacityLimiter 拒绝,导致槽位在请求结束后仍被占用。流提前结束或按默认 debounce_by=0.1 完整消费 stream_text() 都可能触发。若对外暴露受影响的流式接口并在请求间共享长期存活的限流器,客户端反复发起流并断开即可耗尽并发容量,使后续请求无法进行;清理过程还可能抛出 RuntimeError。Agent 级 max_concurrency 和非流式模型请求不受影响。缓解方式是升级到修复版本,或改用 Agent 级 max_concurrency、避免让流式运行经过并发限流模型。

阅读原文github.com