从Langchain加载Hugging Face Pipeline时遇PydanticUserError求助
解决Langchain加载Hugging Face Pipeline时的PydanticUserError错误
我在尝试从Langchain加载Hugging Face Pipeline时遇到以下错误:
PydanticUserError: If you use
@root_validatorwith pre=False (the default) you MUST specifyskip_on_failure=True. Note that@root_validatoris deprecated and should be replaced with@model_validator.
我尝试了以下解决方案,但问题仍未解决:
from pydantic import BaseModel, validator class HuggingFacePipeline(BaseModel): # Existing code... @validator("*", pre=True) def check_skip_on_failure(cls, value): return value # Existing code...
正确修复方案
错误根源是Pydantic v2版本废弃了@root_validator,要求改用@model_validator,且原方案用的@validator无法替代根验证器的作用。修改代码如下:
from pydantic import BaseModel, model_validator class HuggingFacePipeline(BaseModel): # 原有代码... @model_validator(mode="before") # 对应旧版的pre=True def check_skip_on_failure(cls, values): # 保留你的验证逻辑,无特殊需求直接返回values即可 return values # 原有代码...
关键说明
- Pydantic v2中
@model_validator替代了@root_validator,mode="before"表示在字段验证前处理整个输入数据字典,和旧版pre=True的作用一致。 - 若你的Langchain版本过低,可能存在与Pydantic v2的兼容性问题,执行以下命令升级Langchain:
pip install --upgrade langchain
内容的提问来源于stack exchange,提问作者Abdul Basit
相关产品推荐
相关产品推荐

