Files
myWiki/concepts/pydantic-core.md

1.6 KiB
Raw Blame History

title, created, updated, type, tags, sources
title created updated type tags sources
pydantic-core 2026-06-10 2026-06-10 concept
pydantic
rust
validation
performance
raw/articles/pydantic-three-piece-suite-2026.md

pydantic-core

pydantic 生态的物理引擎——Rust 编写的校验核心,通过 PyO3 绑定到 Python完全脱离 GIL。

校验流程

当调用 model_validate(data) 时:

  1. Python 层将模型定义转为 CoreSchema JSON(一份"校验指令"
  2. CoreSchema JSON 通过 PyO3 传给 Rust 层
  3. Rust 层按 schema 逐字段校验、类型转换、处理嵌套
  4. 返回校验通过的类型化 Python 对象,或 ValidationError

关键:步骤 2-4 全部在 Rust 侧完成,不走 GIL。

性能

场景 纯 Python pydantic-core 倍数
简单模型 1000 次 ~12ms ~1.5ms 8×
嵌套 3 层 10000 次 ~450ms ~35ms 13×
JSON 大文件反序列化 ~800ms ~48ms 17×
内存峰值 基线 -35%

对 AI 开发者的关键意义

  • asyncio.gather() 并发 20 个 LLM API 调用时,每个回复的 JSON 解析在不同线程并行跑 Rust 校验,互不阻塞
  • 深层嵌套模型收益最大——每层嵌套原来都是 Python 层的递归开销

三配置升级

model_config = {
    "strict": True,    # 类型不匹配直接炸,不静默转换
    "extra": "forbid", # 多字段立刻报错
    "frozen": True,    # 创建后不可修改
}

参考