NameError: Fields must not use names with leading underscores; e.g., use 'WithClassInfo__tru_class_info' instead of '_WithClassInfo__tru_class_info'. #659
I get a NameError on importing truelens_eval modules: Here is a single line way of reproducing it.
from trulens_eval import Feedback
Provides the following error:
NameError Traceback (most recent call last)
[/Users/jon/dev/LLM/DeepLearning.AI/16](https://file+.vscode-resource.vscode-cdn.net/Users/jon/dev/LLM/DeepLearning.AI/16) - Building and Evaluating Advanced RAG/02 - Advanced RAG pipeline.ipynb Cell 2 line 1
----> [1](vscode-notebook-cell:/Users/jon/dev/LLM/DeepLearning.AI/16%20-%20Building%20and%20Evaluating%20Advanced%20RAG/02%20-%20Advanced%20RAG%20pipeline.ipynb#X54sZmlsZQ%3D%3D?line=0) from trulens_eval import Feedback
File [/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/__init__.py:83](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/__init__.py:83)
[1](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/__init__.py:1) """
[2](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/__init__.py:2) # Trulens-eval LLM Evaluation Library
[3](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/__init__.py:3)
(...)
[78](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/__init__.py:78)
[79](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/__init__.py:79) """
[81](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/__init__.py:81) __version__ = "0.18.2"
---> [83](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/__init__.py:83) from trulens_eval.feedback import Bedrock
[84](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/__init__.py:84) from trulens_eval.feedback import Feedback
[85](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/__init__.py:85) from trulens_eval.feedback import Huggingface
File [/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/feedback/__init__.py:14](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/feedback/__init__.py:14)
[11](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/feedback/__init__.py:11) AggCallable = Callable[[Iterable[float]], float]
[13](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/feedback/__init__.py:13) # Specific feedback functions:
---> [14](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/feedback/__init__.py:14) from trulens_eval.feedback.embeddings import Embeddings
[15](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/feedback/__init__.py:15) # Main class holding and running feedback functions:
[16](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/feedback/__init__.py:16) from trulens_eval.feedback.feedback import Feedback
File [/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/feedback/embeddings.py:8](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/feedback/embeddings.py:8)
[5](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/feedback/embeddings.py:5) from pydantic import PrivateAttr
[7](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/feedback/embeddings.py:7) from trulens_eval.utils.imports import REQUIREMENT_SKLEARN
----> [8](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/feedback/embeddings.py:8) from trulens_eval.utils.pyschema import WithClassInfo
[9](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/feedback/embeddings.py:9) from trulens_eval.utils.serial import SerialModel
[12](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/feedback/embeddings.py:12) class Embeddings(SerialModel, WithClassInfo):
File [/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/utils/pyschema.py:589](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/utils/pyschema.py:589)
[585](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/utils/pyschema.py:585) # Key of structure where class information is stored.
[586](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/utils/pyschema.py:586) CLASS_INFO = "__tru_class_info"
--> [589](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/utils/pyschema.py:589) class WithClassInfo(pydantic.BaseModel):
[590](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/utils/pyschema.py:590) """
[591](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/utils/pyschema.py:591) Mixin to track class information to aid in querying serialized components
[592](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/utils/pyschema.py:592) without having to load them.
[593](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/utils/pyschema.py:593) """
[595](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/utils/pyschema.py:595) # Using this odd key to not pollute attribute names in whatever class we mix
[596](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/trulens_eval/utils/pyschema.py:596) # this into. Should be the same as CLASS_INFO.
File [/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pydantic/_internal/_model_construction.py:92](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pydantic/_internal/_model_construction.py:92), in __new__(mcs, cls_name, bases, namespace, __pydantic_generic_metadata__, __pydantic_reset_parent_namespace__, _create_model_module, **kwargs)
File [/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pydantic/_internal/_model_construction.py:347](https://file+.vscode-resource.vscode-cdn.net/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pydantic/_internal/_model_construction.py:347), in inspect_namespace(namespace, ignored_types, base_class_vars, base_class_fields)
NameError: Fields must not use names with leading underscores; e.g., use 'WithClassInfo__tru_class_info' instead of '_WithClassInfo__tru_class_info'.
I get a NameError on importing truelens_eval modules: Here is a single line way of reproducing it.
from trulens_eval import Feedback
Provides the following error: