如何在不同版本的Pydantic中使用LangChain

# 如何在不同版本的Pydantic中使用LangChain

## 引言

在2023年6月,Pydantic发布了其2.0版本,该版本引入了一些破坏性更改,同时Pydantic 1将于2024年6月停止支持。LangChain即将停止对Pydantic 1的支持,并计划迁移到Pydantic 2。本文旨在指导开发者如何在不同版本的Pydantic中使用LangChain,并讨论这一过程中可能遇到的挑战及其解决方案。

## 主要内容

### 1. 传递Pydantic对象给LangChain API

大多数LangChain API现在支持接收Pydantic V1和V2对象。对于Pydantic 1来说,BaseModel是它的基础类,而在Pydantic 2中,我们需要指定`pydantic.v1.BaseModel`。如果某个地区的网络限制导致难以访问API,开发者可以借助API代理服务来提高访问稳定性。

### 2. 子类化LangChain模型

由于LangChain内部仍然使用Pydantic v1,因此在子类化LangChain模型时应使用Pydantic v1的原语。混合使用不同版本的Pydantic原语可能导致错误。

### 3. 在Pydantic v2模型中禁用LangChain对象的运行时验证

如果在Pydantic v2模型中使用LangChain对象,可以禁用运行时验证以避免潜在的兼容性问题。

### 4. LangServe与OpenAPI文档

在使用Pydantic 2时,LangServe无法生成OpenAPI文档。用户需要安装Pydantic 1或使用`APIHandler`对象手动创建API路由。

## 代码示例

以下是如何在`langchain-core`版本0.2.23之前和之后使用Pydantic对象进行API调用的示例:

```python
from langchain_openai import ChatOpenAI
from pydantic.v1 import BaseModel  # 使用API代理服务提高访问稳定性

class Person(BaseModel):
    """个人信息"""
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值