Pydantic 多模型架构
用统一的多模型模式构建清晰、可复用的 Pydantic 数据契约。
该技能仅提供Pydantic模型代码模板,没有外部调用、凭据处理、数据上传或破坏性操作,且声明MIT许可证;因此基础风险较低。未说明用户确认、敏感字段处理、数据流、回滚或依赖安全,扣7分。
主文档、模板和参考文件目标基本一致,覆盖多模型结构和部分验证规则。模板使用class Config,而参考文件要求Pydantic v2的model_config,且未提供安装说明、专门测试、边界输入或失败反馈,扣13分;静态审查不超过10分。
目标场景、模型变体和基本集成位置较明确。未明确不适用范围、触发条件、项目结构差异、版本兼容边界,也没有中文使用说明;但核心功能不依赖海外网络服务,扣7分。
具备名称、描述、MIT许可证、作者、版本、快速开始、模板和参考文件,信息结构较清晰。缺少变更日志、明确维护责任和更新路径,并存在Pydantic v2文档与示例风格不一致,扣6分。
模板可直接作为API和数据库模型的起点,能覆盖Base、Create、Update、Response和InDB核心任务。仍需大量替换占位符和按项目调整字段、别名、数据库约束及序列化方式,且没有该技能专属的可验证输出,扣9分;静态审查上限为7分。
技能文件、模板和能力清单均可审计,仓库还提供通用CI和测试基础设施。没有针对该技能的提交测试、真实运行结果或独立复现证据,因此扣6分;静态审查上限为5分。
- 示例中的class Config与参考文件要求的Pydantic v2 model_config不一致,采用前应确认目标Pydantic版本并修正配置写法。
- InDB模型将doc_type和Cosmos DB模式作为默认假设,其他数据库或领域模型可能需要删除或重构。
- 技能未提供model_dump、model_validate、schema生成和field/model validator的完整示例,不能将模板视为完整生产方案。
它能做什么 & 适用场景
这是 Microsoft Agent Skills 仓库中的一个 Python 技能,专门指导使用 Pydantic v2 定义 API 请求、响应和数据库模型。它采用 Base、Create、Update、Response 与 InDB 五类模型的多模型模式。技能还涵盖 snake_case 与 camelCase 别名、PATCH 更新字段的可选性,以及用于 Cosmos DB 查询的 doc_type 字段。适合需要稳定 API 契约和数据校验结构的 Python 应用,但它不是完整的 FastAPI 或数据库实现方案。
指导代理从 assets/template.py 复制模型模板,并将资源名称替换为 PascalCase 和 snake_case;定义共享字段、创建请求、更新请求、API 响应和数据库文档模型;为字段设置 camelCase 别名并启用 populate_by_name;将更新字段设为可选;为 InDB 模型添加 doc_type;建议把模型放入 src/backend/app/models/、从 __init__.py 导出,并添加对应的 TypeScript 类型。
- Python 后端开发者为新资源设计创建、更新和响应 API 模型时。
- FastAPI 项目需要区分必填创建字段与全部可选的 PATCH 字段时。
- 团队希望同时支持 Python snake_case 和前端 camelCase 字段名时。
- 使用 Cosmos DB 文档并需要通过 doc_type 区分文档类型时。
- 希望统一多个资源模型结构、减少 API 契约重复定义时。
优缺点一览
- 明确规定五类模型的职责,适合建立一致的 API 契约。
- 覆盖 camelCase 别名、PATCH 可选字段和数据库文档类型等常见需求。
- 提供可复制的模板入口和具体集成目录建议。
- README 列出该技能有 12 个测试场景。
- 内容主要是模式和示例,未提供完整可运行的项目实现。
- 未说明具体 Pydantic 版本范围,只明确写了 Pydantic v2。
- 未提供认证、错误处理、迁移或数据库访问代码。
- TypeScript 类型只被列为集成步骤,未提供生成或定义示例。
如何安装
在支持 Agent Skills 的客户端中运行 npx skills add microsoft/skills,在安装向导中选择此技能。README 指出技能会安装到所选代理的目录,例如 GitHub Copilot 的 .github/skills/。源材料未说明单独安装此技能的专用命令或版本锁定方式。
如何使用
在项目中触发与 Pydantic v2 模型、API 请求/响应模式或数据库模型相关的任务,例如:请为 Project 资源创建 Base、Create、Update、Response 和 InDB Pydantic 模型,并支持 camelCase 别名。 使用时应提供资源字段和项目目录结构;技能建议将模型放在 src/backend/app/models/,并从 src/backend/app/models/__init__.py 导出。