【Pydantic】Pydantic 是什么?

Pydantic 是一个帮你验证和处理数据的 Python 库。


先说不用的痛苦

假设你写了一个函数,需要接收用户信息:

python 复制代码
def create_user(name, age, email):
    # 你要自己检查:
    if not isinstance(name, str):
        raise TypeError("name 必须是字符串")
    if not isinstance(age, int) or age < 0:
        raise TypeError("age 必须是大于0的整数")
    if "@" not in email:
        raise ValueError("email 格式不对")
    # 然后才能用...

每个函数都要写一堆检查,烦不烦?


用 Pydantic 之后

python 复制代码
from pydantic import BaseModel, EmailStr

class User(BaseModel):
    name: str
    age: int
    email: EmailStr

# 使用
user = User(name="张三", age=25, email="zhangsan@example.com")
# 自动验证,不对就报错

发生了什么?

  • 你只需要声明类型
  • Pydantic 自动帮你检查类型、格式
  • 还能自动转换类型(比如字符串 "25" 自动转成整数 25)

在 LangGraph 里怎么用?

你可能注意到有些代码里用了 TypedDictdataclass

python 复制代码
class Context(TypedDict):
    my_configurable_param: str

@dataclass
class State:
    changeme: str = "example"

实际上 LangGraph 也支持 Pydantic,而且用起来更简单:

python 复制代码
from pydantic import BaseModel

class State(BaseModel):
    messages: list = []      # 对话历史
    user_query: str = ""     # 用户输入

class Context(BaseModel):
    model: str = "gpt-4"     # 模型名称
    temperature: float = 0.7 # 温度参数

好处

  • 自动验证:传入的数据类型不对,自动报错
  • 自动补全:IDE 能提示你有哪些字段
  • 默认值:可以给字段设置默认值

核心要点

场景 没有 Pydantic 有 Pydantic
验证数据 手写 if 判断 声明类型就行
类型转换 手动转 自动转
错误提示 自己抛异常 自动抛清晰错误
代码量

简单记

Pydantic = 声明类型 + 自动验证

你只需要说"这个字段是字符串",它会帮你检查传进来的到底是不是字符串。在 AI 开发里特别有用,因为你经常要处理大模型返回的数据,有了 Pydantic 就不怕它返回格式不对。

相关推荐
紫小米5 小时前
后端日志管理
python·fastapi
白雪茫茫6 小时前
监督学习、半监督学习、无监督学习算法详解
python·学习·算法·ai
つ安静与叛逆的小籹人6 小时前
小红书API:通过笔记ID获取笔记详情数据教程
笔记·python
05候补工程师6 小时前
[实战复盘] 拒绝 AI 屎山!我从设计模式中学到的“调教”AI 新范式
人工智能·python·设计模式·ai·ai编程
阿豪只会阿巴8 小时前
【没事学点啥】TurboBlog轻量级个人博客项目——项目介绍
javascript·python·django·html
qq_4135020210 小时前
如何创建CDB公共用户_C##前缀强制规则与CONTAINER=ALL
jvm·数据库·python
yexuhgu10 小时前
CSS如何利用-checked实现纯CSS手风琴折叠_通过状态选择器控制区域高度
jvm·数据库·python
AC赳赳老秦10 小时前
接口测试自动化:用 OpenClaw 对接 Postman,实现批量回归测试、测试报告自动生成与推送
java·人工智能·python·算法·elasticsearch·deepseek·openclaw
PILIPALAPENG10 小时前
第4周 Day 1:智能体记忆系统——给 Agent 一个"大脑"
前端·人工智能·python
DavidTaozhe10 小时前
一文搞懂外汇接口怎么实时更新美元汇率
大数据·python