SuperAPI AI 工具集

fastapi-ai-patterns

编程与开发

查看项目

更新于 10-15 20:33

技能介绍

用途:为构建、评审或调试 FastAPI 服务提供生产级指导,重点是 AI/ML/LLM 服务与普通 CRUD API 的差异。这是知识型技能,讲决策与陷阱,并按主题引导到对应参考资料,不生成项目骨架。

主要能力与核心模型:把端点签名视为类型化契约,参数注解声明请求内容,返回注解或 response_model 声明响应内容;注解是唯一事实来源。FastAPI 是 Starlette + Pydantic 的薄封装,调试时需判断行为归属于哪一层。最关键决策是 def 与 async def:异步 I/O 用 async def + await;仅阻塞库用普通 def 交给线程池;重 CPU(模型推理、解析、加密)用普通 def 或卸载到线程/进程池/队列,绝不在事件循环跑多毫秒 CPU。

主要陷阱:async def 内做阻塞调用会冻结整个进程的循环,导致所有端点 p99 同时暴涨;ML 模型应在 lifespan 处理器只加载一次,不能每请求或导入时加载;每个响应都需 response_model 防止 ORM 字段泄漏;对象级授权必须在查询层过滤(WHERE owner_id = current_user.id);AI 响应回显 model_version 与嵌入模型版本;RAG 的访问控制放在检索而非提示词;httpx.AsyncClient、数据库引擎、Redis、模型句柄等单例放 lifespan 并以依赖注入;流式生成器用 try/finally 包住;/health 保持极轻,/ready 单独做依赖就绪;仅对幂等操作做带退避+抖动且总时限小于调用方超时的重试;JWT 固定算法校验,口令用 bcrypt/argon2。

使用方式:仅加载与当前决策匹配的一份参考资料,不要全部预载。可选参考资料包括 api-design、architecture-di、database、security、testing、async-and-external、ai-ml-serving、deployment-observability。语法不确定时应查阅 FastAPI、Pydantic v2、Starlette、SQLModel、httpx 官方文档。

不适用:需要生成完整项目骨架、准备面试题、纯前端/Next.js 或非 FastAPI 的 Python Web 栈,应使用其他技能。具体命令、安装步骤、收费与平台信息暂未提供。