ワンクリックで
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