みんな大好き,LangChainがどうやらV1.0が出たらしく,早速使おうとしたらエラーが出たので,残しておきます.
問題のコード
以下のようなコードです.
from langchain.chains import LLMChainfrom langchain.retrievers import MultiVectorRetriever発生した問題
実行すると,こんな感じのエラーが出ると思います.

ModuleNotFoundError: No module named 'langchain.chains'
ModuleNotFoundError: No module named 'langchain.retrievers'まあ,エラーの通りモジュールが無いみたい.
原因
v1.0になってモジュール名が変わったようです.
以下の公式ドキュメントに書いてありますねー.
(これ見たらこの記事意味ないかも…).
https://docs.langchain.com/oss/python/releases/langchain-v1#langchain-classic
どうやら,コアパッケージを軽量化し,エージェント構築に集中させるためらしいです.これにより,以下のようになったみたいです.langchain: エージェント構築に必要な必須機能(Agents, Messages, Toolsなど)のみに絞り込み.langchain-classic: 従来のChain(Legacy chains),Retriever,Indexing APIなどの古い機能は,こっちの新パッケージに移動.
解決方法
新パッケージに移動されてしまったらしいので,まずlangchain-classicをもってきます.
uvなら
uv add langchain-classicpipなら
pip install langchain-classic次にimportを変えていきます.
from langchain_classic.chains import ...
from langchain_classic.retrievers import ...おわりに
どうやら,まだ新し目の情報で,日本語記事は少なかったり,昔のimportのままの記事が多かったりするのでちょっと困りましたね.
今回はエラー解決なので,だいぶ緩めの記事ですが,誰かの参考になれば幸いです.


コメント