引言
在现代 Python 开发中,Pydantic 是用于数据验证的一个强大工具。随着 Pydantic v2 的发布,许多项目面临着版本兼容性的问题。LangChain 是一个热门的 AI 框架,它即将从 Pydantic v1 迁移到 v2。本篇文章将深入探讨如何在不同 Pydantic 版本下使用 LangChain,并提供实用的代码示例和解决方案。
主要内容
LangChain 对 Pydantic 版本的支持
自 langchain>=0.0.267
起,LangChain 允许用户安装 Pydantic v1 或 v2。然而,LangChain 内部依然使用 Pydantic v1,这可能导致一些兼容性问题。以下是一些使用 LangChain 时需要注意的地方:
使用 Pydantic 对象
大多数 LangChain API 支持 Pydantic v1 和 v2 对象。然而,由于 Pydantic 不支持混用 v1 和 v2 对象,建议在 LangChain 0.3 发布之前继续使用 Pydantic v1 对象。
子类化 LangChain 模型
LangChain 内部仍然使用 Pydantic v1,因此在子类化 LangChain 模型时,应该使用 Pydantic v1 的原语。
停止运行时验证
对于在 Pydantic v2 模型内使用的 LangChain 对象,可能需要禁用运行时验证,以避免不必要的验证冲突。
代码示例
在 LangChain 核心版本为 >=0.2.23
时,可以选择使用 Pydantic v1 或 v2 对象:
<