我正在关注 DLAI 构建和评估高级 RAG 视频。人们可以尝试 LLama 索引 + Trulens 来评估 RAG。
由于折旧,Llama 指数经过一些调整后可以工作,但 trulens 甚至不导入。尝试时出现以下错误:
---------------------------------------------------------------------------
PydanticUserError Traceback (most recent call last)
Cell In[46], line 1
----> 1 from trulens_eval import Tru
2 tru = Tru()
4 tru.reset_database()
File c:\Users\Dator\miniconda3\Lib\site-packages\trulens_eval\__init__.py:38
36 from trulens_eval.schema import FeedbackMode
37 from trulens_eval.schema import Query
---> 38 from trulens_eval.tru import Tru
39 from trulens_eval.tru_chain import TruChain
40 from trulens_eval.tru_feedback import Feedback
File c:\Users\Dator\miniconda3\Lib\site-packages\trulens_eval\tru.py:18
16 from trulens_eval.schema import App
17 from trulens_eval.schema import Record
---> 18 from trulens_eval.tru_db import JSON
19 from trulens_eval.tru_db import LocalSQLite
20 from trulens_eval.tru_feedback import Feedback
File c:\Users\Dator\miniconda3\Lib\site-packages\trulens_eval\tru_db.py:130
122 """
123 Get the records logged for the given set of `app_ids` (otherwise all)
124 alongside the names of the feedback function columns listed the
...
399 ):
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']`.
这个问题与 stackoverflow.com/questions/77599781/error-while-importing-trueera-trulens-eval 中的问题类似,但我不被允许发表评论,因为我在这里的学分太少了,而且我知道我不应该提出问题作为答案。
我尝试安装和卸载以下版本的 pydantic 2.6.3、1.10.14 和 1.10.13,并且我还尝试安装 Typing-extensions-4.5.0。我还必须在不同版本中安装其他东西才能使其正常工作吗?
我不知道这是否有帮助,但我在这个文件中发现他们说导入模式会破坏 pydantic,可能是这种情况:https://github.com/truera/trulens/blob/main/trulens_eval/trulens_eval /反馈/反馈.py
从第 39 行到 42 行:
# WARNING: HACK014: importing schema seems to break pydantic for unknown reason.
# This happens even if you import it as something else.
# from trulens_eval import schema # breaks pydantic
# from trulens_eval import schema as tru_schema # also breaks pydantic