🐥

Chainlit の起動エラー[pydantic.errors.PydanticUserError]

2024/12/10に公開

事象

以前は問題なく動いていた 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