You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Pydantic动态创建的模型添加description属性?

如何给Pydantic动态创建的模型添加JSON Schema描述

给动态模型本身添加description

使用create_model时,直接通过__doc__参数传入模型的文档字符串,就能让生成的JSON Schema带上对应的description属性。

示例代码:

from pydantic import create_model

# 动态创建模型并添加描述
Company = create_model(
    "Company",
    __doc__="公司信息模型,用于存储企业基本数据",
    name=(str, ...),
    employee_count=(int, 0)
)

# 查看生成的JSON Schema
print(Company.model_json_schema())

生成的Schema中会包含:

{
  "title": "Company",
  "description": "公司信息模型,用于存储企业基本数据",
  "type": "object",
  "properties": {
    "name": {"type": "string"},
    "employee_count": {"type": "integer", "default": 0}
  },
  "required": ["name"]
}

给动态模型的字段添加description

如果要给单个字段加描述,需要用Field对象定义字段,而不是直接传类型或默认值。

示例代码:

from pydantic import create_model, Field
from enum import Enum

class account_kind(str, Enum):
    """Account kind enum."""
    regular = "r"
    premium = "p"

# 定义带描述的字段属性
company_attributes = {
    "name": (str, Field(..., description="公司全称")),
    "employee_count": (int, Field(0, description="员工总数,默认值为0")),
    "account_type": (account_kind, Field(..., description="账户类型,普通或高级"))
}

# 动态创建模型,同时给模型本身加描述
Company = create_model(
    "Company",
    __doc__="公司信息模型",
    **company_attributes
)

# 查看字段的描述
print(Company.model_json_schema()["properties"]["name"]["description"])
# 输出:公司全称

这样生成的JSON Schema里,每个字段都会带有对应的description属性,和类定义方式的效果完全一致。

总结

  • 模型级描述:通过create_model的__doc__参数传入文档字符串
  • 字段级描述:用Field(..., description="xxx")定义字段的约束和描述

内容的提问来源于stack exchange,提问作者PChemGuy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 19:11:00