開発環境の構築は開発よりも難しい

購読しているSoftware Designの12月号

連載のLLMが前号に引き続きのHIL(Human In the Loop)をお題にしたもので、読んでいて面白そうだったので試してみることに。

リポジトリはこちらです
https://github.com/mahm/softwaredesign-llm-application/tree/main/14

やってみる

ReadMeにしたがって、ポチポチしていきます。
poetryというのは初めて使います。正直言って、業務でPythonを使っているわけじゃない身としては、試しに触るたびに新しいパッケージマネージャーを使わされている気がします。
なんでPython使いはパッケージマネージャーをどんどん作るのでしょう。
どれだけパッケージ使いづらいんでしょうかね。。。
それとも、「俺が作る最強のパッケージマネージャーを見せてやる」ってイキってる人が多いということなのかもしれません。

さて、最終的に実行を行ってみるのですが。。。

ModuleNotFoundError: No module named 'pydantic_core._pydantic_core'
Traceback:
File "C:\Dev\llm\softwaredesigne\softwaredesign-llm-application\14\.venv\Lib\site-packages\streamlit\runtime\scriptrunner\exec_code.py", line 88, in exec_func_with_error_handling
    result = func()
             ^^^^^^
File "C:\Dev\llm\softwaredesigne\softwaredesign-llm-application\14\.venv\Lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 590, in code_to_exec
    exec(code, module.__dict__)
File "C:\Dev\llm\softwaredesigne\softwaredesign-llm-application\14\app.py", line 5, in <module>
    from agent import HumanInTheLoopAgent
...

知ってる。チュートリアルってエラーになるんだぜ。

この “pydantic_core.pydantic_core”が見つからないってのはOpenAI関連のLambdaレイヤーを構築する際に起こるエラーとググったら出てくる。
Lambdaレイヤーなんて作っちゃいないんだけど、どうやらWindows環境では確実にこうなるようだ。
Software Designにそんな環境依存の話書いてあっただろうか?と思わずひとりごちた。
ちくしょう。

正直、なぜLambdaレイヤーと言われているのかは定かではないけれど、対応にはFastAPIの0.99.0を入れるとある

Lambda Layers で No module named ‘pydantic_core._pydantic_core’
https://qiita.com/ganessa/items/bb67517a095f2c510926

試して見る

C:\Dev\llm\softwaredesigne\softwaredesign-llm-application\14> pip install fastapi==0.99.0
...
Using cached starlette-0.27.0-py3-none-any.whl (66 kB)
Installing collected packages: pydantic, starlette, fastapi
  Attempting uninstall: pydantic
    Found existing installation: pydantic 2.9.2
    Uninstalling pydantic-2.9.2:
      Successfully uninstalled pydantic-2.9.2
  Attempting uninstall: starlette
    Found existing installation: starlette 0.41.2
    Uninstalling starlette-0.41.2:
      Successfully uninstalled starlette-0.41.2
  Attempting uninstall: fastapi
    Found existing installation: fastapi 0.115.4
    Uninstalling fastapi-0.115.4:
      Successfully uninstalled fastapi-0.115.4
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
composio-core 0.5.40 requires pydantic<3,>=2.6.4, but you have pydantic 1.10.19 which is incompatible.
Successfully installed fastapi-0.99.0 pydantic-1.10.19 starlette-0.27.0

なんかERRORは出るものの、最終的にはpydantic-1.10.19がインストールされた。
さて試してみる

変わらず・・・

試してみる(2)

問題の根本としては、Windows環境で試していることが原因っぽい。
というわけで、Dockerも検討したけれど手元にMacもあったので試してみる

あっさり動いたーーーー。

すごい釈然としない。。2024年においてもまだ環境依存は簡単にはこえられない壁として我々の前には立ち塞がっていると言うことなんだろう・・・。

そして、本当はそんなことをしたいのではなくここから仕組みの理解や改変を通した学びを得たいところだったのだけれど、すでに徒労感がある。

悲しい。

動かしてみると

そりゃ、LLMアプリを勉強するくらいであったら課金くらいしろよってのは、まぁ、そうなのかもしれないけれど、試すことすら出来ないのは悲しいところです。

ChatGPTにしろAnthropicにしろ、開発中もひたすらに料金がかかり続けるモデルだと、お勉強エンジニアには厳しいお財布事情になりそうです。

これ、複数のLLMで試したいと思ったら全部課金するって話になるんですよね。。。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください