2.2 模式2:TypedDict

2.2.1 什么是 TypedDict
TypedDict 是 Python 3.8+ 引入的一种类型提示工具,即带有类型声明的字典结构。适合需要快速定义字典结构且无需 Pydantic 重量级功能的场景。
1、普通 dict 没有类型信息:

图片[1]-2.2 模式2:TypedDict-大赛人网

2、 TypedDict 可以进一步说明:

  • 这个字典应该有哪些字段
  • 每个字段的类型是什么
  • TypedDict 主要是类型声明,不是运行时强校验器。

举例:

图片[2]-2.2 模式2:TypedDict-大赛人网

实例化字典时给出的字段名称和TypedDict不完全一致,此时IDE的静态类型检查会标记。

图片[3]-2.2 模式2:TypedDict-大赛人网

但不会导致运行时异常,输出如下所示

图片[4]-2.2 模式2:TypedDict-大赛人网

2.2.2 基本使用
Annotated的使用
Annotated 用来在“类型”之外,再附加一些额外信息,即元数据。类似于Pydantic 的Field 。
基本形式:

Annotated[类型1 , 附加信息1, 附加信息2, ...]

举例的前提:
使用CloseAI平台的gpt模型:

图片[5]-2.2 模式2:TypedDict-大赛人网
图片[6]-2.2 模式2:TypedDict-大赛人网

使用OpenRouter平台的gpt模型:

图片[7]-2.2 模式2:TypedDict-大赛人网

举例1:返回简单结构

图片[8]-2.2 模式2:TypedDict-大赛人网

输出如下:

图片[9]-2.2 模式2:TypedDict-大赛人网

举例2:返回嵌套结构

图片[10]-2.2 模式2:TypedDict-大赛人网

输出如下:

图片[11]-2.2 模式2:TypedDict-大赛人网

举例3:…的使用
说明:与模型提供商有关系
使用CloseAI平台gpt模型:

图片[12]-2.2 模式2:TypedDict-大赛人网
图片[13]-2.2 模式2:TypedDict-大赛人网

输出

图片[14]-2.2 模式2:TypedDict-大赛人网

使用OpenRouter平台gpt模型:

图片[15]-2.2 模式2:TypedDict-大赛人网
图片[16]-2.2 模式2:TypedDict-大赛人网

说明:上述代码的… 是Python的字面量,等价于Ellipsis ,可以理解为占位符。下游框架(如LangChain)可以对… 作定制化处理,如LangChain中Annotated的… 表示当前字段是必须存在的,不可省略,用来指示模型的输出。
再比如:

图片[17]-2.2 模式2:TypedDict-大赛人网
图片[18]-2.2 模式2:TypedDict-大赛人网

输出

图片[19]-2.2 模式2:TypedDict-大赛人网

director 和rating 的信息都是缺失的,但是前者被标记为必填,因此输出的字典包含该字段但是值为空字符串,而rating 字段被省略了。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享
评论 抢沙发
头像-大赛人网
欢迎您留下宝贵的见解!
提交
头像-大赛人网

昵称

取消
昵称

    请登录后查看评论内容