🐥
Chainlit の起動エラー[pydantic.errors.PydanticUserError]
事象
以前は問題なく動いていた Chainlit のコードが、最近以下のエラーを出すようになりました。
(venv) user001:/home$ chainlit hello
2024-12-10 23:00:36 - Loaded .env file
Traceback (most recent call last):
File "/home/venv/bin/chainlit", line 7, in <module>
from chainlit.cli import cli
File "/home/venv/lib/python3.10/site-packages/chainlit/__init__.py", line 18, in <module>
from chainlit.action import Action
File "/home/venv/lib/python3.10/site-packages/chainlit/action.py", line 5, in <module>
from chainlit.telemetry import trace_event
File "/home/venv/lib/python3.10/site-packages/chainlit/telemetry.py", line 12, in <module>
from chainlit.config import config
File "/home/venv/lib/python3.10/site-packages/chainlit/config.py", line 538, in <module>
config = load_config()
File "/home/venv/lib/python3.10/site-packages/chainlit/config.py", line 507, in load_config
settings = load_settings()
File "/home/venv/lib/python3.10/site-packages/chainlit/config.py", line 479, in load_settings
code_settings = CodeSettings(action_callbacks={})
File "/home/venv/lib/python3.10/site-packages/pydantic/_internal/_dataclasses.py", line 121, in __init__
s.__pydantic_validator__.validate_python(ArgsKwargs(args, kwargs), self_instance=s)
File "/home/venv/lib/python3.10/site-packages/pydantic/_internal/_mock_val_ser.py", line 100, in __getattr__
raise PydanticUserError(self._error_message, code=self._code)
pydantic.errors.PydanticUserError: `CodeSettings` is not fully defined; you should define `Action`, then call `pydantic.dataclasses.rebuild_dataclass(CodeSettings)`.
For further information visit https://errors.pydantic.dev/2.10/u/class-not-fully-defined
(venv) user001:/home$
調査したところ、Chainlit 1.3.2 と Pydantic 2.10.2 に互換性の問題があるようです。
また、私が検証した限りでは、Pydantic 2.10.3 でも同様のエラーが発生しました。
一時的な回避策
一時的な回避策として、Pydantic のバージョンを 2.10.1 にダウングレードすることが提案されています。
pip install pydantic==2.10.1
requirements.txt の場合
pydantic==2.10.1
Discussion