迁移
LangChain v0.2 于 2024 年 5 月发布。此版本包含许多重大更改和弃用。本文档包含有关升级到 0.2.x 的指南。
迁移
本文档将帮助您将代码升级到 LangChain0.2.x..要准备迁移,我们首先建议您按照以下步骤进行作:
- 安装 langchain-core 和 langchain 的 0.2.x 版本,并升级到您可能正在使用的其他软件包的最新版本。(例如 langGraph、langChain-community、LangChain-OpenAI 等)
- 验证您的代码是否使用新包正确运行(例如,单元测试通过)。
- 安装最新版本的
langchain-cli,然后使用该工具将代码使用的旧导入替换为新导入。(请参阅下面的说明。 - 手动解决任何剩余的弃用警告。
- 重新运行单元测试。
- 如果您正在使用
astream_events,请查看如何迁移到 Astream Events v2。
升级到新的进口
我们创建了一个工具来帮助迁移您的代码。此工具仍处于测试阶段,可能无法涵盖所有情况,但 我们希望它能帮助您更快地迁移代码。
迁移脚本具有以下限制:
- 它仅限于帮助用户从旧导入转移到新导入。它无助于解决其他弃用问题。
- 它无法处理涉及
as. - 新导入始终放置在全局范围内,即使被替换的旧导入位于某个本地范围内(例如。g,函数体)。
- 它可能会错过一些已弃用的导入。
以下是迁移脚本可以帮助自动应用的导入更改示例:
| 从包装 | 打包 | 已弃用的导入 | 新导入 |
|---|---|---|---|
| langchain | langchain-community | from langchain.vectorstores import InMemoryVectorStore | from langchain_community.vectorstores import InMemoryVectorStore |
| langchain-community | langchain_openai | from langchain_community.chat_models import ChatOpenAI | from langchain_openai import ChatOpenAI |
| langchain-community | langchain-core | from langchain_community.document_loaders import Blob | from 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 |
安装
pip install langchain-cli
langchain-cli --version # <-- Make sure the version is at least 0.0.22
用法
鉴于迁移脚本并不完美,您应该确保首先备份您的代码(例如,使用git).
您需要运行迁移脚本两次,因为它每次运行只应用一次导入替换。
例如,假设您的代码仍然使用from langchain.chat_models import ChatOpenAI:
首次运行后,您将获得:from langchain_community.chat_models import ChatOpenAI第二次运行后,您将获得:from langchain_openai import ChatOpenAI
# Run a first time
# Will replace from langchain.chat_models import ChatOpenAI
langchain-cli migrate --diff [path to code] # Preview
langchain-cli migrate [path to code] # Apply
# Run a second time to apply more import replacements
langchain-cli migrate --diff [path to code] # Preview
langchain-cli migrate [path to code] # Apply
其他选项
# See help menu
langchain-cli migrate --help
# Preview Changes without applying
langchain-cli migrate --diff [path to code]
# Run on code including ipython notebooks
# Apply all import updates except for updates from langchain to langchain-core
langchain-cli migrate --disable langchain_to_core --include-ipynb [path to code]