该技能面向 FastAPI 开发,资料声明其提供较完整的 FastAPI 开发能力,用于 Golden Armada AI Agent Fleet Platform。
一、适用场景 当涉及以下工作时可激活该技能:FastAPI 应用开发、异步端点实现、Pydantic 模型定义、依赖注入模式、OpenAPI/Swagger 文档。
二、运行命令 开发模式:uvicorn main:app --reload --host 0.0.0.0 --port 8000 生产模式:uvicorn main:app --host 0.0.0.0 --port 8000 --workers 4 配合 Gunicorn:gunicorn main:app -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000
三、建议的应用结构 app/ 下包含 main.py、config.py、dependencies.py,以及 routers/(agents.py、tasks.py 等)、models/、schemas/、services/ 等目录。
四、资料中的代码示例
- 基础应用:使用 FastAPI 的 lifespan 上下文管理器处理启动与关闭,注册 CORSMiddleware(allow_origins、allow_credentials、allow_methods、allow_headers),通过 include_router 挂载 agents 与 tasks 路由并设置前缀 /api/v1/... 与 tags,并提供 /health 健康检查异步端点,返回服务状态。
- Pydantic Schema:用 Enum 定义 AgentType(claude、gpt、gemini),用 BaseModel 与 Field 定义 AgentBase(name、type、description)、AgentCreate、AgentResponse(id、status、created_at),并通过 model_config = ConfigDict(from_attributes=True) 支持从属性转换。
- 路由示例:APIRouter 下定义 POST / 创建 agent(response_model、status_code=201、Depends 注入 service)、GET / 列表(skip、limit 查询参数)、GET /{agent_id} 按 ID 获取,未找到时抛出 HTTPException 404。
- 依赖注入:使用 functools.lru_cache 缓存 get_settings,用 Annotated 与 Depends 构建 get_llm_service、get_agent_service 的依赖链,将 Settings 与 LLMService 逐层注入 AgentService。
- 后台任务:通过 BackgroundTasks 的 add_task 在响应后异步执行任务,接口返回 accepted 状态与 task_id。
- WebSocket:定义 /ws/{agent_id} 端点,接收文本消息并处理后回发,捕获 WebSocketDisconnect 并打印断开信息。
五、限制与缺失信息 资料未提供安装方式、版本要求、收费或授权信息、性能指标与具体使用步骤说明,相关内容暂未提供。使用时应以实际项目环境和 FastAPI 官方文档为准,代码内容不应改动。