見出し画像

LangChain v0.1 から v0.2 への移行手順

LangChain v0.1 から v0.2 への移行手順をまとめました。

Migration - LangChain


1. はじめに

「LangChain v0.2」は 2024 年 5 月にリリースされました (現在はプレリリース)。このリリースには、多数の重大な変更と非推奨が含まれています。この記事では、0.2.x へのアップグレードに関するガイドを提供します。

2. 移行手順

「LangChain v0.2」への移行手順は、次のとおりです。

(1) langchain-core、langchain の 0.2.xをインストールし、使用している他のパッケージの最新版にアップグレード
(例: langgraph、langchain-community、langchain-openai など)
(2) コードが新しいパッケージで適切に実行されることを確認
(単体テストに合格するなど)
(3) 最新バージョンの langchain-cli をインストールし、このツールを使用して、コードで使用されている古いimportを新しいimportに置き換え
(4) 残りの非推奨警告を手動で解決
(5) 単体テストを再実行
(6) astream_events 使用時は、astream events v2 への移行手順を確認

3. 新しいimportへの移行ツール

3-1. 移行ツール

コードの移行をサポートする移行ツールが提供されています。このツールはまだベータ版であり、すべてのケースをカバーしているわけではありませんが、コードをより迅速に移行するのに役立ちます。

移行ツールには次の制限があります。

(1) 古いimportから新しいimportに移行できるようサポートすることに限定されている。他の非推奨への対処には役立たない
(2) as を含むimportは処理できない
(3) 置き換えられた古いimportがローカル スコープ (関数本体など) 内にあった場合でも、新しいimportは常にグローバルスコープに配置される
(4) 一部の非推奨のimportが見逃される可能性がある

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]

関連



この記事が気に入ったらサポートをしてみませんか?