Skip to main content
Open on GitHub

迁移

LangChain v0.2 于2024年5月发布。此版本包括许多重大更改和弃用。本文档包含升级到0.2.x的指南。

迁移

本文档将帮助您将代码升级到LangChain 0.2.x。为了准备迁移,我们首先建议您采取以下步骤:

  1. 安装0.2.x版本的langchain-core和langchain,并升级您可能正在使用的其他软件包到最新版本。(例如langgraph、langchain-community、langchain-openai等)
  2. 验证您的代码是否与新包一起正常运行(例如,单元测试通过)。
  3. 安装最新版本的langchain-cli,并使用该工具将代码中使用的旧导入替换为新导入。(请参阅下面的说明。)
  4. 手动解决所有剩余的弃用警告。
  5. 重新运行单元测试。
  6. 如果您正在使用astream_events,请查看如何迁移到astream events v2

升级到新的导入

我们创建了一个工具来帮助迁移您的代码。该工具仍处于测试版,可能无法涵盖所有情况,但我们希望它能帮助您更快地迁移代码。

迁移脚本有以下限制:

  1. 它仅限于帮助用户从旧的导入迁移到新的导入。它不帮助解决其他弃用问题。
  2. 它无法处理涉及 as 的导入。
  3. 新的导入总是放置在全局范围内,即使被替换的旧导入位于某些局部范围内(例如,函数体内)。
  4. 它可能会遗漏一些已弃用的导入。

以下是迁移脚本可以帮助自动应用的导入更改示例:

来源包目标包已弃用的导入新的导入
langchainlangchain-communityfrom langchain.vectorstores import InMemoryVectorStorefrom langchain_community.vectorstores import InMemoryVectorStore
langchain-communitylangchain_openai从 langchain_community.chat_models 导入 ChatOpenAI从 langchain_openai 导入 ChatOpenAI
langchain-社区langchain-核心from langchain_community.document_loaders import Blobfrom langchain_core.document_loaders import Blob
langchainlangchain-corefrom langchain.schema.document import Documentfrom langchain_core.documents import Document
langchainlangchain-text-splittersfrom langchain.text_splitter import RecursiveCharacterTextSplitterfrom 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]

这个页面有帮助吗?