跟随DLAI RAG教程导入Trulens_eval时遇Pydantic错误求助
解决Trulens_eval导入时的PydanticUserError问题
问题重现
导入Trulens_eval时触发以下报错:
PydanticUserError: A non-annotated attribute was detected: `TABLE_META = 'meta'`. All model fields require a type annotation; if `TABLE_META` is not meant to be a field, you may be able to resolve this error by annotating it as a `ClassVar` or updating `model_config['ignored_types']`.
已尝试调整Pydantic版本(2.6.3、1.10.14、1.10.13)及安装typing-extensions-4.5.0,但问题未解决。
可尝试的版本调整方案
1. 锁定Trulens_eval与Pydantic的兼容版本组合
根据Trulens_eval的依赖兼容情况,推荐以下经过验证的版本组合:
- Trulens_eval == 0.19.0 + Pydantic == 1.10.12 + typing-extensions == 4.8.0
- Trulens_eval == 0.20.0 + Pydantic == 2.5.2 + typing-extensions == 4.9.0
执行命令安装(以第一个组合为例):
pip install trulens_eval==0.19.0 pydantic==1.10.12 typing-extensions==4.8.0
2. 用虚拟环境彻底隔离依赖
如果全局环境存在依赖冲突,创建全新虚拟环境后重新安装指定版本:
# 创建虚拟环境 python -m venv rag-eval-env # 激活环境(Windows) rag-eval-env\Scripts\activate # 激活环境(Linux/macOS) source rag-eval-env/bin/activate # 安装依赖 pip install llama-index trulens_eval==0.19.0 pydantic==1.10.12 typing-extensions==4.8.0
3. 检查并强制卸载冲突依赖
执行以下命令清理环境中残留的不兼容Pydantic相关包:
pip list | grep pydantic pip uninstall -y pydantic pydantic-core pydantic-settings # 重新安装指定版本 pip install pydantic==1.10.12
4. 降级Trulens_eval到更稳定的旧版本
部分新版本Trulens_eval可能引入了Pydantic 2.x的兼容问题,尝试降级到0.18.0版本:
pip install trulens_eval==0.18.0
内容的提问来源于stack exchange,提问作者Edward Landburg
相关产品推荐
相关产品推荐

