LangChain v0.1 から v0.2 への移行手順
LangChain v0.1 から v0.2 への移行手順をまとめました。
1. はじめに
「LangChain v0.2」は 2024 年 5 月にリリースされました (現在はプレリリース)。このリリースには、多数の重大な変更と非推奨が含まれています。この記事では、0.2.x へのアップグレードに関するガイドを提供します。
2. 移行手順
「LangChain v0.2」への移行手順は、次のとおりです。
3. 新しいimportへの移行ツール
3-1. 移行ツール
コードの移行をサポートする移行ツールが提供されています。このツールはまだベータ版であり、すべてのケースをカバーしているわけではありませんが、コードをより迅速に移行するのに役立ちます。
移行ツールには次の制限があります。
3-2. import変更の例
以下は、移行ツールによって自動的に適用されるimport変更の例です。
・langchain → langchain_community
from langchain.vectorstores import InMemoryVectorStore
↓
from langchain_community.vectorstores import InMemoryVectorStore
・langchain-community → langchain_openai
from langchain_community.chat_models import ChatOpenAIfrom
↓
langchain_openai import ChatOpenAI
・langchain-community → langchain-core
from langchain_community.document_loaders import Blobfrom
↓
langchain_core.document_loaders import Blob
・langchain → langchain-core
from langchain.schema.document import Document
↓
from langchain_core.documents import Document
・langchain → langchain-text-splitters
from langchain.text_splitter import RecursiveCharacterTextSplitter
↓
from langchain_text_splitters import RecursiveCharacterTextSplitter
3-3. 移行ツールのインストール
pip install langchain-cli
langchain-cli --version # <-- Make sure the version is at least 0.0.22
3-4. 移行ツールの使い方
移行ツールは完璧ではないので、最初にコードのバックアップします。移行ツールは実行ごとに 1 つのimport置換のみが適用されるため、移行ツールを2回実行する必要があります。
たとえば、コードで from langchain.chat_models import ChatOpenAI を使用しているとします。
最初の実行後、次の結果が得られます。
from langchain_community.chat_models import ChatOpenAI
2回目の実行後、次の結果が得られます。
from langchain_openai import ChatOpenAI
# 1回目の実行
langchain-cli migrate [path to code] --diff # Preview
langchain-cli migrate [path to code] # Apply
# 2回目を実行して、さらにimport置換を適用
langchain-cli migrate [path to code] --diff # Preview
langchain-cli migrate [path to code] # Apply
その他のオプションは、次のとおりです。
# ヘルプ
langchain-cli migrate --help
# 変更を適用せずにプレビュー
langchain-cli migrate --diff [path to code]
# ipython ノートブックを含むコードで実行
# langchain から langchain-core への更新を除くすべてのインポート更新を適用
langchain-cli migrate --disable langchain_to_core --include-ipynb [path to code]