一键导入
swagger-annotation
FastAPI Swagger 中文注解生成工作流。为 Controller 路由和 Pydantic 模型生成符合企业级规范的中文 Swagger 注解。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
FastAPI Swagger 中文注解生成工作流。为 Controller 路由和 Pydantic 模型生成符合企业级规范的中文 Swagger 注解。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
契约治理三件套的「值层」。核对同一个物理契约值(MQ topic/group、OSS bucket、消息字段名/别名、内部 HTTP 路径等)在 .env/.env.example/代码生效点/Java 对端多处是否逐字相等,找出配置漂移与死值,防止消息收不到/文件取不到。本 skill 只比对「同一个值在多处是否一致」,不判断结构/语义是否破坏对端(那是结构层,转 contract-guard),也不改文档。
指导 LLM 如何使用 toLink-Rag 项目的 MQ 消息中台进行消息收发、定义新消息类型以及处理多厂商适配逻辑。
当用户认为当前模块代码实现完毕,且当前分支应为 dev,需要从 dev 基于当前修改创建规范分支、提交并发起合并到 dev 的 GitHub PR 时使用;也用于发布收口,即直接创建 dev -> master 的 release PR,不新建 release 分支。适用于“从 dev 新建分支”“把当前修改提 PR”“实现完成创建 feature/refactor 分支并 PR”“发布新版本”“dev 合并 master”等交付收口场景。本 skill 是交付链终点,并在建分支/提 PR 前执行收口门槛:测试未过、契约文档失同步、acceptance 未提升者拒绝收口。
当用户要求把需求、功能、技术方案、架构改造、故障复盘、项目治理实践或实现过程写成博客/技术文章时必须使用;尤其适用于“写一篇博客”“生成技术博客”“把这个需求写成文章”“根据这个功能写博客”“把项目实现讲清楚”等请求。使用时要基于用户给出的需求和 toLink-Rag 当前仓库的真实代码、文档、契约、配置与测试证据完成分析,默认输出 Markdown 到 `.specs/blog/《博客名称》.md`。文章须采用「少量
把项目里已有的内部组件(如 MQ 中台、解析 pipeline、缓存层、对象存储)抽象成一份「项目自有 skill」,让 AI 每次接入都自动复用该组件的架构边界与约定。读组件真实代码,提炼「架构定位 / 职责边界 / 已落地清单 / 扩展点 / 红线」五要素,按统一原型生成 SKILL.md,登记到 .ai/skills/README.md 注册表并跑校验。
当用户要提 issue、登记 bug、记录新需求时使用;自动识别所属项目,生成结构化 issue 内容,先在 Linear 建主记录、再在 GitHub 建镜像,并双向回链。用户说"提个 issue""记一下这个 bug""把这个需求登记一下""同步到 Linear 和 GitHub""别再依赖 Linear 自动同步"时都应触发,即使没有明确说出"Linear"或"GitHub"。
| name | swagger-annotation |
| description | FastAPI Swagger 中文注解生成工作流。为 Controller 路由和 Pydantic 模型生成符合企业级规范的中文 Swagger 注解。 |
| when_to_use | 当用户要求为 FastAPI 路由、Pydantic 模型添加 Swagger/OpenAPI 注解、补充 API 文档说明或优化 /docs 页面显示时激活。触发示例:'给这个接口加swagger注解'、'补充API文档'、'添加openapi描述' |
精通 FastAPI + Pydantic v2 的 OpenAPI Schema 生成机制,能够为任意 Controller(路由)和实体模型(Pydantic BaseModel)产出符合企业级规范的中文 Swagger 注解,确保生成的 /docs 页面对前端和 Java 协作方具有自解释性。
| 原则 | 说明 |
|---|---|
| 中文文档 | 所有 title、summary、description 必须为中文 |
| API-First | 良好的 Swagger 注解能显著降低前后端联调成本 |
| 自解释性 | 确保 /docs 页面对前端和 Java 协作方具有自解释性 |
每次面对需要为一组接口添加 Swagger 注解的请求时:
main.py 的 openapi_tags 中注册在 FastAPI() 构造器中必须配置:
app = FastAPI(
title="项目名称",
version="1.0.0",
description="""
## 系统简介
- 🤖 **能力一**:简要说明
- 📐 **能力二**:简要说明
""",
openapi_tags=[
{"name": "分组中文名", "description": "该分组的职责说明"},
],
)
每个 APIRouter 的 tags 必须使用与 openapi_tags 中 name 一致的中文标签:
router = APIRouter(
prefix="/api/v1/xxx",
tags=["中文分组名称"],
)
每个 @router.get / .post / .put / .delete 必须携带以下参数:
| 参数 | 说明 |
|---|---|
summary | 一句话描述接口功能(显示在 Swagger 列表中每个接口标题处) |
description | 详细说明接口的业务语义、适用场景或注意事项 |
response_model | 指定返回的 Pydantic 数据模型(非流式接口必填) |
@router.post(
"/generate",
response_model=APIResponse,
summary="文本生成 (非流式)",
description="调用大模型生成文本回应。支持用户自定义配置路由、参数覆盖以及系统级自动降级兜底。",
)
async def generate_text(...):
...
| 参数类型 | 要求 |
|---|---|
Header 参数 | 必须添加 description 说明该 Header 的来源与含义 |
Query 参数 | 必须添加 description 说明该参数的格式与用途 |
x_user_id: str = Header(..., alias="X-User-Id", description="调用方用户唯一标识")
start_date: Optional[str] = Query(None, description="起始日期,格式 YYYY-MM-DD")
每个字段必须使用 Field() 并配置:
| 配置项 | 说明 |
|---|---|
title | 字段的中文短标题(Swagger Schema 中显示) |
description | 字段的详细用途说明 |
模型类必须配置 model_config:
class GenerateRequest(BaseModel):
"""生成文本请求"""
prompt: str = Field(..., title="提示词", description="发送给大模型的输入文本内容")
temperature: float = Field(0.7, ge=0, le=2, title="采样温度", description="控制输出的随机性")
model_config = {
"title": "文本生成请求体"
}
与请求体同理,每个字段 Field() 必须有 title + description。
可额外配置 json_schema_extra.example 提供示例值:
class UsageInfo(BaseModel):
"""Token 使用量信息"""
prompt_tokens: int = Field(0, title="提示词Token数", description="输入内容的Token消耗量")
total_tokens: int = Field(0, title="总Token数", description="总计Token消耗量")
model_config = {
"title": "Token使用量统计",
"json_schema_extra": {
"example": {
"prompt_tokens": 15,
"total_tokens": 115,
}
}
}
| 禁止项 | 说明 |
|---|---|
| 英文 title/summary/description | 本项目约定中文文档 |
| 遗漏 model_config.title | 否则 Swagger Schemas 面板会显示类名而非业务语义 |
| 路由端点不带 summary | 否则在 Swagger 列表中该接口没有可读标题 |
| Field() 只写 description | title 和 description 两者都必须提供 |
# 启动服务后访问 Swagger UI 验证
uvicorn src.main:app --reload
# 浏览器打开 http://localhost:8000/docs
每次添加 Swagger 注解时,按以下结构应答:
### 📋 注解覆盖清单
- **目标文件**:<文件路径>
- **路由端点**:列出所有待标注的 endpoint
- **数据模型**:列出所有待标注的 Pydantic 类
- **缺失项分析**:哪些已有、哪些缺失
### ✏️ 注解代码
```python
# 输出完整的 Swagger 注解修改代码
# 启动服务后访问 Swagger UI 验证
uvicorn src.main:app --reload
# 浏览器打开 http://localhost:8000/docs