最近看到不少人在吹FastAPI依赖注入(DI)在AI服务中的高级用法,我实际在几个生产项目里踩过坑后,觉得有必要泼点冷水。技术解读上,FastAPI的DI确实能通过Depends()实现模块解耦,比如把模型加载、预处理、后处理拆成独立依赖,但这只是表面功夫。核心突破其实是利用AsyncGenerator管理模型生命周期,避免每次请求都重新初始化——这点对GPU显存敏感场景很关键。

个人经验是,单纯依赖DI容易陷入“注入地狱”:当你有10+个依赖层层嵌套时,调试请求链路会变得痛苦。我更喜欢用分层架构(Controller-Service-Repository)来配合DI,让每个层只负责一件事。比如在Service层里显式调用模型推理逻辑,而不是通过DI把模型实例塞进路由函数——这样单元测试时,mock依赖反而更可控。

讨论引导:大家在实际项目中,有没有遇到过DI导致循环依赖或性能瓶颈?另外,对于流式推理(如SSE响应),你们是继续用DI还是直接绕过?

行业视野上,我觉得FastAPI DI的过度宣传正在让新工程师忽视架构设计。AI服务真正的趋势是组合微服务+事件驱动,而不是在单体应用里堆依赖。分层架构结合DI,才能让扩展性跟上模型迭代速度。