Pydantic 数据校验
Written: 2026.061. 为什么需要这讲
Pydantic 在本项目中被五处关键位置使用,但主讲义从未系统讲解它是什么、怎么工作:2. Pydantic 是什么
Pydantic 是 Python 最流行的数据校验库。它的核心思想:用 Python 类型注解定义数据结构,运行时自动校验类型。3. BaseModel 核心能力
3.1 基础类型校验
query是str✅tenant_id是int但期望str❌ → 返回 422 错误,附带清晰描述
3.2 Field 约束
3.3 嵌套模型
4. BaseSettings — 环境变量管理
这是 Pydantic 的一个特殊子类,专门用于管理配置:Settings 从进程环境变量和项目根目录 .env 读取;Docker Compose 部署时,Compose 读取 .env.compose 并注入到 API 容器的进程环境变量里。因此不要把 .env.compose 复制成 .env 使用,也不要把 .env 里的 localhost 配置拿去跑 API 容器。
本项目中的 Settings 实例被 @lru_cache 缓存为全局单例:
5. with_structured_output — LLM 输出约束
这是本项目中 Pydantic 最高级的用法:让 LLM 按指定结构返回结果。{"intent": "INVALID_TYPE"},Pydantic 会报错。
6. 在本项目中的使用速查
7. 小结
- BaseModel = 类型注解 + 自动校验,替代手写 if/else 校验
- Field = 为字段附加约束(长度、范围、正则)
- BaseSettings = 自动从环境变量和本机
.env加载配置;Docker Compose 模式由.env.compose注入环境变量 - with_structured_output = 用 Pydantic Schema 约束 LLM 输出格式

